2.12.5.1 PropertyRestriction Structure
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RestrictType |
RelOp |
PropTag |
|||||||||||||||||||||||||||||
... |
TaggedValue (variable) |
||||||||||||||||||||||||||||||
... |
RestrictType (1 byte): An unsigned integer. This value indicates the type of restriction (2) and MUST be set to 0x4.
RelOp (1 byte): An unsigned integer. This value indicates the relational operator that is used to compare the property on the object with the value of the TaggedValue field. The value MUST be one of the values listed in the following table.
Relational operator |
Hexadecimal value |
Evaluation |
Alternate name |
---|---|---|---|
RelationalOperatorLessThan |
0x00 |
TRUE if the value of the object's property is less than the specified value. |
RELOP_LT |
RelationalOperatorLessThanOrEqual |
0x01 |
TRUE if the value of the object's property is less than or equal to the specified value. |
RELOP_LE |
RelationalOperatorGreaterThan |
0x02 |
TRUE if the value of the object's property value is greater than the specified value. |
RELOP_GT |
RelationalOperatorGreaterThanOrEqual |
0x03 |
TRUE if the value of the object's property value is greater than or equal to the specified value. |
RELOP_GE |
RelationalOperatorEqual |
0x04 |
TRUE if the object's property value equals the specified value. |
RELOP_EQ |
RelationalOperatorNotEqual |
0x05 |
TRUE if the object's property value does not equal the specified value. |
RELOP_NE |
RelationalOperatorMemberOfDL |
0x64 |
TRUE if the value of the object's property is in the DL membership of the specified property value. The value of the object's property MUST be an EntryID of a mail-enabled object in the address book. The specified property value MUST be an EntryID of a Distribution List object in the address book. |
RELOP_MEMBER_OF_DL |
PropTag (4 bytes): An unsigned integer. This value indicates the property tag of the property that MUST be compared.
TaggedValue (variable): A TaggedValue structure, as specified in section 2.11.4. This structure describes the property value to be compared with. The TaggedValue field contains a property tag subfield that is distinct from the PropTag field of this structure. Only the property type portion of the TaggedValue structure's property tag subfield is used; the property ID is ignored.
-
Multivalue properties (when the MultivalueFlag bit is set) are supported for this type of restriction (2), but the property types (obtained by masking off the MultivalueFlag bit) of both the PropTag field and property tag subfield of the TaggedValue subfield MUST be the same in all cases.
-
The MultivalueInstance bit MUST NOT be set on either the PropTag field or the property tag subfield of the TaggedValue.
-
The cases that are supported for multivalue properties are listed and described in the following table.
PropTag value |
TaggedValue value |
Support |
Details |
---|---|---|---|
Single-valued |
Single-valued |
All RelOp values are supported. |
Simple comparison. |
Single-valued |
Multivalued |
Not supported.<8> |
|
Multivalued and the same as a property tag for a MultivalueInstance column in the table |
Single-valued |
All RelOp values are supported. |
In this case, the client has previously called the RopSetColumns ROP ([MS-OXCROPS] section 2.2.5.1) with the MultivalueInstance bit set in the property tag that matches the value in the PropTag field. The value in the TaggedValue field is compared with the value in the column for each row. Only the row that has a matching value is returned. |
Multivalued and the same as a property tag for a MultivalueInstance column in the table |
Multivalued |
Not supported. |
|
Multivalued and the same as a property tag for a non- MultivalueInstance column in the table |
Single-valued |
All RelOp values supported. |
In this case, the client has previously called the RopSetColumns ROP without the MultivalueInstance bit set in the property tag that matches the value in the PropTag field. Each value of the property PropTag field is compared with the value of the TaggedValue field. For all RelOp values except RelationalOperatorNotEqual, one successful match means that the restriction (2) is satisfied. For RelationalOperatorNotEqual, the restriction (2) is satisfied when there are no matches. |
Multivalued and the same as a property tag for a non-MultivalueInstance column in the table |
Multi-valued |
Not supported. |
|
In the context of a RopFindRow ([MS-OXCROPS] section 2.2.5.13) or RopRestrict ([MS-OXCROPS] section 2.2.5.3) ROP call, the results are undefined if the value of the property PropTag field does not exist on the object being tested. By creating an AndRestriction structure that joins the property restriction with an ExistRestriction, a caller can be guaranteed accurate results. Only RelationalOperatorEqual and RelationalOperatorNotEqual operators are allowed for the RelOp field when the type of the value of the PropTag field is PtypBoolean.