2.2.6.1.2 RestrictionPacket Structure

The RestrictionPacket structure contains the restrictions that are used to evaluate the contents table of the folder. Only those rows that evaluate to a value of TRUE MUST be displayed.

The RestrictionPacket structure is recursively built up by the restriction structures that are specified in section 2.2.6.1.2.1 through section 2.2.6.1.2.11. To determine the size of the RestrictionPacket structure, the application parses each restriction structure recursively if necessary. The restrictions are stored in a special format, which is different from the format specified for restrictions in [MS-OXCDATA] section 2.12.

The RestrictionPacket structure starts with a single restriction structure. The type of the restriction determines whether other restrictions will follow each restriction, as specified in the following description.


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

RestrictionBlocks (variable)

                                                                           ...                                                                 

RestrictionBlocks (variable):  This field contains one or more of the restriction structures that are specified in section 2.2.6.1.2.1 through section 2.2.6.1.2.11. From the restriction type, specified in the RestrictionType field of each restriction structure, the application can determine whether the restriction structure contains subrestrictions, which are stored sequentially in the RestrictionPacket structure. The server parses each restriction structure recursively, if necessary, to complete reading one sequence of restriction structures.

The following table specifies the values for the RestrictionType field and the associated restriction.

Value of RestrictionType field

Numeric value

Meaning

RES_AND

0x00000000

Indicates a LogicalAndRestriction structure (section 2.2.6.1.2.1). This structure has subrestrictions that follow it.

RES_OR

0x00000001

Indicates a LogicalOrRestriction structure (section 2.2.6.1.2.2). This structure has subrestrictions that follow it.

RES_NOT

0x00000002

Indicates a LogicalNotRestriction structure (section 2.2.6.1.2.3). This structure has a single subrestriction that follows it.

RES_CONTENT

0x00000003

Indicates a ContentRestriction structure (section 2.2.6.1.2.4).

RES_PROPERTY

0x00000004

Indicates a PropertyRestriction structure (section 2.2.6.1.2.5).

RES_COMPAREPROPS

0x00000005

Indicates a ComparePropsRestriction structure (section 2.2.6.1.2.6).

RES_BITMASK

0x00000006

Indicates a BitmaskRestriction structure (section 2.2.6.1.2.7).

RES_SIZE

0x00000007

Indicates a SizeRestriction structure (section 2.2.6.1.2.8).

RES_EXIST

0x00000008

Indicates a ExistRestriction structure (section 2.2.6.1.2.9).

RES_SUBRESTRICTION

0x00000009

Indicates a SubObjectRestriction structure (section 2.2.6.1.2.10). This structure has a single subrestriction that follows it.

RES_COMMENT

0x0000000A

Indicates a CommentRestriction structure (section 2.2.6.1.2.11). This structure has a single subrestriction that follows it.