4.1 Sending a Task Request
Mary Kay Andersen assigns a task to her coworker, Paul West. The following is a description of what a client might do to accomplish Mary's intentions.
The client begins by obtaining property IDs from the server, as described in section 4. The property types specified in the following tables are described in [MS-OXCDATA] section 2.11.1.
To create the task request, the client uses the RopCreateMessage ROP ([MS-OXCROPS] section 2.2.6.2). The server returns a success code and a handle to a Message object. The client uses the RopSetProperties ROP ([MS-OXCROPS] section 2.2.8.6) to transmit Mary's data to the server.
Property |
Property ID |
Type |
Value |
---|---|---|---|
PidTagMessageClass (section 2.2.3.3.1) |
0x001A |
0x001F (PtypString) |
"IPM.TaskRequest" |
PidTagIconIndex (section 2.2.3.3.2) |
0x1080 |
0x0003 (PtypInteger32) |
0xFFFFFFFF |
PidLidTaskMode (section 2.2.2.2.1) |
0x8212 |
0x0003 (PtypInteger32) |
0x00000001 |
The client provides the actual Task object in an Embedded Message object. The protocol creates an Attachment object into which it will embed the Task object by using the RopCreateAttachment ROP ([MS-OXCROPS] section 2.2.6.13), which returns a handle to the new Attachment object. The client then uses this handle with the RopSetProperties ROP to set the PidTagAttachMethod property ([MS-OXPROPS] section 2.601) to afEmbeddedMessage (0x00000005).
Property |
Property ID |
Type |
Value |
---|---|---|---|
PidTagAttachMethod ([MS-OXCMSG] section 2.2.2.9) |
0x3705 |
0x0003 (PtypInteger32) |
0x00000005 (afEmbeddedMessage) |
PidTagRenderingPosition ([MS-OXCMSG] section 2.2.2.16) |
0x370B |
0x0003 (PtypInteger32) |
0xFFFFFFFF |
PidTagAttachmentHidden ([MS-OXCMSG] section 2.2.2.24) |
0x7FFE |
0x000B (PtypBoolean) |
0x01 |
The client acquires the handle to the Embedded Message object within the Attachment object by using the RopOpenEmbeddedMessage ROP ([MS-OXCROPS] section 2.2.6.16), which can be used as a Task object. The client sets the properties that it wants for this Task object or copies them from a local Task object by using the RopSetProperties ROP.
Property |
Property ID |
Type |
Value |
---|---|---|---|
PidTagMessageClass |
0x001A |
0x001F (PtypString) |
"IPM.Task" |
PidTagIconIndex |
0x1080 |
0x0003 (PtypInteger32) |
0x00000503 (assigner's task) |
PidLidTaskComplete (section 2.2.2.2.20) |
0x8149 |
0x000B (PtypBoolean) |
0x00 |
PidLidPercentComplete (section 2.2.2.2.3) |
0x8147 |
0x0005 (PtypFloating64) |
0.0 |
PidLidTaskStatus (section 2.2.2.2.2) |
0x8146 |
0x0003 (PtypInteger32) |
0 (Not started) |
PidLidTaskActualEffort (section 2.2.2.2.11) |
0x814D |
0x0003 (PtypInteger32) |
0 |
PidLidTaskEstimatedEffort (section 2.2.2.2.12) |
0x814E |
0x0003 (PtypInteger32) |
0 |
PidLidTaskUpdates (section 2.2.2.2.19) |
0x82C3 |
0x000B (PtypBoolean) |
0x01 |
PidLidTaskStatusOnComplete (section 2.2.2.2.17) |
0x82C4 |
0x000B (PtypBoolean) |
0x01 |
PidLidTaskFFixOffline (section 2.2.2.2.31) |
0x8156 |
0x000B (PtypBoolean) |
0x00 |
PidLidTaskOwnership (section 2.2.2.2.29) |
0x8154 |
0x0003 (PtypInteger32) |
1 (assigner's copy) |
PidLidTaskAcceptanceState (section 2.2.2.2.30) |
0x8151 |
0x0003 (PtypInteger32) |
1 (unknown) |
PidLidTaskState (section 2.2.2.2.14) |
0x8148 |
0x0003 (PtypInteger32) |
3 (assigner's copy) |
PidLidTaskOrdinal (section 2.2.2.2.26) |
0x815D |
0x0003 (PtypInteger32) |
-1000 |
PidLidTaskHistory (section 2.2.2.2.18) |
0x8150 |
0x0003 (PtypInteger32) |
0x00000005 (sent with a task request) |
PidLidTaskLastUpdate (section 2.2.2.2.10) |
0x8153 |
0x0040 (PtypTime) |
2008/02/19 07:00 |
PidLidTaskLastUser (section 2.2.2.2.25) |
0x8152 |
0x001F (PtypString) |
"Mary Kay Andersen" |
PidLidTaskLastDelegate (section 2.2.2.2.27) |
0x82C5 |
0x001F (PtypString) |
"Mary Kay Andersen" |
PidLidTaskVersion (section 2.2.2.2.13) |
0x8158 |
0x0003 (PtypInteger32) |
2 |
PidLidTaskOwner (section 2.2.2.2.22) |
0x801B |
0x001F (PtypString) |
"Paul West" |
PidLidTaskFRecurring (section 2.2.2.2.28) |
0x814B |
0x000B (PtypBoolean) |
0x00 |
PidLidTaskMode (section 2.2.3.2) |
0x8212 |
0x0003 (PtypInteger32) |
1 (embedded in a task request) |
PidLidTaskGlobalId (section 2.2.2.2.32) |
0x8211 |
0x0102 (PtypBinary) |
0E B0 1E 03 85 02 EF 4B 9A 14 50 83 B3 BB 4D E9 |
The client then sets other Attachment object properties, as described in [MS-OXCMSG].
The client saves and closes the Embedded Message object by using, in order, the following operations: RopSaveChangesMessage ([MS-OXCROPS] section 2.2.6.3) with the handle to the embedded Task object, RopSaveChangesAttachment ([MS-OXCROPS] section 2.2.6.15) with the handle to the Attachment object, RopRelease ([MS-OXCROPS] section 2.2.15.3) with the handle to the embedded Task object, and RopRelease with the handle to the Attachment object.
The client uses the RopModifyRecipients ROP ([MS-OXCROPS] section 2.2.6.5) to add Paul's recipient information to the task request.
When Mary is ready to send her task request, the client uses the RopSetProperties ROP to commit the properties to the server, the RopSubmitMessage ROP ([MS-OXCROPS] section 2.2.7.1) to send it, and then the RopRelease ROP to release the task request object.