2.6.1 ObjectSpaceObjectPropSet

The ObjectSpaceObjectPropSet structure specifies the data for an object, including a property set (section 2.1.1) and references to other objects, object spaces (section 2.1.4), and contexts (section 2.1.11).


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

OIDs (variable)

...

OSIDs (variable)

...

ContextIDs (variable)

...

body (variable)

...

padding (variable)

...

OIDs (variable): An ObjectSpaceObjectStreamOfOIDs (section 2.6.2) that specifies the count and list of objects that are referenced by this ObjectSpaceObjectPropSet. The count of referenced objects is calculated as the number of properties specified by the body field, with PropertyID equal to 0x8 plus the number of referenced objects specified by properties with PropertyID equal to 0x9, 0x10, and 0x11. This count MUST be equal to the value of OIDs.header.Count field. Properties that reference other objects MUST be matched with the CompactID structures (section 2.2.2) from OIDs.body field in the same order as the properties are listed in the body.rgPrids field.

OSIDs (variable): An optional ObjectSpaceObjectStreamOfOSIDs structure (section 2.6.3) that specifies the count and list of object spaces referenced by this ObjectSpaceObjectPropSet structure. MUST be present if the value of the OIDs.header.OsidStreamNotPresent field is false; otherwise, the OSIDs field MUST NOT be present. The count of referenced object spaces is calculated as the number of properties specified by the body field with PropertyID equal to 0xA plus the number of referenced object spaces specified by properties with PropertyID equal to 0xB, 0x10, and 0x11. This count MUST be equal to the value of OSIDs.header.Count field. Properties that reference other object spaces MUST be matched with the CompactID structures from OSIDs.body field in the same order as the properties are listed in the body.rgPrids field.

ContextIDs (variable): An optional ObjectSpaceObjectStreamOfContextIDs (section 2.6.4) that specifies the count and list of contexts referenced by this ObjectSpaceObjectPropSet structure. MUST be present if OSIDs is present and the value of the OSIDs.header.ExtendedStreamsPresent field is true; otherwise, the ContextIDs field MUST NOT be present. The count of referenced contexts is calculated as the number of properties specified by the body field with PropertyID equal to 0xC plus the number of referenced contexts specified by properties with PropertyID equal to 0xD, 0x10, and 0x11. This count MUST be equal to the value of ContextIDs.header.Count field. Properties that reference other contexts MUST be matched with the CompactID structures from ContextIDs.body field in the same order as the properties are listed in the body.rgPrids field.

body (variable): A PropertySet structure (section 2.6.7) that specifies properties that modify this object, and how other objects relate to this object.

padding (variable): An optional array of bytes that, if present, MUST be zero and MUST be ignored. The total size, in bytes, of an ObjectSpaceObjectPropSet structure MUST be a multiple of 8 if the padding field is present; the size of the padding field is the number of bytes necessary to ensure the total size of ObjectSpaceObjectPropSet structure is a multiple of 8. The size of the padding field MUST NOT exceed 7 bytes. If the sum of the sizes of the OIDs, OSIDs, ContextIDs, and body fields is a multiple of 8, then the padding field is not present.