2.12.6.1 ComparePropertiesRestriction Structure


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

RestrictType

RelOp

PropTag1

...

PropTag2

...

RestrictType (1 byte): An unsigned integer. This value indicates the type of restriction (2) and MUST be set to 0x05.

RelOp (1 byte): An unsigned integer. This value indicates the relational operator used to compare the two properties. The value MUST be one the values listed in the following table.

Relational operator

Hexadecimal value

Evaluation

Alternate name

RelationalOperatorLessThan

0x00

TRUE if the object's property value is less than the specified value.

RELOP_LT

RelationalOperatorLessThanOrEqual

0x01

TRUE if the object's property value is less than or equal to the specified value.

RELOP_LE

RelationalOperatorGreaterThan

0x02

TRUE if the object's property value is greater than the specified value.

RELOP_GT

RelationalOperatorGreaterThanOrEqual

0x03

TRUE if 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 object's property value is in the DL membership of the specified property value. The object's property value MUST be an EntryID of a mail-enabled object in the address book. Also, the specified property value MUST be an EntryID of a distribution list object in the address book.

RELOP_MEMBER_OF_DL

PropTag1 (4 bytes): An unsigned integer. This value is the property tag of the first property that MUST be compared.

PropTag2 (4 bytes): An unsigned integer. This value is the property tag of the second property that MUST be compared.

The comparison order is (property tag 1) (relational operator) (property tag 2).

The properties to be compared MUST both be of the same type.

The result of a compare property value restriction (2) is undefined when one or both of the properties do not exist. When a client requires well-defined behavior for such a restriction (2) and is not sure whether the property exists (for example, it is not a required column in a table), the client can create an AndRestriction to join the compare property restriction with an Exist restriction.

The properties specified by the PropTag1 and PropTag2 fields MUST be single-valued.

Only Equal and NotEqual operators are allowed fields when the types of the PropTag1 and PropTag2 fields are PtypBoolean.