2.2.3.1.1.1.1 RopFastTransferSourceCopyTo ROP Request Buffer

The following descriptions define valid fields for the request buffer of the RopFastTransferSourceCopyTo ROP ([MS-OXCROPS] section 2.2.12.7).

InputServerObject: The value of this field MUST be either an Attachment object, Message object, or Folder object.

Level (1 byte): An unsigned 8-bit integer that indicates whether descendant subobjects are copied. Set to 0x00 to copy descendant subobjects. Set to nonzero to exclude all descendant subobjects from being copied. A nonzero value can only be passed if the InputServerObject field is a Message object or Folder object. The Level field MUST be ignored and treated as if it is set to 0x00 if the InputServerObject field is an Attachment object.

CopyFlags (4 byte): A 32-bit flags structure. This structure defines the parameters of the FastTransfer download operation.

The following table defines valid flags for the CopyFlags field.

Flag name

Value

Description

Move

0x00000001

This flag MUST only be passed if the value of the InputServerObject field is a Folder object or a Message object.

If this flag is set, the FastTransfer operation is being configured as a logical part of a larger object move operation, as opposed to a copy operation, and the client will issue further operations such as deleting the moved messages from the source.

If this flag is not set, the FastTransfer operation is not being configured as a logical part of a larger object move operation. For more details, see section 3.2.5.8.1.1.

Unused1

0x00000002

This flag MUST be ignored on receipt.

Unused2

0x00000004

This flag MUST be ignored on receipt.

Unused3

0x00000008

This flag MUST be ignored on receipt.

Unused4

0x00000200

This flag MUST be ignored on receipt.

Unused5

0x00000400

This flag MUST be ignored on receipt.

BestBody

0x00002000

This flag MUST only be passed if the value of the InputServerObject field is a Message object. For more details, see section 3.2.5.8.1.1. Best body logic is specified in [MS-OXBBODY].<3>

SendOptions (1 byte): An 8-bit flag structure. This field defines the data representation parameters of the download operation.

The following table defines valid flags for the SendOptions field.

Flag name

Value

Description

Unicode

0x01

This flag indicates whether string properties are output in Unicode or in the code page set on the current connection. For details about the Unicode and ForceUnicode flags, and relationship between the two, see section 3.2.5.8.1.1.

When used with the RopSynchronizationConfigure ROP (section 2.2.3.2.1.1.1), the value of this flag MUST match the value of the Unicode flag of the SynchronizationFlags field, as specified in section 2.2.3.2.1.1.1.

UseCpid

0x02

This flag indicates support for code page property types, as specified in section 2.2.4.1.1.1.

This flag MUST be set for server-to-client-to-server uploads only. For more details about server-to-client-to-server uploads, see section 3.3.4.2.1.

If this flag is set, the Unicode flag MUST also be set.

ForUpload

0x03

This flag is the combination of the Unicode and UseCpid flags.

This flag indicates that the client is requesting the FastTransfer stream for immediate upload to another destination server.

This flag MUST be set for server-to-client-to-server uploads only. For more details about server-to-client-to-server uploads, see section 3.3.4.2.1.

The ROP that uses this flag MUST be followed by the RopTellVersion ROP. For details about how this affects behaviors of servers and clients, see section 3.3.4.2.1.

RecoverMode

0x04

If this flag is set, it indicates that the client supports recovery mode. For more details about server behavior when this flag is set, see section 3.2.5.8.1.1.

If this flag is not set, it indicates that the client does not support recovery mode.

This flag MUST NOT be set when the ForUpload flag is set.

ForceUnicode

0x08

This flag indicates whether string properties are output in Unicode. For details about the Unicode and ForceUnicode flags, and relationship between the two, see section 3.2.5.8.1.1.

PartialItem

0x10

This flag MUST only be set for content synchronization download operations.

This flag SHOULD<4> be set if the client supports partial item downloads.

Reserved1

0x20

This flag MUST be set to 0 when sent and MUST be ignored when received.

Reserved2

0x40

This flag MUST be set to 0 when sent and MUST be ignored when received.

PropertyTagCount (2 bytes): An unsigned 16-bit integer. This value specifies the number of structures in the PropertyTags field. If the value of the PropertyTagCount field is set to 0x0000, the PropertyTags field contains an empty array.

PropertyTags (variable): An array of PropertyTag structures ([MS-OXCDATA] section 2.9). Specifies properties and subobjects, as specified in section 2.2.1.7, to be excluded when copying a messaging object pointed to by the InputServerObject field. This field does not determine what properties and subobjects the server copies for descendant subobjects of the InputServerObject field. For more details about the effect of property and subobject filters on download operations, see section 3.2.5.10.

Remarks:

If, for example, the InputServerObject field contains a folder that was opened to show soft deleted messages (such as the Deleted Items folder), the scope of an operation that this ROP initiates only includes soft deleted messages. Otherwise, only normal, nondeleted messages are included. This applies to all valid values of the Level field.