3.1 Restriction

The following restriction, as described in section 2.12, described in high level terms, could be used to search for items with reminders set on them.

A restriction of the type AndRestriction with the following two subclauses:

  1. A restriction of type AndRestriction, with the following eight subclauses:

    1. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property ([MS-OXCFOLD] section 2.2.2.2.1.7) with the value of the PidTagEntryId property ([MS-OXCPERM] section 2.2.4) of the Deleted Items folder (see [MS-OXOSFLD]).

    2. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Junk E-mail folder .

    3. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the PidTagEntryId property of the Drafts folder.

    4. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Outbox folder.

    5. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Conflicts special folder

    6. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Local Failures special folder.

    7. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Server Failures special folder.

    8. A restriction of type PropertyRestriction with a relop value of RelationalOperatorNotEqual, comparing the value of the PidTagParentEntryId property with the value of the PidTagEntryId property of the Sync Issues special folder.

  2. A restriction of type AndRestriction, with the following three subclauses:

    1. A restriction of type NotRestriction, with a restriction of type AndRestriction that has the following two subclauses:

      1. A restriction of type ExistRestriction that specifies the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3).

      2. A restriction of type ContentRestriction with the value FL_PREFIX in the FuzzyLevelLow field, comparing the value of the PidTagMessageClass property with the string value "IPM.Schedule".

    2. A restriction of type BitMaskRestriction with a BitmapRelOp value of BMR_EQZ that compares the value of the PidTagMessageFlags property ([MS-OXCMSG] section 2.2.1.6) with the ULONG value MSGFLAG_SUBMIT.

    3. A restriction of type OrRestriction, with the following two subclauses:

      1. A restriction of type PropertyRestriction with relop RelationalOperatorEqual, comparing the value of the PidLidReminderSet property ([MS-OXORMDR] section 2.2.1.1) with the Boolean value 1.

      2. A restriction of type AndRestriction, with the following two subclauses:

        1. A restriction of type ExistRestriction that specifies the PidLidRecurring property ([MS-OXOCAL] section 2.2.1.12).

        2. A restriction of type PropertyRestriction with relop RelationalOperatorEqual, comparing the value of the PidLidRecurring property with the Boolean value 1.

The following table shows how this corresponds to a byte stream that is passed between the client and the server.

Before formatting this data structure to send to the server, the client would need to send a RopGetPropertyIdsFromNames ROP request ([MS-OXCROPS] section 2.2.8.1) to the server to map the two named properties PidLidReminderSet and PidLidRecurring to actual property IDs.

Bytes

Field name

Meaning

00

RestrictType

AndRestriction

02 00

RestrictCount

2

00

RestrictType

AndRestriction

08 00

RestrictCount

8

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT, as described in section 2.11.1.1

46

Bytes

Interpreted as Folder EntryID, as described in section 2.2.1.1

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID, as described in section 2.2.4.1

User ID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Deleted Items folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Junk E-mail folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Drafts folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Outbox folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Conflicts folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Local Failures folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Server Failures folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

04

RestrictType

PropertyRestriction

05

RelOp

RelationalOperatorNotEqual

20 10 09 0E

PropTag

PidTagParentEntryId

TaggedValue

PtypBinary

0E 02

COUNT

46

Bytes

Interpreted as Folder EntryID, as described in section 2.2.1.1

00 00 00 00

Flags

Zero

EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01

Provider UID

UID for mailbox

01 00

FolderType

eitLTPrivateFolder

(16-byte GUID specific to database)

DatabaseGuid

UID identifies database where folder was originally created

(6 bytes identifying Sync Issues folder)

GlobalCounter

UID identifies specific folder within database

00 00

Pad

Zero

00

RestrictType

AndRestriction

03 00

RestrictCount

3

02

RestrictType

NotRestriction

00

RestrictType

AndRestriction

02 00

RestrictCount

2

08

RestrictType

ExistRestriction

1F 00 1A 00

PropTag

PidTagMessageClass

03

RestrictType

ContentRestriction

02 00

FuzzyLevelLow

FL_PREFIX

00 00

FuzzyLevelHigh

1F 00 1A 00

PropertyTag

PidTagMessageClass

49 00 50 00 4D 00 2E 00 53 00 63 00 68 00 65 00 64 00 75 00 6C 00 65 00 00 00

PropValue

"IPM.Schedule"

06

RestrictType

BitMaskRestriction

00

BitmapRelOp

BMR_EQZ

03 00 07 0E

PropTag

PidTagMessageFlags

04 00 00 00

Mask

MSGFLAG_SUBMIT

01

RestrictType

OrRestriction

02 00

RestrictCount

2

04

RestrictType

PropertyRestriction

04

RelOp

RelationalOperatorEqual

0B 00 + (2-byte mapped prop id)

PropTag

PidLidReminderSet

01

PropValue

TRUE

00

RestrictType

AndRestriction

02 00

RestrictCount

2

08

RestrictType

ExistRestriction

0B 00 + (2-byte mapped prop id)

PropTag

PidLidRecurring

04

RestrictType

PropertyRestriction

04

RelOp

RelationalOperatorEqual

0B 00 + (2-byte mapped prop id)

PropTag

PidLidRecurring

01

PropValue

TRUE