/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: MSMQ */

#ifndef _MSMQ_H_
#define _MSMQ_H_

DEFINE_GUID(LIBID_MSMQ,0xD7D6E071L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif

typedef unsigned char BYTE;

typedef unsigned long ULONG;

typedef unsigned long DWORD;

typedef int BOOL;

interface IMSMQQuery;

interface IMSMQQueueInfo;

interface IMSMQQueue;

interface IMSMQMessage;

interface IMSMQQueueInfos;

interface IMSMQEvent;

interface IMSMQTransaction;

interface IMSMQCoordinatedTransactionDispenser;

interface IMSMQTransactionDispenser;

typedef enum _MQCALG {
    MQMSG_CALG_MD2 = 32769,
    MQMSG_CALG_MD4 = 32770,
    MQMSG_CALG_MD5 = 32771,
    MQMSG_CALG_SHA = 32772,
    MQMSG_CALG_MAC = 32773,
    MQMSG_CALG_RSA_SIGN = 9216,
    MQMSG_CALG_DSS_SIGN = 8704,
    MQMSG_CALG_RSA_KEYX = 41984,
    MQMSG_CALG_DES = 26113,
    MQMSG_CALG_RC2 = 26114,
    MQMSG_CALG_RC4 = 26625,
    MQMSG_CALG_SEAL = 26626
} MQCALG;

typedef enum _MQTRANSACTION {
    MQ_NO_TRANSACTION = 0,
    MQ_MTS_TRANSACTION = 1,
    MQ_XA_TRANSACTION = 2,
    MQ_SINGLE_MESSAGE = 3
} MQTRANSACTION;

typedef enum _RELOPS {
    REL_NOP = 0,
    REL_EQ,
    REL_NEQ,
    REL_LT,
    REL_GT,
    REL_LE,
    REL_GE
} RELOPS;

typedef enum _MQMSGCURSOR {
    MQMSG_FIRST = 0,
    MQMSG_CURRENT = 1,
    MQMSG_NEXT = 2
} MQMSGCURSOR;

typedef enum _MQMSGCLASS {
    MQMSG_CLASS_NORMAL = 0,
    MQMSG_CLASS_REPORT = 1,
    MQMSG_CLASS_ACK_REACH_QUEUE = 2,
    MQMSG_CLASS_ACK_RECEIVE = 16384,
    MQMSG_CLASS_NACK_BAD_DST_Q = 32768,
    MQMSG_CLASS_NACK_PURGED = 32769,
    MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT = 32770,
    MQMSG_CLASS_NACK_Q_EXCEED_QUOTA = 32771,
    MQMSG_CLASS_NACK_ACCESS_DENIED = 32772,
    MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED = 32773,
    MQMSG_CLASS_NACK_BAD_SIGNATURE = 32774,
    MQMSG_CLASS_NACK_BAD_ENCRYPTION = 32775,
    MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT = 32776,
    MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q = 32777,
    MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG = 32778,
    MQMSG_CLASS_NACK_Q_DELETED = 49152,
    MQMSG_CLASS_NACK_Q_PURGED = 49153,
    MQMSG_CLASS_NACK_RECEIVE_TIMEOUT = 49154
} MQMSGCLASS;

typedef enum _MQMSGDELIVERY {
    MQMSG_DELIVERY_EXPRESS = 0,
    MQMSG_DELIVERY_RECOVERABLE = 1
} MQMSGDELIVERY;

typedef enum _MQMSGACKNOWLEDGEMENT {
    MQMSG_ACKNOWLEDGMENT_NONE = 0,
    MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL = 1,
    MQMSG_ACKNOWLEDGMENT_POS_RECEIVE = 2,
    MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL = 4,
    MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE = 8,
    MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE = 4,
    MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE = 5,
    MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE = 12,
    MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE = 14
} MQMSGACKNOWLEDGEMENT;

typedef enum _MQMSGJOURNAL {
    MQMSG_JOURNAL_NONE = 0,
    MQMSG_DEADLETTER = 1,
    MQMSG_JOURNAL = 2
} MQMSGJOURNAL;

typedef enum _MQMSGTRACE {
    MQMSG_TRACE_NONE = 0,
    MQMSG_SEND_ROUTE_TO_REPORT_QUEUE = 1
} MQMSGTRACE;

typedef enum _MQMSGSENDERIDTYPE {
    MQMSG_SENDERID_TYPE_NONE = 0,
    MQMSG_SENDERID_TYPE_SID = 1
} MQMSGSENDERIDTYPE;

typedef enum _MQMSGPRIVLEVEL {
    MQMSG_PRIV_LEVEL_NONE = 0,
    MQMSG_PRIV_LEVEL_BODY = 1
} MQMSGPRIVLEVEL;

typedef enum _MQMSGAUTHLEVEL {
    MQMSG_AUTH_LEVEL_NONE = 0,
    MQMSG_AUTH_LEVEL_ALWAYS = 1
} MQMSGAUTHLEVEL;

typedef enum _MQMSGIDSIZE {
    MQMSG_MSGID_SIZE = 20,
    MQMSG_CORRELATIONID_SIZE = 20
} MQMSGIDSIZE;

typedef enum _MQMSGMAX {
    MQ_MAX_MSG_LABEL_LEN = 249
} MQMSGMAX;

typedef enum _MQSHARE {
    MQ_DENY_NONE = 0,
    MQ_DENY_RECEIVE_SHARE = 1
} MQSHARE;

typedef enum _MQACCESS {
    MQ_RECEIVE_ACCESS = 1,
    MQ_SEND_ACCESS = 2,
    MQ_PEEK_ACCESS = 32
} MQACCESS;

typedef enum _MQJOURNAL {
    MQ_JOURNAL_NONE = 0,
    MQ_JOURNAL = 1
} MQJOURNAL;

typedef enum _MQTRANSACTIONAL {
    MQ_TRANSACTIONAL_NONE = 0,
    MQ_TRANSACTIONAL = 1
} MQTRANSACTIONAL;

typedef enum _MQAUTHENTICATE {
    MQ_AUTHENTICATE_NONE = 0,
    MQ_AUTHENTICATE = 1
} MQAUTHENTICATE;

typedef enum _MQPRIVLEVEL {
    MQ_PRIV_LEVEL_NONE = 0,
    MQ_PRIV_LEVEL_OPTIONAL = 1,
    MQ_PRIV_LEVEL_BODY = 2
} MQPRIVLEVEL;

typedef enum _MQPRIORITY {
    MQ_MIN_PRIORITY = 0,
    MQ_MAX_PRIORITY = 7
} MQPRIORITY;

typedef enum _MQMAX {
    MQ_MAX_Q_NAME_LEN = 124,
    MQ_MAX_Q_LABEL_LEN = 124
} MQMAX;

typedef enum _MQDEFAULT {
    DEFAULT_M_PRIORITY = 3,
    DEFAULT_M_DELIVERY = 0,
    DEFAULT_M_ACKNOWLEDGE = 0,
    DEFAULT_M_JOURNAL = 0,
    DEFAULT_M_APPSPECIFIC = 0,
    DEFAULT_M_PRIV_LEVEL = 0,
    DEFAULT_M_AUTH_LEVEL = 0,
    DEFAULT_M_SENDERID_TYPE = 1,
    DEFAULT_Q_JOURNAL = 0,
    DEFAULT_Q_BASEPRIORITY = 0,
    DEFAULT_Q_QUOTA = -1,
    DEFAULT_Q_JOURNAL_QUOTA = -1,
    DEFAULT_Q_TRANSACTION = 0,
    DEFAULT_Q_AUTHENTICATE = 0,
    DEFAULT_Q_PRIV_LEVEL = 1
} MQDEFAULT;

typedef enum _MQERROR {
    MQ_ERROR = -1072824319,
    MQ_ERROR_PROPERTY = -1072824318,
    MQ_ERROR_QUEUE_NOT_FOUND = -1072824317,
    MQ_ERROR_QUEUE_EXISTS = -1072824315,
    MQ_ERROR_INVALID_PARAMETER = -1072824314,
    MQ_ERROR_INVALID_HANDLE = -1072824313,
    MQ_ERROR_OPERATION_CANCELLED = -1072824312,
    MQ_ERROR_SHARING_VIOLATION = -1072824311,
    MQ_ERROR_SERVICE_NOT_AVAILABLE = -1072824309,
    MQ_ERROR_MACHINE_NOT_FOUND = -1072824307,
    MQ_ERROR_ILLEGAL_SORT = -1072824304,
    MQ_ERROR_ILLEGAL_USER = -1072824303,
    MQ_ERROR_UNSUPPORTED_DBMS = -1072824302,
    MQ_ERROR_NO_DS = -1072824301,
    MQ_ERROR_ILLEGAL_QUEUE_PATHNAME = -1072824300,
    MQ_ERROR_ILLEGAL_PROPERTY_VALUE = -1072824296,
    MQ_ERROR_ILLEGAL_PROPERTY_VT = -1072824295,
    MQ_ERROR_BUFFER_OVERFLOW = -1072824294,
    MQ_ERROR_IO_TIMEOUT = -1072824293,
    MQ_ERROR_ILLEGAL_CURSOR_ACTION = -1072824292,
    MQ_ERROR_MESSAGE_ALREADY_RECEIVED = -1072824291,
    MQ_ERROR_ILLEGAL_FORMATNAME = -1072824290,
    MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL = -1072824289,
    MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION = -1072824288,
    MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR = -1072824287,
    MQ_ERROR_SENDERID_BUFFER_TOO_SMALL = -1072824286,
    MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL = -1072824285,
    MQ_ERROR_CANNOT_IMPERSONATE_CLIENT = -1072824284,
    MQ_ERROR_ACCESS_DENIED = -1072824283,
    MQ_ERROR_PRIVILEGE_NOT_HELD = -1072824282,
    MQ_ERROR_INSUFFICIENT_RESOURCES = -1072824281,
    MQ_ERROR_USER_BUFFER_TOO_SMALL = -1072824280,
    MQ_ERROR_MESSAGE_STORAGE_FAILED = -1072824278,
    MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL = -1072824277,
    MQ_ERROR_INVALID_CERTIFICATE = -1072824276,
    MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE = -1072824275,
    MQ_ERROR_INTERNAL_USER_CERT_EXIST = -1072824274,
    MQ_ERROR_NO_INTERNAL_USER_CERT = -1072824273,
    MQ_ERROR_CORRUPTED_SECURITY_DATA = -1072824272,
    MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE = -1072824271,
    MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION = -1072824269,
    MQ_ERROR_BAD_SECURITY_CONTEXT = -1072824267,
    MQ_ERROR_COULD_NOT_GET_USER_SID = -1072824266,
    MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO = -1072824265,
    MQ_ERROR_ILLEGAL_MQCOLUMNS = -1072824264,
    MQ_ERROR_ILLEGAL_PROPID = -1072824263,
    MQ_ERROR_ILLEGAL_RELATION = -1072824262,
    MQ_ERROR_ILLEGAL_PROPERTY_SIZE = -1072824261,
    MQ_ERROR_ILLEGAL_RESTRICTION_PROPID = -1072824260,
    MQ_ERROR_ILLEGAL_MQQUEUEPROPS = -1072824259,
    MQ_ERROR_PROPERTY_NOTALLOWED = -1072824258,
    MQ_ERROR_INSUFFICIENT_PROPERTIES = -1072824257,
    MQ_ERROR_MACHINE_EXISTS = -1072824256,
    MQ_ERROR_ILLEGAL_MQQMPROPS = -1072824255,
    MQ_ERROR_DS_IS_FULL = -1072824254,
    MQ_ERROR_DS_ERROR = -1072824253,
    MQ_ERROR_INVALID_OWNER = -1072824252,
    MQ_ERROR_UNSUPPORTED_ACCESS_MODE = -1072824251,
    MQ_ERROR_RESULT_BUFFER_TOO_SMALL = -1072824250,
    MQ_ERROR_DELETE_CN_IN_USE = -1072824248,
    MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER = -1072824247,
    MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE = -1072824246,
    MQ_ERROR_QUEUE_NOT_AVAILABLE = -1072824245,
    MQ_ERROR_DTC_CONNECT = -1072824244,
    MQ_ERROR_TRANSACTION_IMPORT = -1072824242,
    MQ_ERROR_TRANSACTION_USAGE = -1072824240,
    MQ_ERROR_TRANSACTION_SEQUENCE = -1072824239,
    MQ_ERROR_MISSING_CONNECTOR_TYPE = -1072824235,
    MQ_ERROR_STALE_HANDLE = -1072824234,
    MQ_ERROR_TRANSACTION_ENLIST = -1072824232,
    MQ_ERROR_QUEUE_DELETED = -1072824230,
    MQ_ERROR_ILLEGAL_CONTEXT = -1072824229,
    MQ_ERROR_ILLEGAL_SORT_PROPID = -1072824228,
    MQ_ERROR_LABEL_TOO_LONG = -1072824227,
    MQ_ERROR_LABEL_BUFFER_TOO_SMALL = -1072824226,
    MQ_ERROR_MQIS_SERVER_EMPTY = -1072824225,
    MQ_ERROR_MQIS_READONLY_MODE = -1072824224,
    MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL = -1072824223,
    MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL = -1072824222,
    MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL = -1072824221,
    MQ_ERROR_ILLEGAL_OPERATION = -1072824220,
    MQ_ERROR_WRITE_NOT_ALLOWED = -1072824219
} MQERROR;

typedef enum _MQWARNING {
    MQ_INFORMATION_PROPERTY = 1074659329,
    MQ_INFORMATION_ILLEGAL_PROPERTY = 1074659330,
    MQ_INFORMATION_PROPERTY_IGNORED = 1074659331,
    MQ_INFORMATION_UNSUPPORTED_PROPERTY = 1074659332,
    MQ_INFORMATION_DUPLICATE_PROPERTY = 1074659333,
    MQ_INFORMATION_OPERATION_PENDING = 1074659334,
    MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL = 1074659337
} MQWARNING;

DEFINE_GUID(IID_IMSMQQuery,0xD7D6E072L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQQuery */
#undef INTERFACE
#define INTERFACE IMSMQQuery

DECLARE_INTERFACE_(IMSMQQuery, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQQuery methods */
    STDMETHOD(LookupQueue)(THIS_ VARIANT FAR* QueueGuid, VARIANT FAR* ServiceTypeGuid, VARIANT FAR* Label, VARIANT FAR* CreateTime, VARIANT FAR* ModifyTime, VARIANT FAR* RelServiceType, VARIANT FAR* RelLabel, VARIANT FAR* RelCreateTime, VARIANT FAR* RelModifyTime, IMSMQQueueInfos FAR* FAR* ppqinfos) PURE;
};

DEFINE_GUID(CLSID_MSMQQuery,0xD7D6E073L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQQuery;
#endif

DEFINE_GUID(IID_IMSMQMessage,0xD7D6E074L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQMessage */
#undef INTERFACE
#define INTERFACE IMSMQMessage

DECLARE_INTERFACE_(IMSMQMessage, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQMessage methods */
    STDMETHOD(get_Class)(THIS_ long FAR* plClass) PURE;
    STDMETHOD(get_PrivLevel)(THIS_ long FAR* plPrivLevel) PURE;
    STDMETHOD(put_PrivLevel)(THIS_ long lPrivLevel) PURE;
    STDMETHOD(get_AuthLevel)(THIS_ long FAR* plAuthLevel) PURE;
    STDMETHOD(put_AuthLevel)(THIS_ long lAuthLevel) PURE;
    STDMETHOD(get_IsAuthenticated)(THIS_ VARIANT_BOOL FAR* pisAuthenticated) PURE;
    STDMETHOD(get_Delivery)(THIS_ long FAR* plDelivery) PURE;
    STDMETHOD(put_Delivery)(THIS_ long lDelivery) PURE;
    STDMETHOD(get_Trace)(THIS_ long FAR* plTrace) PURE;
    STDMETHOD(put_Trace)(THIS_ long lTrace) PURE;
    STDMETHOD(get_Priority)(THIS_ long FAR* plPriority) PURE;
    STDMETHOD(put_Priority)(THIS_ long lPriority) PURE;
    STDMETHOD(get_Journal)(THIS_ long FAR* plJournal) PURE;
    STDMETHOD(put_Journal)(THIS_ long lJournal) PURE;
    STDMETHOD(get_ResponseQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoResponse) PURE;
    STDMETHOD(putref_ResponseQueueInfo)(THIS_ IMSMQQueueInfo FAR* pqinfoResponse) PURE;
    STDMETHOD(get_AppSpecific)(THIS_ long FAR* plAppSpecific) PURE;
    STDMETHOD(put_AppSpecific)(THIS_ long lAppSpecific) PURE;
    STDMETHOD(get_SourceMachineGuid)(THIS_ BSTR FAR* pbstrGuidSrcMachine) PURE;
    STDMETHOD(get_BodyLength)(THIS_ long FAR* pcbBody) PURE;
    STDMETHOD(get_Body)(THIS_ VARIANT FAR* pvarBody) PURE;
    STDMETHOD(put_Body)(THIS_ VARIANT varBody) PURE;
    STDMETHOD(get_AdminQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoAdmin) PURE;
    STDMETHOD(putref_AdminQueueInfo)(THIS_ IMSMQQueueInfo FAR* pqinfoAdmin) PURE;
    STDMETHOD(get_Id)(THIS_ VARIANT FAR* pvarMsgId) PURE;
    STDMETHOD(get_CorrelationId)(THIS_ VARIANT FAR* pvarMsgId) PURE;
    STDMETHOD(put_CorrelationId)(THIS_ VARIANT varMsgId) PURE;
    STDMETHOD(get_Ack)(THIS_ long FAR* plAck) PURE;
    STDMETHOD(put_Ack)(THIS_ long lAck) PURE;
    STDMETHOD(get_Label)(THIS_ BSTR FAR* pbstrLabel) PURE;
    STDMETHOD(put_Label)(THIS_ BSTR bstrLabel) PURE;
    STDMETHOD(get_MaxTimeToReachQueue)(THIS_ long FAR* plMaxTimeToReachQueue) PURE;
    STDMETHOD(put_MaxTimeToReachQueue)(THIS_ long lMaxTimeToReachQueue) PURE;
    STDMETHOD(get_MaxTimeToReceive)(THIS_ long FAR* plMaxTimeToReceive) PURE;
    STDMETHOD(put_MaxTimeToReceive)(THIS_ long lMaxTimeToReceive) PURE;
    STDMETHOD(get_HashAlgorithm)(THIS_ long FAR* plHashAlg) PURE;
    STDMETHOD(put_HashAlgorithm)(THIS_ long lHashAlg) PURE;
    STDMETHOD(get_EncryptAlgorithm)(THIS_ long FAR* plEncryptAlg) PURE;
    STDMETHOD(put_EncryptAlgorithm)(THIS_ long lEncryptAlg) PURE;
    STDMETHOD(get_SentTime)(THIS_ VARIANT FAR* pvarSentTime) PURE;
    STDMETHOD(get_ArrivedTime)(THIS_ VARIANT FAR* plArrivedTime) PURE;
    STDMETHOD(get_DestinationQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoDest) PURE;
    STDMETHOD(get_SenderCertificate)(THIS_ VARIANT FAR* pvarSenderCert) PURE;
    STDMETHOD(put_SenderCertificate)(THIS_ VARIANT varSenderCert) PURE;
    STDMETHOD(get_SenderId)(THIS_ VARIANT FAR* pvarSenderId) PURE;
    STDMETHOD(get_SenderIdType)(THIS_ long FAR* plSenderIdType) PURE;
    STDMETHOD(put_SenderIdType)(THIS_ long lSenderIdType) PURE;
    STDMETHOD(Send)(THIS_ IMSMQQueue FAR* DestinationQueue, VARIANT FAR* Transaction) PURE;
    STDMETHOD(AttachCurrentSecurityContext)(THIS) PURE;
};

DEFINE_GUID(CLSID_MSMQMessage,0xD7D6E075L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQMessage;
#endif

DEFINE_GUID(IID_IMSMQQueue,0xD7D6E076L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQQueue */
#undef INTERFACE
#define INTERFACE IMSMQQueue

DECLARE_INTERFACE_(IMSMQQueue, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQQueue methods */
    STDMETHOD(get_Access)(THIS_ long FAR* plAccess) PURE;
    STDMETHOD(get_ShareMode)(THIS_ long FAR* plShareMode) PURE;
    STDMETHOD(get_QueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfo) PURE;
    STDMETHOD(get_Handle)(THIS_ long FAR* plHandle) PURE;
    STDMETHOD(get_IsOpen)(THIS_ VARIANT_BOOL FAR* pisOpen) PURE;
    STDMETHOD(Close)(THIS) PURE;
    STDMETHOD(Receive)(THIS_ VARIANT FAR* Transaction, VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
    STDMETHOD(Peek)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
    STDMETHOD(EnableNotification)(THIS_ IMSMQEvent FAR* Event, VARIANT FAR* Cursor, VARIANT FAR* ReceiveTimeout) PURE;
    STDMETHOD(Reset)(THIS) PURE;
    STDMETHOD(ReceiveCurrent)(THIS_ VARIANT FAR* Transaction, VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
    STDMETHOD(PeekNext)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
    STDMETHOD(PeekCurrent)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
};

DEFINE_GUID(IID_IMSMQEvent,0xD7D6E077L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQEvent */
#undef INTERFACE
#define INTERFACE IMSMQEvent

DECLARE_INTERFACE_(IMSMQEvent, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQEvent methods */
};

DEFINE_GUID(DIID__DMSMQEventEvents,0xD7D6E078L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of dispatch interface: _DMSMQEventEvents */
#undef INTERFACE
#define INTERFACE _DMSMQEventEvents

DECLARE_INTERFACE_(_DMSMQEventEvents, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* _DMSMQEventEvents methods:
    void Arrived(IDispatch * Queue, long Cursor);
    void ArrivedError(IDispatch * Queue, long ErrorCode, long Cursor);
    */
};

DEFINE_GUID(CLSID_MSMQQueue,0xD7D6E079L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQQueue;
#endif

DEFINE_GUID(CLSID_MSMQEvent,0xD7D6E07AL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQEvent;
#endif

DEFINE_GUID(IID_IMSMQQueueInfo,0xD7D6E07BL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQQueueInfo */
#undef INTERFACE
#define INTERFACE IMSMQQueueInfo

DECLARE_INTERFACE_(IMSMQQueueInfo, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQQueueInfo methods */
    STDMETHOD(get_QueueGuid)(THIS_ BSTR FAR* pbstrGuidQueue) PURE;
    STDMETHOD(get_ServiceTypeGuid)(THIS_ BSTR FAR* pbstrGuidServiceType) PURE;
    STDMETHOD(put_ServiceTypeGuid)(THIS_ BSTR bstrGuidServiceType) PURE;
    STDMETHOD(get_Label)(THIS_ BSTR FAR* pbstrLabel) PURE;
    STDMETHOD(put_Label)(THIS_ BSTR bstrLabel) PURE;
    STDMETHOD(get_PathName)(THIS_ BSTR FAR* pbstrPathName) PURE;
    STDMETHOD(put_PathName)(THIS_ BSTR bstrPathName) PURE;
    STDMETHOD(get_FormatName)(THIS_ BSTR FAR* pbstrFormatName) PURE;
    STDMETHOD(put_FormatName)(THIS_ BSTR bstrFormatName) PURE;
    STDMETHOD(get_IsTransactional)(THIS_ VARIANT_BOOL FAR* pisTransactional) PURE;
    STDMETHOD(get_PrivLevel)(THIS_ long FAR* plPrivLevel) PURE;
    STDMETHOD(put_PrivLevel)(THIS_ long lPrivLevel) PURE;
    STDMETHOD(get_Journal)(THIS_ long FAR* plJournal) PURE;
    STDMETHOD(put_Journal)(THIS_ long lJournal) PURE;
    STDMETHOD(get_Quota)(THIS_ long FAR* plQuota) PURE;
    STDMETHOD(put_Quota)(THIS_ long lQuota) PURE;
    STDMETHOD(get_BasePriority)(THIS_ long FAR* plBasePriority) PURE;
    STDMETHOD(put_BasePriority)(THIS_ long lBasePriority) PURE;
    STDMETHOD(get_CreateTime)(THIS_ VARIANT FAR* pvarCreateTime) PURE;
    STDMETHOD(get_ModifyTime)(THIS_ VARIANT FAR* pvarModifyTime) PURE;
    STDMETHOD(get_Authenticate)(THIS_ long FAR* plAuthenticate) PURE;
    STDMETHOD(put_Authenticate)(THIS_ long lAuthenticate) PURE;
    STDMETHOD(get_JournalQuota)(THIS_ long FAR* plJournalQuota) PURE;
    STDMETHOD(put_JournalQuota)(THIS_ long lJournalQuota) PURE;
    STDMETHOD(get_IsWorldReadable)(THIS_ VARIANT_BOOL FAR* pisWorldReadable) PURE;
    STDMETHOD(Create)(THIS_ VARIANT FAR* IsTransactional, VARIANT FAR* IsWorldReadable) PURE;
    STDMETHOD(Delete)(THIS) PURE;
    STDMETHOD(Open)(THIS_ long Access, long ShareMode, IMSMQQueue FAR* FAR* ppq) PURE;
    STDMETHOD(Refresh)(THIS) PURE;
    STDMETHOD(Update)(THIS) PURE;
};

DEFINE_GUID(CLSID_MSMQQueueInfo,0xD7D6E07CL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQQueueInfo;
#endif

DEFINE_GUID(IID_IMSMQQueueInfos,0xD7D6E07DL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQQueueInfos */
#undef INTERFACE
#define INTERFACE IMSMQQueueInfos

DECLARE_INTERFACE_(IMSMQQueueInfos, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQQueueInfos methods */
    STDMETHOD(Reset)(THIS) PURE;
    STDMETHOD(Next)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoNext) PURE;
};

DEFINE_GUID(CLSID_MSMQQueueInfos,0xD7D6E07EL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQQueueInfos;
#endif

typedef struct _MQBOID {
    BYTE rgb[16];
} MQBOID;

typedef struct _MQBOID MQXACTUOW;

typedef long MQISOLEVEL;

typedef struct _MQXACTTRANSINFO {
    MQXACTUOW uow;
    MQISOLEVEL isoLevel;
    ULONG isoFlags;
    DWORD grfTCSupported;
    DWORD grfRMSupported;
    DWORD grfTCSupportedRetaining;
    DWORD grfRMSupportedRetaining;
} MQXACTTRANSINFO;

DEFINE_GUID(IID_IMSMQTransaction,0xD7D6E07FL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQTransaction */
#undef INTERFACE
#define INTERFACE IMSMQTransaction

DECLARE_INTERFACE_(IMSMQTransaction, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQTransaction methods */
    STDMETHOD(get_Transaction)(THIS_ long FAR* plTransaction) PURE;
    STDMETHOD(Commit)(THIS_ VARIANT FAR* fRetaining, VARIANT FAR* grfTC, VARIANT FAR* grfRM) PURE;
    STDMETHOD(Abort)(THIS_ VARIANT FAR* fRetaining, VARIANT FAR* fAsync) PURE;
};

DEFINE_GUID(CLSID_MSMQTransaction,0xD7D6E080L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQTransaction;
#endif

DEFINE_GUID(IID_IMSMQCoordinatedTransactionDispenser,0xD7D6E081L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQCoordinatedTransactionDispenser */
#undef INTERFACE
#define INTERFACE IMSMQCoordinatedTransactionDispenser

DECLARE_INTERFACE_(IMSMQCoordinatedTransactionDispenser, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQCoordinatedTransactionDispenser methods */
    STDMETHOD(BeginTransaction)(THIS_ IMSMQTransaction FAR* FAR* ptransaction) PURE;
};

DEFINE_GUID(CLSID_MSMQCoordinatedTransactionDispenser,0xD7D6E082L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQCoordinatedTransactionDispenser;
#endif

DEFINE_GUID(IID_IMSMQTransactionDispenser,0xD7D6E083L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQTransactionDispenser */
#undef INTERFACE
#define INTERFACE IMSMQTransactionDispenser

DECLARE_INTERFACE_(IMSMQTransactionDispenser, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQTransactionDispenser methods */
    STDMETHOD(BeginTransaction)(THIS_ IMSMQTransaction FAR* FAR* ptransaction) PURE;
};

DEFINE_GUID(CLSID_MSMQTransactionDispenser,0xD7D6E084L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQTransactionDispenser;
#endif

DEFINE_GUID(IID_IMSMQApplication,0xD7D6E085L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

/* Definition of interface: IMSMQApplication */
#undef INTERFACE
#define INTERFACE IMSMQApplication

DECLARE_INTERFACE_(IMSMQApplication, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IMSMQApplication methods */
    STDMETHOD(MachineIdOfMachineName)(THIS_ BSTR MachineName, BSTR FAR* pbstrGuid) PURE;
};

DEFINE_GUID(CLSID_MSMQApplication,0xD7D6E086L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);

#ifdef __cplusplus
class MSMQApplication;
#endif

#endif
