2.3.3.2.3 User Defined Property Set

This section defines a simple OLE property set, as specified in [MS-OLEPS], containing arbitrary user-defined properties. This property set conforms to [MS-OLEPS] section 2.21 and [MS-OLEPS] section 2.23 with regards to stream name requirements and format identifier GUID for the FMTID_UserDefinedProperties property set. The User Defined property set is contained in the document stream named "\005DocumentSummaryInformation". It contains properties of arbitrary type and value (within the constraints specified in section 2.3.3.2.3.1), and assigned any property name that meets the [MS-OLEPS] specification except for those names that are reserved as specified in section 2.3.3.2.3.2. This property set also supports the concept of linked properties that use two property entries, one of which does not have an associated property name. The specification for these properties is specified in section 2.3.3.2.3.3. Properties stored in this property set have an effective PropertyIdentifier maximum of 0x00FFFFFF because of reserved high-order bits for property entry link specification. In addition, this property set MUST have the following:

  • This property set MUST have its PropertySetStream structure Version field set to 0x00000000.

  • This property set MUST have its PropertySetStream structure CLSID field set to GUID_NULL.

  • This property set MUST have a PropertySetSystemIdentifier structure (section 2.3.3.1.1)for its PropertySetStream structure SystemIdentifier field.

The total size of this property set’s PropertySet structure ([MS-OLEPS] section 2.20) MUST be padded to a multiple of 4 bytes. The padding, if needed, MUST be located after the final property value of the property set and MUST be the minimum size required to produce a PropertySet structure with a size that is a multiple of 4 bytes. The contents of the padding are undefined and MUST be ignored. The PropertySet structure’s Size field MUST include the count of padding bytes in its calculation.

For additional information about the OLE property set storage format, see [MS-OLEPS].