2.2.6.1.1 ColumnPacket Structure
The ColumnPacket structure MUST contain the information of a single column, including the property ID, property type, and display attributes. The ColumnPacket structure contains the following fields.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PropertyType |
PropertyID |
||||||||||||||||||||||||||||||
Cx |
|||||||||||||||||||||||||||||||
Reserved1 |
|||||||||||||||||||||||||||||||
Flags |
|||||||||||||||||||||||||||||||
Reserved2 |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Kind |
|||||||||||||||||||||||||||||||
ID |
|||||||||||||||||||||||||||||||
Guid |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
BufferLength |
|||||||||||||||||||||||||||||||
Buffer (variable) |
|||||||||||||||||||||||||||||||
... |
PropertyType (2 bytes): This field MUST exist. This field specifies the type of the property, as specified in section 2.2.6.1.3.
PropertyID (2 bytes): This field MUST exist. This field has the same value as the ID field. If the value of the ID field does not fit into a WORD ([MS-DTYP]), the value MUST be truncated and the two least significant bytes MUST be stored in this field.
Cx (4 bytes): This field MUST exist. This field specifies the column width in pixels.
Reserved1 (4 bytes): This field MUST exist. The application can fill this field with any value when writing the stream. The application MUST ignore the value of this field when reading the stream.
Flags (4 bytes): This field MUST exist. This field contains column descriptor flags. The bit setting and its meaning are listed in the following table.
Flag name |
Value |
Meaning |
---|---|---|
VCDF_RIGHT_JUSTIFY |
0x00000001 |
Column is right justified. This flag is mutually exclusive with the VCDF_CENTER_JUSTIFY flag. |
VCDF_CENTER_JUSTIFY |
0x00000002 |
Column is center justified. This flag is mutually exclusive with the VCDF_RIGHT_JUSTIFY flag. |
VCDF_BITMAP |
0x00000008 |
Column header is in bitmap format. |
VCDF_NOT_SORTABLE |
0x00000020 |
Column is not sortable. This flag is mutually exclusive with the VCDF_SORTDESCENDING flag and the VCDF_SORTDLG flag. |
VCDF_SORTDESCENDING |
0x00000040 |
Column is sorted in descending order. This flag is mutually exclusive with the VCDF_NOT_SORTABLE flag. |
VCDF_MOVEABLE |
0x00000100 |
Clients and servers MUST ignore this setting. |
VCDF_COLUMNSDLG |
0x00000200 |
Clients and servers MUST ignore this setting. |
VCDF_SORTDLG |
0x00000400 |
Column MUST be able to be sorted. This flag is mutually exclusive with the VCDF_NOT_SORTABLE flag. |
VCDF_GROUPDLG |
0x00000800 |
Column MUST be able to be grouped. |
VCDF_NAMEDPROP |
0x00001000 |
The optional Guid field MUST be included in the packet. If Kind is KindString, then the BufferLength and Buffer fields MUST also be included in the packet. |
VCDF_RCOLUMNSDLG |
0x00002000 |
Clients and servers MUST ignore this setting. |
VCDF_MULTIVALUED |
0x00004000 |
Specifies whether the column PropertyType field MUST include the VCDF_MULTIVALUED flag ([MS-OXCDATA] section 2.11.1.3). |
Reserved2 (12 bytes): This field MUST exist. The application can fill this field with any value when writing the stream. The application MUST ignore the value of this field when reading the stream.
Kind (4 bytes): This field MUST exist. The field contains one of the following values.
Value name |
Value |
Meaning |
---|---|---|
KindID |
0x00000000 |
The property uses an integer identifier. |
KindString |
0x00000001 |
The property uses a string identifier. |
ID (4 bytes): This field MUST exist. If the VCDF_NAMEDPROP flag is not set in the Flags field, this field contains the property ID of the column. If the VCDF_NAMEDPROP flag is set in the Flags field, and the value of the Kind field is "KindID", this field contains the integer ID that MUST be used with the RopGetPropertyIdsFromNames remote operation (ROP) ([MS-OXCROPS] section 2.2.8.1) to translate the named property into a property ID. If the VCDF_NAMEDPROP flag is set and the value of Kind is "KindString", the application can fill this field with any value when writing the stream and MUST ignore the value of this field when reading the stream.
Guid (16 bytes): If the VCDF_NAMEDPROP flag is set in the Flags field, this field contains the GUID that MUST be used with the RopGetPropertyIdsFromNames ROP to translate the named property into a property ID. If the VCDF_NAMEDPROP flag is not set, the application MUST omit this field.
BufferLength (4 bytes): If the VCDF_NAMEDPROP flag is set in the Flags field and the value of the Kind field is "KindString", this field contains the length of the Buffer field in bytes, including the Unicode terminating null character (0x0000). Otherwise, the application MUST omit this field.
Buffer (variable): If the VCDF_NAMEDPROP flag is set in the Flags field and the value of the Kind field is "KindString", this field contains the Unicode string that MUST be used with the RopGetPropertyIdsFromNames ROP to translate the named property into a property ID. Otherwise, the application MUST omit this field. This field includes a Unicode terminating null character (0x0000).