3.3.4.1.7 IsLocal (Opnum 13)

The IsLocal method is received by the server in an RPC_REQUEST packet. In response, the server MUST return a BOOLEAN value that indicates whether the represented Queue is an OutgoingQueue (False) or not (True).

 [propget] HRESULT IsLocal(
   [out, retval] VARIANT_BOOL* pfIsLocal
 );

pfIsLocal: A pointer to a VARIANT_BOOL that, when successfully completed, contains VARIANT_FALSE (0x0000) or VARIANT_TRUE (0xffff) values, depending on whether the represented Queue is an OutgoingQueue.

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.

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

    • iPropID = PROPID_MGMT_QUEUE_LOCATION

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

  • Else:

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

      • The pfIsLocal output variable MUST be set to True, and the server MUST take no further action.

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

      • The pfIsLocal output variable MUST be set to False, and the server MUST take no further action.

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

      • The pfIsLocal output variable MUST be set to True, and the server MUST take no further action.