2.2.1.7 PropertyMeta
The PropertyMeta structure represents the type, size, and meta-properties (specified in this section) of a property in a table.
-
typedef struct { DWORD dataType; ULONG cbSize; DWORD flags; } PropertyMeta;
dataType: The eDataType (section 2.2.1.2) value that represents the data type of the property.
cbSize: A size, in bytes, associated with the property. The meaning of this value depends on the value of the dataType field and whether the fPROPERTY_FIXEDLENGTH flag is set in the flags field.
-
Value of dataType
fPROPERTY_FIXEDLENGTH set?
Meaning
eDT_ULONG
-
The fixed size of the property. MUST be set to 0x00000004.
eDT_GUID
-
The fixed size of the property. MUST be set to 0x00000010 (decimal 16).
eDT_BYTES
No
The maximum size of the property. A value of 0xFFFFFFFF indicates the property's size is unconstrained.
eDT_BYTES
Yes
The fixed size of the property.
eDT_LPWSTR
No
The maximum size of the property. A value of 0xFFFFFFFF indicates the property's size is unconstrained.
eDT_LPWSTR
Yes
The fixed size of the property. MUST be set to a multiple of 2.
flags: A bit field specifying the meta-properties of the property. MUST be a combination of zero or more of the following flags.
-
Value
Meaning
fPROPERTY_PRIMARYKEY
0x00000001
This property is part of the primary key for its table. MUST be set if fPROPERTY_NOTNULLABLE is set.
fPROPERTY_NOTNULLABLE
0x00000002
This property cannot be null.
fPROPERTY_FIXEDLENGTH
0x00000004
This eDT_BYTES or eDT_LPWSTR property has a fixed size. MUST NOT be set for properties of type eDT_ULONG or eDT_GUID.
fPROPERTY_NOTPERSISTABLE
0x00000008
This property contains sensitive data such as passwords that MUST NOT be written in plaintext to persistent storage.
fPROPERTY_CASEINSENSITIVE
0x00000020
This eDT_LPWSTR property MUST be treated as case-insensitive for purposes of comparison. MUST NOT be set for properties of type eDT_ULONG, eDT_GUID, or eDT_BYTES.