2.2.1.2 CFullPropSpec

The CFullPropSpec structure contains a property set GUID and a property identifier to uniquely identify a property. A CFullPropSpec instance has a property set GUID and either an integer property ID or a string property name. For properties to match, the CFullPropSpec structure MUST match the column identifier in the index. There is no conversion between property IDs and property names. Property names are case insensitive. (The CFullPropSpec structure corresponds to the FULLPROPSPEC structure described in [MSDN-FULLPROPSPEC].)


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

paddingPropSet (variable)

...

_guidPropSet (16 bytes)

...

...

ulKind

PrSpec

Property name (variable)

...

paddingPropSet (variable): This field MUST be 0 to 8 bytes in length. The length of this field MUST be such that the following field (_guidPropSet) begins at an offset that is a multiple of 8 bytes from the beginning of the message that contains this structure. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver.

_guidPropSet (16 bytes): The GUID of the property set to which the property belongs.

ulKind (4 bytes): A 32-bit unsigned integer. MUST be one of the following values that indicates the contents of PrSpec.

Value

Meaning

PRSPEC_LPWSTR

0x00000000

The PrSpec field specifies the number of non-null characters in the Property name field.

PRSPEC_PROPID

0x00000001

The PrSpec field specifies the property ID (PROPID).

PrSpec (4 bytes): A 32-bit unsigned integer with a meaning as indicated by the ulKind field.

Property name (variable): If ulKind is set to PRSPEC_PROPID, this field MUST NOT be present. If ulKind is set to PRSPEC_LPWSTR, this field MUST contain a case-insensitive array of PrSpec non-null Unicode characters that contains the name of the property.