3.3.4.1.6 QueueType (Opnum 12)

The QueueType method is received by the server in an RPC_REQUEST packet. In response, the server MUST return the type of the referenced Queue.

 [propget] HRESULT QueueType(
   [out, retval] long* plQueueType
 );

plQueueType: A pointer to a long that corresponds to the QUEUE_TYPE enumeration as defined in the following table.

Value

Meaning

MQ_TYPE_PUBLIC

0x00000000

The represented Queue.QueueType equals Public.

MQ_TYPE_PRIVATE

0x00000001

The represented Queue.QueueType equals Private.

MQ_TYPE_MACHINE

0x00000002

The represented Queue.QueueType equals System.

MQ_TYPE_CONNECTOR

0x00000003

The represented Queue.QueueType equals Connector.

MQ_TYPE_MULTICAST

0x00000004

The represented Queue is an OutgoingQueue with the OutgoingQueue.DestinationFormatName specifying a multicast address.

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

When the server processes this call, it MUST follow these guidelines:

  • If the ObjectIsInitialized instance variable is False:

    • The server MUST return MQ_ERROR_UNINITIALIZED_OBJECT (0xC00E0094), and MUST take no further action.

  • Else:

    • The server MUST generate a QMMgmt Get Info event with the following inputs:

      • iPropID = PROPID_MGMT_QUEUE_TYPE

    • If the rStatus return value is not equal to MQ_OK (0x00000000), the server MUST return rStatus and MUST take no further action.

    • If the value of the returned rPropVar was "PUBLIC":

      • The plQueueType output variable MUST be set to MQ_TYPE_PUBLIC, and the server MUST return S_OK (0x00000000) and MUST take no further action.

    • If the value of the returned was "PRIVATE":

      • The plQueueType output variable MUST be set to MQ_TYPE_PRIVATE, and the server MUST return S_OK (0x00000000) and MUST take no further action.

    • If the value of the returned was "MACHINE":

      • The plQueueType output variable MUST be set to MQ_TYPE_MACHINE, and the server MUST return S_OK (0x00000000) and MUST take no further action.

    • If the value of the returned was "CONNECTOR":

      • The plQueueType output variable MUST be set to MGMT_TYPE_CONNECTOR, and the server MUST return S_OK (0x00000000) and MUST take no further action.

    • If the value of the returned was "MULTICAST":

      • The plQueueType output variable MUST be set to MQ_TYPE_MULTICAST, and the server MUST return S_OK (0x00000000) and MUST take no further action.