(Ms-Oxoflag) : Informational Flagging Protocol: Intellectual Property Rights Notice For Open Specifications Documentation
(Ms-Oxoflag) : Informational Flagging Protocol: Intellectual Property Rights Notice For Open Specifications Documentation
Tools. The Open Specifications documentation does not require the use of Microsoft programming
tools or programming environments in order for you to develop an implementation. If you have access
to Microsoft programming tools and environments, you are free to take advantage of them. Certain
Open Specifications documents are intended for use in conjunction with publicly available standards
specifications and network programming art and, as such, assume that the reader either is familiar
with the aforementioned material or has immediate access to it.
1 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Revision Summary
Revision Revision
Date History Class Comments
4/10/2009 2.0 Major Updated technical content and applicable product releases.
2 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Revision Revision
Date History Class Comments
technical content.
3 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Table of Contents
1 Introduction ............................................................................................................ 6
1.1 Glossary ........................................................................................................... 6
1.2 References ........................................................................................................ 8
1.2.1 Normative References ................................................................................... 8
1.2.2 Informative References ................................................................................. 8
1.3 Overview .......................................................................................................... 8
1.4 Relationship to Other Protocols ............................................................................ 9
1.5 Prerequisites/Preconditions ................................................................................. 9
1.6 Applicability Statement ....................................................................................... 9
1.7 Versioning and Capability Negotiation ................................................................... 9
1.8 Vendor-Extensible Fields ..................................................................................... 9
1.9 Standards Assignments....................................................................................... 9
2 Messages ............................................................................................................... 10
2.1 Transport ........................................................................................................ 10
2.2 Message Syntax ............................................................................................... 10
2.2.1 Properties Specific to the Informational Flagging Protocol ................................ 10
2.2.1.1 PidTagFlagStatus Property ..................................................................... 10
2.2.1.2 PidTagFollowupIcon Property .................................................................. 10
2.2.1.3 PidTagFlagCompleteTime Property .......................................................... 11
2.2.1.4 PidTagReplyRequested Property .............................................................. 11
2.2.1.5 PidTagResponseRequested Property ........................................................ 11
2.2.1.6 PidTagToDoItemFlags Property ............................................................... 11
2.2.1.7 PidTagSwappedToDoData Property .......................................................... 12
2.2.1.8 PidTagSwappedToDoStore Property ......................................................... 14
2.2.1.9 PidLidFlagRequest Property .................................................................... 14
2.2.1.10 PidLidFlagString Property ....................................................................... 14
2.2.1.11 PidLidValidFlagStringProof Property ......................................................... 15
2.2.1.12 PidLidToDoTitle Property ........................................................................ 15
2.2.1.13 PidLidToDoOrdinalDate Property ............................................................. 16
2.2.1.14 PidLidToDoSubOrdinal Property............................................................... 16
2.2.2 Properties Shared with the Task-Related Object Protocol ................................. 16
2.2.2.1 PidLidTaskStatus Property ...................................................................... 17
2.2.2.2 PidLidTaskComplete Property.................................................................. 17
2.2.2.3 PidLidPercentComplete Property.............................................................. 17
2.2.3 Properties Shared with the Reminder Settings Protocol .................................... 17
2.2.3.1 PidTagReplyTime Property ...................................................................... 18
3 Protocol Details ..................................................................................................... 19
3.1 Client Details ................................................................................................... 19
3.1.1 Abstract Data Model .................................................................................... 19
3.1.2 Timers ...................................................................................................... 19
3.1.3 Initialization ............................................................................................... 19
3.1.4 Higher-Layer Triggered Events ..................................................................... 19
3.1.4.1 Flagging a Message Object ..................................................................... 19
3.1.4.1.1 Setting a Color Flag ......................................................................... 20
3.1.4.1.2 Setting a Basic Flag ......................................................................... 20
3.1.4.1.3 Setting a Time Flag.......................................................................... 20
3.1.4.1.4 Setting a Complete Flag ................................................................... 21
3.1.4.1.5 Setting a Recipient Flag.................................................................... 21
3.1.4.1.6 Setting a Sender Flag....................................................................... 22
3.1.4.2 Clearing a Flag on a Message Object ....................................................... 22
3.1.4.2.1 Clearing a Flag on a Meeting-Related Object ....................................... 22
3.1.4.2.2 Clearing a Flag on a Task Object ....................................................... 22
3.1.4.2.3 Clearing a Flag on Other Message Objects .......................................... 22
4 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
3.1.4.3 Post-Transmit Processing of a Flagged Message ........................................ 23
3.1.5 Message Processing Events and Sequencing Rules .......................................... 23
3.1.6 Timer Events .............................................................................................. 24
3.1.7 Other Local Events ...................................................................................... 24
3.2 Server Details .................................................................................................. 24
3.2.1 Abstract Data Model .................................................................................... 24
3.2.2 Timers ...................................................................................................... 24
3.2.3 Initialization ............................................................................................... 24
3.2.4 Higher-Layer Triggered Events ..................................................................... 24
3.2.5 Message Processing Events and Sequencing Rules .......................................... 24
3.2.6 Timer Events .............................................................................................. 25
3.2.7 Other Local Events ...................................................................................... 25
4 Protocol Examples ................................................................................................. 26
4.1 Color-Flagged Object ........................................................................................ 27
4.2 Time Flagged Object ......................................................................................... 28
4.3 Completed Object ............................................................................................ 30
4.4 Flagging a Draft Message Object for the Sender and Recipient ............................... 30
5 Security ................................................................................................................. 36
5.1 Security Considerations for Implementers ........................................................... 36
5.2 Index of Security Parameters ............................................................................ 36
6 Appendix A: Product Behavior ............................................................................... 37
7 Change Tracking .................................................................................................... 39
8 Index ..................................................................................................................... 40
5 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
1 Introduction
The Informational Flagging Protocol allows a Message object to be marked for either follow-up or
categorization. This protocol extends the Message and Attachment Object Protocol, which is described
in [MS-OXCMSG].
Sections 1.5, 1.8, 1.9, 2, and 3 of this specification are normative. All other sections and examples in
this specification are informative.
1.1 Glossary
basic flag: A flag on a Message object that indicates that the object has an associated work item
or shares a defining characteristic with other Message objects with such flags.
color flag: A flag that extends the concept of a basic flag by associating one of a chosen set of
color values with a flagged Message object.
complete flag: A flag on a messaging object that indicates that the associated work item has been
completed.
consolidated to-do list: A list of all tasks and flagged Message objects that are in a user's
mailbox.
Coordinated Universal Time (UTC): A high-precision atomic time standard that approximately
tracks Universal Time (UT). It is the basis for legal, civil time all over the Earth. Time zones
around the world are expressed as positive and negative offsets from UTC. In this role, it is also
referred to as Zulu time (Z) and Greenwich Mean Time (GMT). In these specifications, all
references to UTC refer to the time at UTC-0 (or GMT).
Draft Message object: A Message object that has not been sent.
Email object: A Message object that represents an email message in a message store and
adheres to the property descriptions that are described in in [MS-OXOMSG].
handle: Any token that can be used to identify and access an object such as a device, file, or a
window.
Journal object: A Message object that represents an entry in a journal or log and adheres to the
property descriptions that are described in in [MS-OXOJRNL].
mailbox: A message store that contains email, calendar items, and other Message objects for a
single recipient.
Message object: A set of properties that represents an email message, appointment, contact, or
other type of personal-information-management object. In addition to its own properties, a
Message object contains recipient properties that represent the addressees to which it is
addressed, and an attachments table that represents any files and other Message objects that
are attached to it.
6 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
named property: A property that is identified by both a GUID and either a string name or a 32-bit
identifier.
Note object: A Message object that represents a simple text note in a messaging store and that
adheres to the property descriptions that are described in [MS-OXONOTE]. A Note object
functions as an electronic equivalent of a paper sticky note.
primary flag storage location: The typical location that is used to store flagging properties, as
opposed to the secondary flag storage location.
property ID: A 16-bit numeric identifier of a specific attribute. A property ID does not include any
property type information.
recipient flag: A collection of property values indicating that a draft Message object is marked
such that it will appear as flagged with a basic flag to recipients.
recipient reminder: A collection of property values indicating that a Draft Message object is
marked such that it will have an active reminder for the recipients of the Message Object.
reminder: A generally user-visible notification that a specified time has been reached. A reminder
is most commonly related to the beginning of a meeting or the due time of a task but it can be
applied to any object type.
reminder properties: A set of properties that specify the attributes of a reminder. These
attributes include the time at which and the method by which a reminder is signaled or
displayed.
remote operation (ROP): An operation that is invoked against a server. Each ROP represents an
action, such as delete, send, or query. A ROP is contained in a ROP buffer for transmission over
the wire.
ROP request buffer: A ROP buffer that a client sends to a server to be processed.
ROP response buffer: A ROP buffer that a server sends to a client to be processed.
secondary flag storage location: A binary property that is used to encode a second set of
flagging properties, which do not affect the flagged state of a Message object.
sender flag: A collection of property values that indicate that a Draft Message object has been
marked such that the copy of the Message object that is saved in the sender's mailbox after
the message is sent will appear flagged to the sender.
sender reminder: A collection of property values that indicate that a Draft Message object has
been marked such that the copy of the Message object that is saved in the sender's mailbox
after the message is sent will have an active reminder.
time flag: A flag that extends the concept of a basic flag by associating time-related properties,
such as start and due dates, with the flag information on a Message object. A time flagged
Message object is also marked with a red color flag, but it is not considered to be color flagged
by definition.
Unicode: A character encoding standard developed by the Unicode Consortium that represents
almost all of the written languages of the world. The Unicode standard [UNICODE5.0.0/2007]
7 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
provides three forms (UTF-8, UTF-16, and UTF-32) and seven schemes (UTF-8, UTF-16, UTF-16
BE, UTF-16 LE, UTF-32, UTF-32 LE, and UTF-32 BE).
MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined
in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.
1.2 References
Links to a document in the Microsoft Open Specifications library point to the correct section in the
most recently published version of the referenced document. However, because individual documents
in the library are not updated at the same time, the section numbers in the documents may not
match. You can confirm the correct section numbering by checking the Errata.
We conduct frequent surveys of the normative references to assure their continued availability. If you
have any issue with finding a normative reference, please contact [email protected]. We will
assist you in finding the relevant information.
[MS-OXCROPS] Microsoft Corporation, "Remote Operations (ROP) List and Encoding Protocol".
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC
2119, March 1997, http://www.rfc-editor.org/rfc/rfc2119.txt
1.3 Overview
The Informational Flagging Protocol allows a user to mark an item for either follow-up or
categorization. The marker is referred to as a flag. By flagging an item for follow up, the user can
track the progress and completion of an associated work item. Categorizing items with flags enables a
user to organize items in the user's mailbox. For example, users can assign start dates and due dates
to their flagged items to prioritize their work, or they can assign a flag color to group related items.
This protocol specifies a set of properties that identify a Message object as being flagged. There are
six different types of flags: basic flag, color flag, time flag, complete flag, recipient flag, and
sender flag. A Message object that is delivered to a recipient and the sender's copy of that Message
object can have their flag-related properties set independently of each other.
8 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
This protocol extends the Message and Attachment Object Protocol, described in [MS-OXCMSG], in
that it adds capability for flagging a Message object.
The Informational Flagging Protocol has the same dependencies as the Message and Attachment
Object Protocol, which is described in [MS-OXCMSG]. A sender flag is closely related to a sender
reminder, which is described in [MS-OXORMDR].
For conceptual background information and overviews of the relationships and interactions between
this and other protocols, see [MS-OXPROTO].
1.5 Prerequisites/Preconditions
This protocol assumes that the client has previously logged on to the server, as specified in [MS-
OXCSTOR], and has acquired a handle to the Message object on which it intends to operate.
A client can use the Informational Flagging Protocol to set various flags on a Message object. This
protocol is intended to be a complement, and not a substitute, for full task management, which is
described in [MS-OXOTASK].
None.
None.
None.
9 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
2 Messages
2.1 Transport
The Informational Flagging Protocol uses the same underlying transport as that used by the Message
and Attachment Object Protocol, which is specified in [MS-OXCMSG].
A Message object can have its flag state changed by the client. Constraints for setting flags on a
Message object are defined in section 2.2.1 through section 2.2.3.
When a value is specified as not present, the property MUST NOT exist on the Message object, and if it
exists, it MUST be deleted. Setting a property to 0 or to a zero-length string does not delete the
property from the Message object.
The PidTagFlagStatus property ([MS-OXPROPS] section 2.697) specifies the flag state of the
Message object. This property is present on the Message object only if the object has been flagged
and is not present otherwise. It MUST NOT exist on a meeting-related object, and it SHOULD
NOT<1> exist on a Task object. When acting on other Message objects, this property is set to one of
the following values.
Numeric
value Name Meaning
0x00000001 followupComplete The object is flagged as complete. This value is valid only for a complete
flag.
0x00000002 followupFlagged The object is flagged for follow-up. This value is valid for a basic flag, a
color flag, a time flag, and a recipient flag.
The PidTagFollowupIcon property ([MS-OXPROPS] section 2.703) specifies the color of the flag that
is set on the Message object. The flag will appear with the specified color in the UI. This property
SHOULD NOT<2> exist on a Task object. When acting on other Message objects, this property is set
to one of the following values. If this property is not present on a flagged object, the flag has no color.
This property can be set to any of these values for a color flag, but it MUST be set to 0x00000006 for
a time flag and a recipient flag.
10 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Numeric value Meaning
The PidTagFlagCompleteTime property ([MS-OXPROPS] section 2.696) specifies the date and time,
in Coordinated Universal Time (UTC), that the Message object was flagged as completed. The
time's smallest resolution MUST be minutes, and the value MUST be a multiple of 600,000,000. This
property is present on the Message object only if the object's PidTagFlagStatus property (section
2.2.1.1) is set to 0x00000001. This property MUST NOT exist on a meeting-related object; it
SHOULD NOT<3> exist on a Task object.
For a basic flag, color flag, time flag, or a recipient flag: 0x01 (TRUE)
The PidTagResponseRequested property ([MS-OXOMSG] section 2.2.1.46) has identical values and
semantics to the PidTagReplyRequested property ([MS-OXOMSG] section 2.2.1.45) in terms of this
protocol, and therefore, the client updates these values in an identical manner.
11 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
The PidTagToDoItemFlags property ([MS-OXPROPS] section 2.1048) specifies the type of flag that
is set on a Message object.<6> The possible bit values are as follows. All bits not specified in the
table are reserved. They MUST be ignored but SHOULD be preserved if they are set.
0x00000008 todoRecipientFlagged A recipient flag or a sender flag is set. This bit SHOULD be set only
on a Draft Message object.
Properties for a sender flag or a sender reminder can be stored in the PidTagSwappedToDoData
property without exposing the sender flag or sender reminder information to the recipients of the
message. Similarly, properties for a recipient flag or a recipient reminder can be stored in the
PidTagSwappedToDoData property for informational purposes on a previously sent message. For
details about reminders, see [MS-OXORMDR].
The PidTagSwappedToDoData property contains the following fields. The mapping of these fields to
the primary flag storage location is specified in each field description.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
ulVersion
dwFlags
dwToDoItem
wszFlagTo
...
...
...
...
...
...
12 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
...
rtmStartDate
rtmDueDate
rtmReminder
fReminderSet
dwFlags (4 bytes): A set of bits that indicate the validity of the six member fields that correspond
to properties. The bits specified in the following table are combined by using a bitwise OR
operation.
Bit Meaning
When the contents of the primary flag storage location and secondary flag storage location are
swapped, the contents of the rtmReminder field are written to the PidLidReminderTime,
PidLidReminderSignalTime, and PidTagReplyTime properties, and the data in the
PidLidReminderTime property is written to the rtmReminder field. For details about reminder
properties, see [MS-OXORMDR] section 2.2.1.
13 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
fReminderSet (4 bytes): A Boolean value that corresponds to the PidLidReminderSet property
([MS-OXORMDR] section 2.2.1.1).
The value in the rtmStartDate, rtmDueDate, and rtmReminder fields is stored as a 4-byte integer
that is expressed as the number of minutes since 00:00:00 on January 1, 1601, in UTC. To indicate
no date and time, the rtmStartDate, rtmDueDate, and rtmReminder fields are set to the value
0x5AE980E0.
The client ignores the PidLidFlagRequest property if the PidLidFlagString property (section
2.2.1.10) is set to a nonzero value. The server always uses the PidLidFlagRequest property.
The PidLidFlagString property ([MS-OXPROPS] section 2.137) contains an integer that identifies a
predefined text string to be associated with the flag. This property MUST NOT exist on meeting-
related objects and is optional on other Message objects. Setting this property is optional for the
client. The server does not read or set this property. If this property is either not present on the object
or set to 0x00000000, the client associates the value of the PidLidFlagRequest property (section
2.2.1.9) with the flag; otherwise, the client uses the text identified by this property.
The predefined text strings and their associated integer identifiers are specified in the following tables.
All strings can be translated into the user's language, if appropriate.
0x0000006F "Call"
The predefined text strings for all other Message objects are as follows.
14 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Value English string
0x00000001 "Call"
0x00000005 "Forward"
0x00000007 "Read"
0x00000008 "Reply"
0x0000000A "Review"
This property can be used to validate whether the PidLidFlagRequest property was set by an agent
with knowledge of the value of the PidTagMessageDeliveryTime property. Since the value of the
PidTagMessageDeliveryTime property cannot be predicted by the sender, if the value of the
PidLidValidFlagStringProof property is equal to the value of the PidTagMessageDeliveryTime
property, it is reasonably certain that the value of the PidLidFlagRequest property did not originate
from the sender of the message. A client can decide how to present the value of the
PidLidFlagRequest property to the end user based on the result of this comparison in accordance
with the specific security policy of the client.
If the client ignores the PidLidFlagRequest property due to the value of the PidLidFlagString
property (section 2.2.1.10), the client also ignores the PidLidValidFlagStringProof property.
The PidLidToDoTitle property ([MS-OXPROPS] section 2.346) specifies user-supplied text to identify
the Message object in a consolidated to-do list. The PidLidToDoTitle property MUST NOT be set
on a Task object.
To indicate an empty property, the PidLidToDoTitle property SHOULD NOT be set to the zero-length
string and instead SHOULD be deleted. If this property does not exist on an object, a client
SHOULD<8> set this property to the value of the PidTagNormalizedSubject property ([MS-
OXCMSG] section 2.2.1.10).
15 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
On a Draft Message object, if the client implements sender flags, this property SHOULD be set to
the value of the PidLidFlagRequest property (section 2.2.1.9).
The PidLidToDoOrdinalDate property ([MS-OXPROPS] section 2.344) specifies the time that an
object is flagged. When an object is flagged, this property SHOULD<9> be set to the current time in
UTC.
This property SHOULD be used to determine the order of objects in a consolidated to-do list. If the
client allows a user to reorder tasks within the consolidated to-do list via dragging or other
mechanisms, the client can use any suitable algorithm to determine the new value of this property
such that the task appears in the correct place when this property is used as a sorting field. When this
property is used to sort objects and two or more of the objects have the same value for this property,
the objects with the matching values will tie for placement in the list. In this case, the
PidLidToDoSubOrdinal property (section 2.2.1.14) is used to break the tie.
The PidLidToDoSubOrdinal property ([MS-OXPROPS] section 2.345) specifies a string that is used to
break a tie for placement within a sorted list of Message objects. When the
PidLidToDoOrdinalDate property (section 2.2.1.13) is used to sort objects and two or more of the
objects have the same value for this property, the objects with the matching values tie for placement
in the list. In this case, the PidLidToDoSubOrdinal property is used to break the tie. If used, this
property MUST be sorted lexicographically.
The component characters of the string consist of only the numerals 0 through 9. This property
SHOULD be initially set to "5555555". The length of this property MUST NOT exceed 254 characters
(excluding the terminating null character).
The following properties are shared by this protocol and the Task-Related Object Protocol, which is
specified in [MS-OXOTASK]:
Unless noted in section 2.2.2.1 through section 2.2.2.3, the semantics and accepted values of these
shared properties are identical to those specified in [MS-OXOTASK].
16 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
2.2.2.1 PidLidTaskStatus Property
The following properties are shared by this protocol and the Reminder Settings Protocol, as specified
in [MS-OXORMDR]:
Unless noted in section 2.2.3.1, the semantics and accepted values of these properties are identical to
those specified in [MS-OXORMDR].
17 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
2.2.3.1 PidTagReplyTime Property
On a Draft Message object, if the sender desires to set a deadline for the recipient, the
PidTagReplyTime property ([MS-OXPROPS] section 2.919) is set to the desired deadline, in UTC.
18 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
3 Protocol Details
The client sets flags on a Message object and operates within the client role as specified in [MS-
OXCMSG].
This section describes a conceptual model of possible data organization that an implementation
maintains to participate in this protocol. The described organization is provided to facilitate the
explanation of how the protocol behaves. This specification does not mandate that implementations
adhere to this model as long as their external behavior is consistent with that described in this
document.
A Message object is always considered to be in one of the following states with respect to this
protocol:
Unflagged
Basic-flagged
Color-flagged
Time-flagged
Flagged as complete
Recipient-flagged
Sender-flagged
Otherwise, the abstract data model of the Informational Flagging Protocol does not differ significantly
from the abstract data model of the Message object to which this protocol is being applied. For details
about the abstract data model of the Message object for the client, see [MS-OXCMSG] section 3.1.1.
3.1.2 Timers
None.
3.1.3 Initialization
None.
To flag a Message object, the client opens the object by sending a RopOpenMessage remote
operation (ROP) request ([MS-OXCROPS] section 2.2.6.1). Message objects, other than
Appointment objects, Journal objects, and Note objects, can be flagged.<13>
The client then sets properties on the object by using the property ROPs that are specified in [MS-
OXCPRPT]. The properties that are set depend on the particular flag used, as specified in section
3.1.4.1.1 through section 3.1.4.1.6. In addition, some properties are not set on some Message
19 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
objects. For details about property constraints, see the property definitions in section 2.2.1 through
section 2.2.3.
The client sets the following properties to flag a Message object with a color flag.<14> Some of
these properties cannot be set on a meeting-related object or a Task object. For details, see the
property definitions in section 2.2.1.
A basic flag is identical to the color flag specified in section 3.1.4.1 except that the
PidTagFollowupIcon property (section 2.2.1.2) is not set.<15> Meeting-related objects cannot
have a basic flag.
The client sets the following properties to flag a Message object with a time flag.<16> Some of
these properties cannot be set on a meeting-related object or a Task object. For details, see the
property definitions in section 2.2.1.
PidLidToDoOrdinalDate (section 2.2.1.13)—set only if it does not already exist on the object
PidLidFlagRequest (section 2.2.1.9)—set only if it does not already exist on the object
PidLidFlagString (section 2.2.1.10)—set only if it does not already exist on the object
PidLidValidFlagStringProof (section 2.2.1.11)—set only if it does not already exist on the object
20 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
PidLidCommonStart ([MS-OXCMSG] section 2.2.1.18)
Even if the user does not specify dates for the PidLidTaskStartDate and the PidLidTaskDueDate
properties, the flag is still considered a time flag if the PidTagToDoItemFlags property is set to
todoTimeFlagged (0x00000001).
The client sets the following properties to flag a Message object with a complete flag.<17> Some
of these properties cannot be set on a meeting-related object or a Task object. For details, see the
property definitions in section 2.2.1.
PidLidToDoOrdinalDate (section 2.2.1.13)—set only if it does not already exist on the object
PidLidFlagRequest (section 2.2.1.9)—set only if it does not already exist on the object
PidLidFlagString (section 2.2.1.10)—set only if it does not already exist on the object
PidLidValidFlagStringProof (section 2.2.1.11)—set only if it does not already exist on the object
The client sets the following properties to flag a Draft Message object with a recipient flag. When a
recipient flag arrives in the recipient's mailbox, it appears as a basic flag.
21 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
PidLidFlagString (section 2.2.1.10)
If the client supports sender flags, the PidTagSwappedToDoStore property (section 2.2.1.8) is set
to trigger the post-transmit processing specified in section 3.1.4.3.
The client sets the following properties to flag a Draft Message object with a sender flag.<18>
The recipient flag properties are stored in the primary flag storage location, as specified in
section 3.1.4.1.5, whereas the sender flag properties are stored in the secondary flag storage location
(the PidTagSwappedToDoData property).
To clear a flag from a Message object, the client opens the object by sending a RopOpenMessage
ROP request buffer ([MS-OXCROPS] section 2.2.6.1). The client then sets or deletes properties on
the object by using the property ROPs that are specified in [MS-OXCPRPT]. The properties that are
set depend on the particular flag used, as specified in section 3.1.4.1.1 through section 3.1.4.1.6.
Flagging a task is a shortcut for the user to change the values of PidLidTaskStartDate ([MS-
OXOTASK] section 2.2.2.2.4) and PidLidTaskDueDate ([MS-OXOTASK] section 2.2.2.2.5). A client
can, in this way, always view an uncompleted task as having a time flag. Because of this, clearing a
flag on a task can be viewed as equivalent to deleting the Task object.
22 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
3.1.4.2.3 Clearing a Flag on Other Message Objects
To clear a flag from a Message object, the properties that were set for the particular flag SHOULD be
deleted, with the following exceptions. These properties are set to the following values.
Property Value
PidTagToDoItemFlags (section 2.2.1.6) Set the bit (todoTimeFlagged or todoRecipientFlagged) for the
associated flag to 0.
Once a message that has a value set for the PidTagSwappedToDoStore property (section 2.2.1.8)
has been sent, a client that supports sender flags or sender reminders takes the following
actions.<19>
If the value of the PidTagSwappedToDoStore property does not match the value of the
PidTagStoreEntryId property, the client clears the PidTagSwappedToDoData property.
None.
23 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
3.1.6 Timer Events
None.
None.
The server processes a client's requests regarding the flagging of a Message object and in all other
ways operates within the server role as specified in [MS-OXCMSG].
This section describes a conceptual model of possible data organization that an implementation
maintains to participate in this protocol. The described organization is provided to facilitate the
explanation of how the protocol behaves. This specification does not mandate that implementations
adhere to this model as long as their external behavior is consistent with that described in this
document.
A Message object is always considered to be in one of the following states with respect to this
protocol:
Unflagged
Basic-flagged
Color-flagged
Time-flagged
Flagged as complete
Recipient-flagged
Sender-flagged
Otherwise, the abstract data model of the Informational Flagging Protocol does not differ significantly
from the abstract data model of the Message object to which this protocol is being applied. For details
about the abstract data model of the Message object for the server, see [MS-OXCMSG] section 3.2.1.
3.2.2 Timers
None.
3.2.3 Initialization
None.
None.
24 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
3.2.6 Timer Events
None.
None.
25 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
4 Protocol Examples
All examples in this section assume that the user who is flagging the object resides in the Pacific
Standard Time Zone (UTC - 8). The following are descriptions of what a client does to accomplish the
scenarios and the responses that a server returns.
Before flagging any Message objects, the client requests the server to map named properties to
property IDs by using the RopGetPropertyIDsFromNames ROP ([MS-OXCROPS] section 2.2.8.1).
26 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property Property set GUID LID
2.2.1.2) 000000000046}
The server responds with the following property IDs, which will be used in the examples that follow
(the actual identifiers are at the discretion of the server).
Property Property ID
PidLidFlagRequest 0x802A
PidLidFlagString 0x83C0
PidLidValidFlagStringProof 0x83CA
PidLidToDoTitle 0x8018
PidLidToDoOrdinalDate 0x830D
PidLidToDoSubOrdinal 0x830E
PidLidTaskStartDate 0x8143
PidLidTaskDueDate 0x8144
PidLidCommonStart 0x81BC
PidLidCommonEnd 0x81BB
PidLidTaskDateCompleted 0x8149
PidLidTaskComplete 0x8148
PidLidTaskStatus 0x8145
PidLidPercentComplete 0x8146
PidLidReminderSet 0x8004
PidLidReminderDelta 0x81FF
PidLidReminderTime 0x8005
PidLidReminderSignalTime 0x8006
Ryan Gregg has a message in his Inbox related to the Woodgrove Bank account, which he has
associated to the orange flag. He uses the default request string designated by the client, which is
"Follow up". The following is a description of what a client might do to accomplish Ryan's intentions
and the responses a server might return.
To open the message to be flagged, the client sends a RopOpenMessage ROP request ([MS-
OXCROPS] section 2.2.6.1) and waits for the server to respond. The server response contains a
handle to the Message object.
To retrieve some properties of the Message object, the client sends a RopGetPropertiesSpecific ROP
request ([MS-OXCROPS] section 2.2.8.3).
27 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property
Property ID Property type
The client receives a ROP response buffer from the server with the requested property values.
To set the properties for the color flag, the client sends a RopSetProperties ROP request ([MS-
OXCROPS] section 2.2.8.6) with the values that are specified in the following table.
Property
Property ID Property type Value
Finally, to persist the Message object on the server, the client sends a RopSaveChangesMessage
ROP request ([MS-OXCROPS] section 2.2.6.3), followed by a RopRelease ROP request ([MS-
OXCROPS] section 2.2.15.3) to release the object.
The above properties are all that is strictly necessary to flag an object with a color flag. Clients can set
the other properties discussed in section 2.2.1.7 to appropriate values, if desired.
Kendall Keil has a message in his Inbox with the subject "Contoso Project", and he wants to be sure to
remember to follow up on that message starting on 2008/02/11, and he needs to be done by
2008/02/12. He uses the default request string designated by the client, which is "Follow up". He flags
the item on 2008/02/11 22:16:28.177 (UTC). The following is a description of what a client might do
to accomplish Kendall's intentions and the responses a server might return.
As before, the client first retrieves a handle to the Message object by sending a RopOpenMessage
ROP request ([MS-OXCROPS] section 2.2.6.1).
Besides a handle, the server returns the following relevant data in the RopOpenMessage ROP
response ([MS-OXCROPS] section 2.2.6.1).
28 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property
Property ID Property type Value
To retrieve the state of the Message object, the client sends a RopGetPropertiesSpecific ROP
request ([MS-OXCROPS] section 2.2.8.3).
Property
Property ID Property type
The client receives a ROP response buffer from the server with the requested values.
To set the properties for the time flag, the client sends a RopSetProperties ROP request ([MS-
OXCROPS] section 2.2.8.6) with the values that are specified in the following table.
Property
Property ID Property type Value
29 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property
Property ID Property type Value
Finally, to persist the Message object on the server, the client sends a RopSaveChangesMessage
ROP request ([MS-OXCROPS] section 2.2.6.3) followed by a RopRelease ROP request ([MS-
OXCROPS] section 2.2.15.3) to release the object.
Kendall Keil is now finished with the work item associated with the message in the example given in
section 4.2. The following is a description of what a client might do to accomplish Kendall's intentions
and the responses a server might return.
As before, the client first retrieves a handle to the Message object by sending a RopOpenMessage
ROP request ([MS-OXCROPS] section 2.2.6.1).
To set the properties for the complete flag, the client sends a RopSetProperties ROP request ([MS-
OXCROPS] section 2.2.8.6) with the values that are specified in the following table.
Property
Property ID Property type Value
To delete the following property, the client sends a RopDeletePropertiesNoReplicate ROP request
([MS-OXCROPS] section 2.2.8.9).
30 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Finally, to persist the Message object on the server, the client sends a RopSaveChangesMessage
ROP request ([MS-OXCROPS] section 2.2.6.3) followed by a RopRelease ROP request ([MS-
OXCROPS] section 2.2.15.3) to release the object.
4.4 Flagging a Draft Message Object for the Sender and Recipient
Randy Byrne is planning to send a contract to a customer on March 7, 2008. He wants his co-worker,
Marina Dukhon, to review the contract before he sends it out. He sends a message to Marina with a
sender flag that has a due date of 2008/03/07 with a request string of "Forward", and a recipient
flag to Marina with a reminder on March 6, 2008, at 4:00 P.M. local time and a request string of
"Review". The following is a description of what a client might do to accomplish Randy's intentions and
the responses a server might return.
As before, the client first retrieves a handle to the Message object by sending the
RopOpenMessage ROP request ([MS-OXCROPS] section 2.2.6.1).
To set the properties for the sender flag and the recipient flag, the client sends a RopSetProperties
ROP request ([MS-OXCROPS] section 2.2.8.6) with the values that are specified in the following table.
Property
Property ID Property type Value
31 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property
Property ID Property type Value
000: 01 00 00 00 79 00 00 00 01 00 00 00 46 00 6F 00
010: 72 00 77 00 61 00 72 00 64 00 00 00 00 00 00 00
020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
200: 00 00 00 00 00 00 00 00 00 00 00 00 E0 80 E9 5A
210: 60 C0 C3 0C 00 00 00 00 00 00 00 00
This binary data corresponds to the following values in the fields of the PidTagSwappedToDoData
property.
Field Value
ulVersion 0x00000001
dwFlags 0x00000079
dwToDoItem 0x00000001
wszFlagTo "Forward"
32 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Field Value
rtmReminder 0x00000000
Finally, to send the message to the intended recipients, the client sends a RopSubmitMessage ROP
request ([MS-OXCROPS] section 2.2.7.1) followed by a RopRelease ROP request ([MS-OXCROPS]
section 2.2.15.3) to release the object.
When the above message is sent, the client performs post-transmit processing on the message, as
described in both section 3.1.4.3 and the remainder of this section.
The client retrieves a handle to the Message object by sending a RopOpenMessage request and gets
the relevant flagging properties by sending a RopGetPropertiesSpecific ROP request ([MS-
OXCROPS] section 2.2.8.3). The values of the properties returned would be identical to the values set
above, except for the following property, which is changed by the server during message delivery.
Property Property
Property ID type Value
To perform the swap, the client sends a RopSetProperties request with the values that are specified
in the following table.
Property Property
Property ID type Value
33 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Property Property
Property ID type Value
000: 01 00 00 00 F9 00 00 00 01 00 00 00 52 00 65 00
010: 76 00 69 00 65 00 77 00 00 00 00 00 00 00 00 00
020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
200: 00 00 00 00 00 00 00 00 00 00 00 00 E0 80 E9 5A
210: E0 80 E9 5A 60 C0 C3 0C 01 00 00 00
This binary data corresponds to the following values in the fields of the PidTagSwappedToDoData
property.
Field Value
ulVersion 0x00000001
dwFlags 0x000000F9
dwToDoItem 0x00000001
wszFlagTo "Review"
34 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Field Value
To delete the following properties, the client sends a RopDeletePropertiesNoReplicate ROP request
([MS-OXCROPS] section 2.2.8.9).
Finally, to persist the Message object on the server, the client sends a RopSaveChangesMessage
ROP request ([MS-OXCROPS] section 2.2.6.3) followed by a RopRelease ROP request to release the
object.
35 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
5 Security
There are no security considerations specific to the Informational Flagging Protocol. General security
considerations pertaining to the underlying transport apply, as described in [MS-OXCMSG].
None.
36 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
6 Appendix A: Product Behavior
The information in this specification is applicable to the following Microsoft products or supplemental
software. References to product versions include updates to those products.
Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base
(KB) number appears with a product name, the behavior changed in that update. The new behavior
also applies to subsequent updates unless otherwise specified. If a product edition appears with the
product version, behavior is different in that product edition.
Unless otherwise specified, any statement of optional behavior in this specification that is prescribed
using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the
SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the
product does not follow the prescription.
<1> Section 2.2.1.1: Office Outlook 2003 does provide a way for the user to set the value of the
PidTagFlagStatus property (section 2.2.1.1) on a Task object.
<2> Section 2.2.1.2: Office Outlook 2003 does provide a way for the user to set the value of the
PidTagFollowupIcon property (section 2.2.1.2) on a Task object.
<3> Section 2.2.1.3: Office Outlook 2003 does provide a way for the user to set the value of the
PidTagFlagCompleteTime property (section 2.2.1.3) on a Task object.
<4> Section 2.2.1.4: Office Outlook 2003 does provide a way for the user to set the value of the
PidTagReplyRequested ([MS-OXOMSG] section 2.2.1.45) and PidTagResponseRequested ([MS-
OXOMSG] section 2.2.1.46) properties on a Task object.
<5> Section 2.2.1.4: In Office Outlook 2007, when swapping the contents of the primary flag
storage location and secondary flag storage location, the PidTagReplyRequested ([MS-
OXOMSG] section 2.2.1.45) and PidTagResponseRequested ([MS-OXOMSG] section 2.2.1.46)
properties do not get updated to the correct value according to the new flagging state of the primary
flag storage location.
<6> Section 2.2.1.6: Exchange 2003 and Office Outlook 2003 do not read or write the
PidTagToDoItemFlags property (section 2.2.1.6).
37 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
<7> Section 2.2.1.7: Exchange 2003 and Office Outlook 2003 do not support sender flags.
<8> Section 2.2.1.12: Office Outlook 2007 substitutes the concatenated values of
PidTagSubjectPrefix ([MS-OXCMSG] section 2.2.1.9) and PidTagNormalizedSubject ([MS-
OXCMSG] section 2.2.1.10) when displaying a Message object without a value in the
PidLidToDoTitle property.
<9> Section 2.2.1.13: Exchange 2003 and Office Outlook 2003 do not read or write the
PidLidToDoOrdinalDate property.
<10> Section 2.2.2.1: Office Outlook 2003 does not set the PidLidTaskStatus property (section
2.2.2.1).
<11> Section 2.2.2.2: Office Outlook 2003 does not set the PidLidTaskComplete property (section
2.2.2.2).
<12> Section 2.2.2.3: Office Outlook 2003 does not set the PidLidPercentComplete property
(section 2.2.2.3).
<13> Section 3.1.4.1: The default Outlook user interface does not permit users to flag Appointment
objects, Journal objects, or Note objects, but it is possible to manipulate the UI in nonstandard
ways in order to set flag-related properties on such objects. Flagging Appointment objects, Journal
objects, or Note objects will result in undefined behavior.
<14> Section 3.1.4.1.1: Exchange 2007, Exchange 2010, Exchange 2013, Exchange 2016, Exchange
2019, Office Outlook 2007, Microsoft Outlook 2010, Outlook 2013, Outlook 2016, and Outlook 2019 do
not support color flags.
<15> Section 3.1.4.1.2: Except for receiving a recipient flag, as described in section 3.1.4.1.5,
basic flags are not supported by Office Outlook 2007, Outlook 2010, Outlook 2013, Outlook 2016,
and Outlook 2019.
<16> Section 3.1.4.1.3: Exchange 2003 and Office Outlook 2003 do not support time flags.
<17> Section 3.1.4.1.4: In addition to the exceptions as noted for individual properties, Exchange
2003 and Office Outlook 2003 do not set the following properties when marking a Message object
complete: PidTagToDoItemFlags (section 2.2.1.6), PidLidToDoTitle (section 2.2.1.12),
PidLidToDoOrdinalDate (section 2.2.1.13), PidLidToDoSubOrdinal (section 2.2.1.14),
PidLidTaskDateCompleted ([MS-OXOTASK] section 2.2.2.2.9), PidLidTaskComplete ([MS-
OXOTASK] section 2.2.2.2.20), PidLidTaskStatus ([MS-OXOTASK] section 2.2.2.2.2), and
PidLidPercentComplete (section 2.2.2.3). Becuase Exchange 2003 and Office Outlook 2003 also do
not set the PidTagFlagStatus property (section 2.2.1.1) for a meeting-related object, Exchange
2003 and Office Outlook 2003 do not support complete flags for a meeting-related object.
<18> Section 3.1.4.1.6: Office Outlook 2003 does not support sender flags. Only recipient flags can
be set in Office Outlook 2003.
<19> Section 3.1.4.3: Exchange 2003 and Office Outlook 2003 do not support sender flags, and thus
do not support post-transmit processing of a flagged message.
38 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
7 Change Tracking
This section identifies changes that were made to this document since the last release. Changes are
classified as Major, Minor, or None.
The revision class Major means that the technical content in the document was significantly revised.
Major changes affect protocol interoperability or implementation. Examples of major changes are:
The revision class Minor means that the meaning of the technical content was clarified. Minor changes
do not affect protocol interoperability or implementation. Examples of minor changes are updates to
clarify ambiguity at the sentence, paragraph, or table level.
The revision class None means that no new technical changes were introduced. Minor editorial and
formatting changes may have been made, but the relevant technical content is identical to the last
released version.
The changes made to this document are listed in the following table. For more information, please
contact [email protected].
39 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
8 Index
A
I
Abstract data model
client 19 Implementer - security considerations 36
server 24 Index of security parameters 36
Applicability 9 Informative references 8
Initialization
C client 19
server 24
Capability negotiation 9 Introduction 6
Change tracking 39
Client M
abstract data model 19
initialization 19 Message processing
message processing 23 client 23
other local events 24 server 24
overview 19 Messages
sequencing rules 23 Properties Shared with the Reminder Settings
timer events 24 Protocol 17
timers 19 Properties Shared with the Task-Related Object
Client - higher-layer triggered events Protocol 16
clearing a flag on a Message object 22 syntax 10
flagging a Message object 19 transport 10
post-transmit processing of a flagged message 23
Color-flagged object example 27 N
Completed object example 30
Normative references 8
D
O
Data model - abstract
client 19 Other local events
server 24 client 24
server 25
E Overview (synopsis) 8
Examples P
color-flagged object 27
completed object 30 Parameters - security index 36
flagging a Draft Message object for the sender and PidLidFlagRequest property 14
recipient 30 PidLidFlagString property 14
overview 26 PidLidPercentComplete shared property 17
time-flagged object 28 PidLidTaskComplete shared property 17
PidLidTaskStatus shared property 17
F PidLidToDoOrdinalDate property 16
PidLidToDoSubOrdinal property 16
Fields - vendor-extensible 9 PidLidToDoTitle property 15
Flagging a Draft Message object for the sender and PidLidValidFlagStringProof property 15
recipient example 30 PidTagFlagCompleteTime property 11
PidTagFlagStatus property 10
G PidTagFollowupIcon property 10
PidTagReplyRequested property 11
Glossary 6 PidTagReplyTime shared property 18
PidTagResponseRequested property 11
H PidTagSwappedToDoData property 12
PidTagSwappedToDoStore property 14
Higher-layer triggered events PidTagToDoItemFlags property 11
server 24 Preconditions 9
Higher-layer triggered events - client Prerequisites 9
clearing a flag on a Message object 22 Product behavior 37
flagging a Message object 19 Properties Shared with the Reminder Settings
post-transmit processing of a flagged message 23 Protocol message 17
40 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018
Properties shared with the ReminderSettings Protocol Triggered events - client
PidTagReplyTime property 18 clearing a flag on a Message object 22
Properties shared with the Task-Related Object flagging a Message object 19
Protocol post-transmit processing of a flagged message 23
PidLidPercentComplete property 17 Triggered events - higher-layer
PidLidTaskComplete property 17 server 24
PidLidTaskStatus property 17
Properties Shared with the Task-Related Object V
Protocol message 16
Properties specific to the Informational Flagging Vendor-extensible fields 9
Protocol Versioning 9
PidLidFlagRequest property 14
PidLidFlagString property 14
PidLidToDoOrdinalDate property 16
PidLidToDoSubOrdinal property 16
PidLidToDoTitle property 15
PidLidValidFlagStringProof property 15
PidTagFlagCompleteTime property 11
PidTagFlagStatus property 10
PidTagFollowupIcon property 10
PidTagReplyRequested property 11
PidTagResponseRequested property 11
PidTagSwappedToDoData property 12
PidTagSwappedToDoStore property 14
PidTagToDoItemFlags property 11
References 8
informative 8
normative 8
Relationship to other protocols 9
Security
implementer considerations 36
parameter index 36
Sequencing rules
client 23
server 24
Server
abstract data model 24
higher-layer triggered events 24
initialization 24
message processing 24
other local events 25
overview 24
sequencing rules 24
timer events 25
timers 24
Standards assignments 9
Syntax 10
41 / 41
[MS-OXOFLAG] - v20181001
Informational Flagging Protocol
Copyright © 2018 Microsoft Corporation
Release: October 1, 2018