The R_QMCreateRemoteCursor method creates a cursor at the server for use during remote read.

 HRESULT R_QMCreateRemoteCursor(
   [in] handle_t hBind,
   [in] struct CACTransferBufferV1* ptb1,
   [in] DWORD hQueue,
   [out] DWORD* phCursor
 );

hBind:  MUST be set to an RPC binding handle, as specified in [MS-RPCE] section 2.

ptb1:  MUST be ignored. Clients SHOULD pass NULL.<29>

hQueue: A DWORD that contains the value of the Handle attribute of an OpenQueueDescriptor ([MS-MQDMPR] section 3.1.1.16) ADM element instance. The client obtains this value from either the pcc.srv_hACQueue out-parameter of rpc_ACCreateCursorEx or the phQueue out-parameter of R_QMOpenRemoteQueue.

phCursor: A pointer to a DWORD to receive the value of the Handle attribute of the Cursor ([MS-MQDMPR] section 3.2) ADM element instance that references the created cursor. It MUST NOT be NULL on input.

Return Values:  On success, this method MUST return MQ_OK (0x00000000); otherwise, the server MUST return a failure HRESULT, and the client MUST treat all failure HRESULTs identically. Additionally, if a failure HRESULT is returned, the client MUST disregard all out-parameter values.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE].

This method is invoked at the dynamically assigned endpoint returned by the R_QMGetRTQMServerPort method when IP_HANDSHAKE (0x00000000) or IPX_HANDSHAKE (0x00000002) is the interface specified by the fIP parameter.

When processing this call, the server MUST: