3.3.4.1 Downloading Messaging Objects Using FastTransfer

Clients can efficiently download copies of specified folders, messages or attachments using the binary format known as a FastTransfer stream. The following steps MUST be taken by a client to download copies of these messaging objects from the server using FastTransfer ROPs and FastTransfer streams:

  1. Obtain a handle to a messaging object whose contents are requested, or obtain a handle to a messaging object that the client will download a copy of. To obtain the handle of a new messaging object, use the OutputHandleIndex field from the RopCreateMessage ROP ([MS-OXCROPS] section 2.2.6.2) response buffer. For more details about obtaining a handle to an existing messaging object, see [MS-OXCMSG] section 3.1.4.1.

  2. Send the RopFastTransferSourceCopy* ROP request to create the FastTransfer download context on the server and define the parameters and the scope of the operation. The RopFastTransferSourceCopy* ROPs are specified in section 2.2.3.1.1.

  3. Optionally, send a RopTellVersion ROP (section 2.2.3.1.1.6) request, if performing a server-to-client-to-server upload, as specified in section 3.3.4.2.1. Additional details about sending a RopTellVersion ROP request are specified in section 3.3.5.7.2.

  4. Iteratively send RopFastTransferSourceGetBuffer ROP (section 2.2.3.1.1.5) requests on the FastTransfer context to retrieve the FastTransfer stream with serialized messaging objects. Additional details about sending a RopFastTransferSourceGetBuffer ROP request are specified in section 3.3.5.7.1.

  5. Send a RopRelease ROP ([MS-OXCROPS] section 2.2.15.3) request to release the messaging object and FastTransfer context obtained in steps 1 and 2.