6 Appendix A: Full IDL
For ease of implementation, the full IDL is provided below, where "ms-dtyp.idl" refers to the IDL found in [MS-DTYP] Appendix A (section 5), and "ms-mqmq.idl" refers to the IDL found in [MS-MQMQ] Appendix A (section 5). The syntax uses the IDL syntax extensions defined in [MS-RPCE] sections 2.2.4 and 3.1.1.5.1. For example, as noted in [MS-RPCE] section 2.2.4.9, a pointer_default declaration is not required, and pointer_default(unique) is assumed.
-
import "ms-dtyp.idl"; import "ms-mqmq.idl"; [ uuid(41208ee0-e970-11d1-9b9e-00e02c064c39), version(1.0), pointer_default(unique) ] interface qmmgmt { typedef enum __MgmtObjectType { MGMT_MACHINE = 1, MGMT_QUEUE = 2, MGMT_SESSION = 3, } MgmtObjectType; typedef struct _MGMT_OBJECT { MgmtObjectType type; [switch_is(type)] union { [case(MGMT_QUEUE)] QUEUE_FORMAT* pQueueFormat; [case(MGMT_MACHINE)] DWORD Reserved1; [case(MGMT_SESSION)] DWORD Reserved2; }; } MGMT_OBJECT; /*=================================================================== QM Management functions ===================================================================*/ HRESULT R_QMMgmtGetInfo( [in] handle_t hBind, [in] const MGMT_OBJECT* pObjectFormat, [in, range(1,128)] DWORD cp, [in, size_is (cp)] ULONG aProp[], [in, out, size_is(cp)] PROPVARIANT apVar[] ); HRESULT R_QMMgmtAction( [in] handle_t hBind, [in] const MGMT_OBJECT* pObjectFormat, [in] const wchar_t * lpwszAction ); }