2.1.1 Property Set

A property set is a collection of properties that specify the attributes of an object (section 2.1.5). The PropertySet structure specifies the format of a property set and is contained by an ObjectSpaceObjectPropSet structure (section 2.6.1). The meaning of each property in the set is specified in [MS-ONE] section 2.1.12. A PropertySet structure can contain references to other objects.

The data for a property that is not an object reference is contained in the PropertySet.rgData stream field. The rgData stream is read sequentially beginning with the first property in a PropertySet.rgPrids array until every property has been read. The number of bytes read for each property is specified by the PropertyID.type field.

The data for a property that is a reference to one or more objects (section 2.1.5) is contained in the streams within an ObjectSpaceObjectPropSet structure (OIDs.body, OSIDs.body, ContextIDs.body). The streams are read sequentially beginning with the first property in a PropertySet.rgPrids array. If the PropertyID.type field specifies a single object (0x8, 0xA, 0xC), a single CompactID (4 bytes) is read from the corresponding stream in the ObjectSpaceObjectPropSet structure. If the PropertyID.type field specifies an array of objects (0x9, 0xB, 0xD), an unsigned integer (4 bytes) is read from the PropertySet.rgData stream and specifies the number of CompactID structures (section 2.2.2) to read from the corresponding stream in the ObjectSpaceObjectPropSet structure. The streams for each PropertyID.type field are given by the following table.

Value

Stream

0x8 (ObjectID, section 2.6.6)

ObjectSpaceObjectPropSet.OIDs.body

0x9 (ArrayOfObjectIDs, section 2.6.6)

ObjectSpaceObjectPropSet.OIDs.body

0xA (ObjectSpaceID, section 2.6.6)

ObjectSpaceObjectPropSet.OSIDs.body

0xB (ArrayOfObjectSpaceIDs, section 2.6.6)

ObjectSpaceObjectPropSet.OSIDs.body

0xC (ContextID, section 2.6.6)

ObjectSpaceObjectPropSet.ContextIDs.body

0xD (ArrayOfContextIDs, section 2.6.6)

ObjectSpaceObjectPropSet.ContextIDs.body