3.2.5.1 Receiving a RopOpenMessage ROP Request

The Message object returned by the RopOpenMessage ROP ([MS-OXCROPS] section 2.2.6.1) is used in subsequent ROPs, such as a RopGetPropertiesSpecific ROP request ([MS-OXCROPS] section 2.2.8.3). For information about which ROPs operate on Message objects, see the specific ROPs in [MS-OXCROPS].

When the server receives multiple requests to open the same Message object, it returns a different handle and maintains a separate transaction for each.

A RopOpenMessage ROP MUST NOT succeed if a Message object with the specified ID does not exist or if the client has insufficient access rights to the folder in which the Message object is stored.

If the OpenModeFlag field includes the OpenSoftDeleted flag, the RopOpenMessage ROP provides access to all Message objects, including soft deleted Message objects. If the OpenSoftDeleted flag is not included, the server MUST NOT provide access to soft deleted Message objects.

The response field RecipientCount indicates the current number of recipients (2) in the message. In addition, the server returns data for as many recipients (2) as will fit in the response buffer, in the order of the value of the RowId field. The data for each recipient (2) is encoded as an OpenRecipientRow structure in the RecipientRows field. The response field RowCount indicates how many recipients (2) are present in the RecipientRows field.

If a server does not recognize a message class, it reverts to acting on all but the last group, recursively, until a recognized form remains.

The following specific error codes apply to this ROP.

Error code name

Value

Meaning

ecNotFound

0x8004010F

The MID ([MS-OXCDATA] section 2.2.1.2) does not correspond to a message in the database.

The folder corresponding to the FID ([MS-OXCDATA] section 2.2.1.1) entered in the ROP request buffer does not contain a message with the entered MID.

The message is soft deleted and the client has not specified the OpenSoftDeleted flag as part of the OpenModeFlag field.

ecNullObject

0x000004b9

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

ecAccessDenied

0x80070005

The user does not have rights to open the message.