2.8.1 PropertyRow Structures
A PropertyRow structure is used to pass back a list of property values without including the property tag values that correspond to them. It is used to format property data returned to the client when the list of property tags is known in advance.
For instance, this data structure is used to format the ROP response buffers of the RopGetPropertiesSpecific ([MS-OXCROPS] section 2.2.8.3), RopFindRow ([MS-OXCROPS] section 2.2.5.13), and RopGetReceiveFolderTable ([MS-OXCROPS] section 2.2.3.4) ROPs. In addition, an array of PropertyRow structures makes up the key part of the PropertyRowSet structure, as specified in section 2.8.2, returned in the RopQueryRows ROP response buffer ([MS-OXCROPS] section 2.2.5.4).
Because the property tags are not returned, clients interpret the property values based on the context of the ROP request. For the RopGetPropertiesSpecific ROP, property values are returned in the order that the properties were requested. For the RopFindRow, RopGetReceiveFolderTable, and RopQueryRows ROPs, property values are returned in the order of the properties in the table, set by a prior call to a RopSetColumns ROP request ([MS-OXCROPS] section 2.2.5.1).
There are three PropertyRow structure variants. A StandardPropertyRow structure, as specified in section 2.8.1.1, contains no error values and no type data; it is a sequence of property values. A FlaggedPropertyRow structure contains type data, if the request included PtypUnspecified, as specified in section 2.11.1, for any property or column, and it contains error values if a property value is missing or there was a problem retrieving the value. By examining the first byte of the property row, the client can identify the variant. A PropertyRow_r structure, as specified in [MS-NSPI], is an encoding of the StandardPropertyRow data structure. The semantic meaning is unchanged from the StandardPropertyRow structure.