The ReceiveByLookupIdAllowPeek method is received by the server in an RPC_REQUEST packet. In response, the server retrieves the Message from the referenced queue's MessagePositionList for which the Message.LookupIdentifier property equals the lookup identifier and removes it. If the receive is transactional, the message remains visible to peek operations.

 HRESULT ReceiveByLookupIdAllowPeek(
   [in] VARIANT LookupId,
   [in, optional] VARIANT* Transaction,
   [in, optional] VARIANT* WantDestinationQueue,
   [in, optional] VARIANT* WantBody,
   [in, optional] VARIANT* WantConnectorType,
   [out, retval] IMSMQMessage4** ppmsg
 );

LookupId: A VARIANT (VT_UI8) that contains a value that represents a position in the MessagePositionList of the referenced queue as described by the Message.LookupIdentifier.

Transaction: A pointer to a VARIANT that MUST contain either of the following:

WantDestinationQueue: A pointer to a VARIANT (VT_BOOL).

If this parameter is not specified by the client, the server MUST use the default value VARIANT_FALSE (0x0000) in place of the unspecified value.

Value

Meaning

VARIANT_TRUE

0xFFFF

The server MUST return an MSMQMessage object that has the DestinationQueueInfo property set.

VARIANT_FALSE

0x0000

Default. The server MUST return an MSMQMessage object that does not have the DestinationQueueInfo property set.

WantBody: A pointer to a VARIANT (VT_BOOL).

If this parameter is not specified by the client, the server MUST use the default value VARIANT_TRUE (0xFFFF) in place of the unspecified value.

Value

Meaning

VARIANT_TRUE

0xFFFF

Default. The server MUST return an MSMQMessage object that has the Body property set.

VARIANT_FALSE

0x0000

The server MUST return an MSMQMessage object that does not have the Body property set.

WantConnectorType: A pointer to a VARIANT (VT_BOOL).

If this parameter is not specified by the client, the server MUST use the default value VARIANT_FALSE (0x0000) in place of the unspecified value.

Value

Meaning

VARIANT_TRUE

0xFFFF

The server MUST return an MSMQMessage object that has the ConnectorTypeGuid property set.

VARIANT_FALSE

0x0000

Default. The server MUST return an MSMQMessage object that does not have the ConnectorTypeGuid property set.

ppmsg: A pointer to a pointer to an IMSMQMessage4 interface that MUST be set by the server with the received message.

Return Values: The method MUST return S_OK (0x00000000) on success or an implementation-specific error HRESULT on failure.

When processing this call, the server MUST follow these guidelines: