3.2.5.4 Processing RopSetProperties

When the server receives a RopSetProperties ROP request buffer ([MS-OXCROPS] section 2.2.8.6) from the client, the server parses the buffer. The server responds with a RopSetProperties ROP response buffer. For details about how the server parses buffers and processes ROPs, see [MS-OXCROPS] section 3.2.5.1. For details about how the server formats buffers for the response, see [MS-OXCROPS] section 3.2.5.2.

The server MUST modify the value of each client-writeable property specified in the PropertyValues field of the ROP request buffer. If the server fails to modify any client-writeable property, that property, along with details of the failure, is specified in a PropertyProblem structure ([MS-OXCDATA] section 2.7) that is contained in the PropertyProblems field of the ROP response buffer. If the PropertyValues field of the ROP request buffer includes any property that is read-only for the client, the server can respond to the client as follows, but the server MUST NOT set the property to the client-specified value:

  • Include a PropertyProblem structure for the read-only property in the PropertyProblems field of the response.

  • Fail the RopSaveChangesMessage ROP request ([MS-OXCROPS] section 2.2.6.3) when the client attempts to commit the property setting on a Message object.

  • Fail either the RopSaveChangesMessage ROP request or the RopSaveChangesAttachment ROP request ([MS-OXCROPS] section 2.2.6.15) when the client attempts to commit the property setting on an Attachment object.

  • Disregard the read-only property. In this case, the server gives no indication that the client's request to modify the read-only property failed.

For Message objects, the new value of the properties MUST be made available immediately for retrieval by a ROP that uses  the same Message object handle. For example, if the client uses the same object handle in a RopGetPropertiesAll ROP request ([MS-OXCROPS] section 2.2.8.4) to read those same properties, the modified value MUST be returned. However, the modified value MUST NOT be persisted to the database until a successful RopSaveChangesMessage ROP is issued.

For Attachment objects, the new value of the properties MUST be made available immediately for retrieval by a ROP that uses the same Attachment object handle. However, the modified value MUST NOT be persisted to the database until a successful RopSaveChangesAttachment ROP followed by a successful RopSaveChangesMessage ROP is issued.

For Folder objects and Logon objects, the new value of the properties MUST be persisted immediately without requiring another ROP to commit it.

Show: