3.2.5.5 Receiving a RopModifyRecipients ROP Request

When processing the RopModifyRecipients ROP ([MS-OXCROPS] section 2.2.6.5), for each recipient (2) provided, the server locates its representation of the recipient (2) based on the value of the RowId field within the RecipientRows field. If the recipient (2) indicated by the value of the RowId field does not exist, the server creates a new recipient (2) with that RowId field value and applies the data from the request.

If the recipient (2) currently exists on the Message object and the value of RecipientRowSize field in the request buffer is nonzero, the server replaces all existing properties of the recipient (2) with the property values supplied in the request. If the value of the RecipientRowSize field in the ModifyRecipientRow structure within the RecipientRows field of the request buffer is 0x0000, then the server deletes the recipient (2) from the Message object.

Until the server receives a RopSaveChangesMessage ROP request ([MS-OXCROPS] section 2.2.6.3) from the client, the server adheres to the following:

  • If a recipient (2) was deleted, its RowId field and associated data MUST NOT be returned as part of any subsequent handling of ROPs for the opened Message object.

  • Any changes made to the recipients (2) MUST be included in the response buffer for any subsequent ROP requests that apply to recipients (2) for the same Message object handle.

  • The changes made to the recipients (2) MUST NOT be included in the response buffer returned for ROP requests that apply to recipients (2) on different Message object handles.

The following specific error code applies to this ROP.

Error code name

Value

Meaning

ecNullObject

0x000004B9

The value of the InputHandleIndex field on which this ROP was called does not refer to a Message object.