home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / MQOAI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  31.8 KB  |  1,017 lines

  1. /* This header file machine-generated by mktyplib.exe */
  2. /* Interface to type library: MSMQ */
  3.  
  4. #ifndef _MSMQ_H_
  5. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  6. #define _MSMQ_H_
  7.  
  8. DEFINE_GUID(LIBID_MSMQ,0xD7D6E071L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  9. #ifndef BEGIN_INTERFACE
  10. #define BEGIN_INTERFACE
  11. #endif
  12.  
  13. typedef unsigned char BYTE;
  14.  
  15. typedef unsigned long ULONG;
  16.  
  17. typedef unsigned long DWORD;
  18.  
  19. typedef int BOOL;
  20.  
  21. interface IMSMQQuery;
  22.  
  23. interface IMSMQQueueInfo;
  24.  
  25. interface IMSMQQueue;
  26.  
  27. interface IMSMQMessage;
  28.  
  29. interface IMSMQQueueInfos;
  30.  
  31. interface IMSMQEvent;
  32.  
  33. interface IMSMQTransaction;
  34.  
  35. interface IMSMQCoordinatedTransactionDispenser;
  36.  
  37. interface IMSMQTransactionDispenser;
  38.  
  39. typedef enum _MQCALG {
  40.     MQMSG_CALG_MD2 = 32769,
  41.     MQMSG_CALG_MD4 = 32770,
  42.     MQMSG_CALG_MD5 = 32771,
  43.     MQMSG_CALG_SHA = 32772,
  44.     MQMSG_CALG_MAC = 32773,
  45.     MQMSG_CALG_RSA_SIGN = 9216,
  46.     MQMSG_CALG_DSS_SIGN = 8704,
  47.     MQMSG_CALG_RSA_KEYX = 41984,
  48.     MQMSG_CALG_DES = 26113,
  49.     MQMSG_CALG_RC2 = 26114,
  50.     MQMSG_CALG_RC4 = 26625,
  51.     MQMSG_CALG_SEAL = 26626
  52. } MQCALG;
  53.  
  54. typedef enum _MQTRANSACTION {
  55.     MQ_NO_TRANSACTION = 0,
  56.     MQ_MTS_TRANSACTION = 1,
  57.     MQ_XA_TRANSACTION = 2,
  58.     MQ_SINGLE_MESSAGE = 3
  59. } MQTRANSACTION;
  60.  
  61. typedef enum _RELOPS {
  62.     REL_NOP = 0,
  63.     REL_EQ,
  64.     REL_NEQ,
  65.     REL_LT,
  66.     REL_GT,
  67.     REL_LE,
  68.     REL_GE
  69. } RELOPS;
  70.  
  71. typedef enum _MQMSGCURSOR {
  72.     MQMSG_FIRST = 0,
  73.     MQMSG_CURRENT = 1,
  74.     MQMSG_NEXT = 2
  75. } MQMSGCURSOR;
  76.  
  77. typedef enum _MQMSGCLASS {
  78.     MQMSG_CLASS_NORMAL = 0,
  79.     MQMSG_CLASS_REPORT = 1,
  80.     MQMSG_CLASS_ACK_REACH_QUEUE = 2,
  81.     MQMSG_CLASS_ACK_RECEIVE = 16384,
  82.     MQMSG_CLASS_NACK_BAD_DST_Q = 32768,
  83.     MQMSG_CLASS_NACK_PURGED = 32769,
  84.     MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT = 32770,
  85.     MQMSG_CLASS_NACK_Q_EXCEED_QUOTA = 32771,
  86.     MQMSG_CLASS_NACK_ACCESS_DENIED = 32772,
  87.     MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED = 32773,
  88.     MQMSG_CLASS_NACK_BAD_SIGNATURE = 32774,
  89.     MQMSG_CLASS_NACK_BAD_ENCRYPTION = 32775,
  90.     MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT = 32776,
  91.     MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q = 32777,
  92.     MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG = 32778,
  93.     MQMSG_CLASS_NACK_Q_DELETED = 49152,
  94.     MQMSG_CLASS_NACK_Q_PURGED = 49153,
  95.     MQMSG_CLASS_NACK_RECEIVE_TIMEOUT = 49154
  96. } MQMSGCLASS;
  97.  
  98. typedef enum _MQMSGDELIVERY {
  99.     MQMSG_DELIVERY_EXPRESS = 0,
  100.     MQMSG_DELIVERY_RECOVERABLE = 1
  101. } MQMSGDELIVERY;
  102.  
  103. typedef enum _MQMSGACKNOWLEDGEMENT {
  104.     MQMSG_ACKNOWLEDGMENT_NONE = 0,
  105.     MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL = 1,
  106.     MQMSG_ACKNOWLEDGMENT_POS_RECEIVE = 2,
  107.     MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL = 4,
  108.     MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE = 8,
  109.     MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE = 4,
  110.     MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE = 5,
  111.     MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE = 12,
  112.     MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE = 14
  113. } MQMSGACKNOWLEDGEMENT;
  114.  
  115. typedef enum _MQMSGJOURNAL {
  116.     MQMSG_JOURNAL_NONE = 0,
  117.     MQMSG_DEADLETTER = 1,
  118.     MQMSG_JOURNAL = 2
  119. } MQMSGJOURNAL;
  120.  
  121. typedef enum _MQMSGTRACE {
  122.     MQMSG_TRACE_NONE = 0,
  123.     MQMSG_SEND_ROUTE_TO_REPORT_QUEUE = 1
  124. } MQMSGTRACE;
  125.  
  126. typedef enum _MQMSGSENDERIDTYPE {
  127.     MQMSG_SENDERID_TYPE_NONE = 0,
  128.     MQMSG_SENDERID_TYPE_SID = 1
  129. } MQMSGSENDERIDTYPE;
  130.  
  131. typedef enum _MQMSGPRIVLEVEL {
  132.     MQMSG_PRIV_LEVEL_NONE = 0,
  133.     MQMSG_PRIV_LEVEL_BODY = 1
  134. } MQMSGPRIVLEVEL;
  135.  
  136. typedef enum _MQMSGAUTHLEVEL {
  137.     MQMSG_AUTH_LEVEL_NONE = 0,
  138.     MQMSG_AUTH_LEVEL_ALWAYS = 1
  139. } MQMSGAUTHLEVEL;
  140.  
  141. typedef enum _MQMSGIDSIZE {
  142.     MQMSG_MSGID_SIZE = 20,
  143.     MQMSG_CORRELATIONID_SIZE = 20
  144. } MQMSGIDSIZE;
  145.  
  146. typedef enum _MQMSGMAX {
  147.     MQ_MAX_MSG_LABEL_LEN = 249
  148. } MQMSGMAX;
  149.  
  150. typedef enum _MQSHARE {
  151.     MQ_DENY_NONE = 0,
  152.     MQ_DENY_RECEIVE_SHARE = 1
  153. } MQSHARE;
  154.  
  155. typedef enum _MQACCESS {
  156.     MQ_RECEIVE_ACCESS = 1,
  157.     MQ_SEND_ACCESS = 2,
  158.     MQ_PEEK_ACCESS = 32
  159. } MQACCESS;
  160.  
  161. typedef enum _MQJOURNAL {
  162.     MQ_JOURNAL_NONE = 0,
  163.     MQ_JOURNAL = 1
  164. } MQJOURNAL;
  165.  
  166. typedef enum _MQTRANSACTIONAL {
  167.     MQ_TRANSACTIONAL_NONE = 0,
  168.     MQ_TRANSACTIONAL = 1
  169. } MQTRANSACTIONAL;
  170.  
  171. typedef enum _MQAUTHENTICATE {
  172.     MQ_AUTHENTICATE_NONE = 0,
  173.     MQ_AUTHENTICATE = 1
  174. } MQAUTHENTICATE;
  175.  
  176. typedef enum _MQPRIVLEVEL {
  177.     MQ_PRIV_LEVEL_NONE = 0,
  178.     MQ_PRIV_LEVEL_OPTIONAL = 1,
  179.     MQ_PRIV_LEVEL_BODY = 2
  180. } MQPRIVLEVEL;
  181.  
  182. typedef enum _MQPRIORITY {
  183.     MQ_MIN_PRIORITY = 0,
  184.     MQ_MAX_PRIORITY = 7
  185. } MQPRIORITY;
  186.  
  187. typedef enum _MQMAX {
  188.     MQ_MAX_Q_NAME_LEN = 124,
  189.     MQ_MAX_Q_LABEL_LEN = 124
  190. } MQMAX;
  191.  
  192. typedef enum _MQDEFAULT {
  193.     DEFAULT_M_PRIORITY = 3,
  194.     DEFAULT_M_DELIVERY = 0,
  195.     DEFAULT_M_ACKNOWLEDGE = 0,
  196.     DEFAULT_M_JOURNAL = 0,
  197.     DEFAULT_M_APPSPECIFIC = 0,
  198.     DEFAULT_M_PRIV_LEVEL = 0,
  199.     DEFAULT_M_AUTH_LEVEL = 0,
  200.     DEFAULT_M_SENDERID_TYPE = 1,
  201.     DEFAULT_Q_JOURNAL = 0,
  202.     DEFAULT_Q_BASEPRIORITY = 0,
  203.     DEFAULT_Q_QUOTA = -1,
  204.     DEFAULT_Q_JOURNAL_QUOTA = -1,
  205.     DEFAULT_Q_TRANSACTION = 0,
  206.     DEFAULT_Q_AUTHENTICATE = 0,
  207.     DEFAULT_Q_PRIV_LEVEL = 1
  208. } MQDEFAULT;
  209.  
  210. typedef enum _MQERROR {
  211.     MQ_ERROR = -1072824319,
  212.     MQ_ERROR_PROPERTY = -1072824318,
  213.     MQ_ERROR_QUEUE_NOT_FOUND = -1072824317,
  214.     MQ_ERROR_QUEUE_EXISTS = -1072824315,
  215.     MQ_ERROR_INVALID_PARAMETER = -1072824314,
  216.     MQ_ERROR_INVALID_HANDLE = -1072824313,
  217.     MQ_ERROR_OPERATION_CANCELLED = -1072824312,
  218.     MQ_ERROR_SHARING_VIOLATION = -1072824311,
  219.     MQ_ERROR_SERVICE_NOT_AVAILABLE = -1072824309,
  220.     MQ_ERROR_MACHINE_NOT_FOUND = -1072824307,
  221.     MQ_ERROR_ILLEGAL_SORT = -1072824304,
  222.     MQ_ERROR_ILLEGAL_USER = -1072824303,
  223.     MQ_ERROR_UNSUPPORTED_DBMS = -1072824302,
  224.     MQ_ERROR_NO_DS = -1072824301,
  225.     MQ_ERROR_ILLEGAL_QUEUE_PATHNAME = -1072824300,
  226.     MQ_ERROR_ILLEGAL_PROPERTY_VALUE = -1072824296,
  227.     MQ_ERROR_ILLEGAL_PROPERTY_VT = -1072824295,
  228.     MQ_ERROR_BUFFER_OVERFLOW = -1072824294,
  229.     MQ_ERROR_IO_TIMEOUT = -1072824293,
  230.     MQ_ERROR_ILLEGAL_CURSOR_ACTION = -1072824292,
  231.     MQ_ERROR_MESSAGE_ALREADY_RECEIVED = -1072824291,
  232.     MQ_ERROR_ILLEGAL_FORMATNAME = -1072824290,
  233.     MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL = -1072824289,
  234.     MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION = -1072824288,
  235.     MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR = -1072824287,
  236.     MQ_ERROR_SENDERID_BUFFER_TOO_SMALL = -1072824286,
  237.     MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL = -1072824285,
  238.     MQ_ERROR_CANNOT_IMPERSONATE_CLIENT = -1072824284,
  239.     MQ_ERROR_ACCESS_DENIED = -1072824283,
  240.     MQ_ERROR_PRIVILEGE_NOT_HELD = -1072824282,
  241.     MQ_ERROR_INSUFFICIENT_RESOURCES = -1072824281,
  242.     MQ_ERROR_USER_BUFFER_TOO_SMALL = -1072824280,
  243.     MQ_ERROR_MESSAGE_STORAGE_FAILED = -1072824278,
  244.     MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL = -1072824277,
  245.     MQ_ERROR_INVALID_CERTIFICATE = -1072824276,
  246.     MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE = -1072824275,
  247.     MQ_ERROR_INTERNAL_USER_CERT_EXIST = -1072824274,
  248.     MQ_ERROR_NO_INTERNAL_USER_CERT = -1072824273,
  249.     MQ_ERROR_CORRUPTED_SECURITY_DATA = -1072824272,
  250.     MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE = -1072824271,
  251.     MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION = -1072824269,
  252.     MQ_ERROR_BAD_SECURITY_CONTEXT = -1072824267,
  253.     MQ_ERROR_COULD_NOT_GET_USER_SID = -1072824266,
  254.     MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO = -1072824265,
  255.     MQ_ERROR_ILLEGAL_MQCOLUMNS = -1072824264,
  256.     MQ_ERROR_ILLEGAL_PROPID = -1072824263,
  257.     MQ_ERROR_ILLEGAL_RELATION = -1072824262,
  258.     MQ_ERROR_ILLEGAL_PROPERTY_SIZE = -1072824261,
  259.     MQ_ERROR_ILLEGAL_RESTRICTION_PROPID = -1072824260,
  260.     MQ_ERROR_ILLEGAL_MQQUEUEPROPS = -1072824259,
  261.     MQ_ERROR_PROPERTY_NOTALLOWED = -1072824258,
  262.     MQ_ERROR_INSUFFICIENT_PROPERTIES = -1072824257,
  263.     MQ_ERROR_MACHINE_EXISTS = -1072824256,
  264.     MQ_ERROR_ILLEGAL_MQQMPROPS = -1072824255,
  265.     MQ_ERROR_DS_IS_FULL = -1072824254,
  266.     MQ_ERROR_DS_ERROR = -1072824253,
  267.     MQ_ERROR_INVALID_OWNER = -1072824252,
  268.     MQ_ERROR_UNSUPPORTED_ACCESS_MODE = -1072824251,
  269.     MQ_ERROR_RESULT_BUFFER_TOO_SMALL = -1072824250,
  270.     MQ_ERROR_DELETE_CN_IN_USE = -1072824248,
  271.     MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER = -1072824247,
  272.     MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE = -1072824246,
  273.     MQ_ERROR_QUEUE_NOT_AVAILABLE = -1072824245,
  274.     MQ_ERROR_DTC_CONNECT = -1072824244,
  275.     MQ_ERROR_TRANSACTION_IMPORT = -1072824242,
  276.     MQ_ERROR_TRANSACTION_USAGE = -1072824240,
  277.     MQ_ERROR_TRANSACTION_SEQUENCE = -1072824239,
  278.     MQ_ERROR_MISSING_CONNECTOR_TYPE = -1072824235,
  279.     MQ_ERROR_STALE_HANDLE = -1072824234,
  280.     MQ_ERROR_TRANSACTION_ENLIST = -1072824232,
  281.     MQ_ERROR_QUEUE_DELETED = -1072824230,
  282.     MQ_ERROR_ILLEGAL_CONTEXT = -1072824229,
  283.     MQ_ERROR_ILLEGAL_SORT_PROPID = -1072824228,
  284.     MQ_ERROR_LABEL_TOO_LONG = -1072824227,
  285.     MQ_ERROR_LABEL_BUFFER_TOO_SMALL = -1072824226,
  286.     MQ_ERROR_MQIS_SERVER_EMPTY = -1072824225,
  287.     MQ_ERROR_MQIS_READONLY_MODE = -1072824224,
  288.     MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL = -1072824223,
  289.     MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL = -1072824222,
  290.     MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL = -1072824221,
  291.     MQ_ERROR_ILLEGAL_OPERATION = -1072824220,
  292.     MQ_ERROR_WRITE_NOT_ALLOWED = -1072824219
  293. } MQERROR;
  294.  
  295. typedef enum _MQWARNING {
  296.     MQ_INFORMATION_PROPERTY = 1074659329,
  297.     MQ_INFORMATION_ILLEGAL_PROPERTY = 1074659330,
  298.     MQ_INFORMATION_PROPERTY_IGNORED = 1074659331,
  299.     MQ_INFORMATION_UNSUPPORTED_PROPERTY = 1074659332,
  300.     MQ_INFORMATION_DUPLICATE_PROPERTY = 1074659333,
  301.     MQ_INFORMATION_OPERATION_PENDING = 1074659334,
  302.     MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL = 1074659337
  303. } MQWARNING;
  304.  
  305. DEFINE_GUID(IID_IMSMQQuery,0xD7D6E072L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  306.  
  307. /* Definition of interface: IMSMQQuery */
  308. #undef INTERFACE
  309. #define INTERFACE IMSMQQuery
  310.  
  311. DECLARE_INTERFACE_(IMSMQQuery, IDispatch)
  312. {
  313. BEGIN_INTERFACE
  314. #ifndef NO_BASEINTERFACE_FUNCS
  315.  
  316.     /* IUnknown methods */
  317.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  318.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  319.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  320.  
  321.     /* IDispatch methods */
  322.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  323.  
  324.     STDMETHOD(GetTypeInfo)(
  325.       THIS_
  326.       UINT itinfo,
  327.       LCID lcid,
  328.       ITypeInfo FAR* FAR* pptinfo) PURE;
  329.  
  330.     STDMETHOD(GetIDsOfNames)(
  331.       THIS_
  332.       REFIID riid,
  333.       OLECHAR FAR* FAR* rgszNames,
  334.       UINT cNames,
  335.       LCID lcid,
  336.       DISPID FAR* rgdispid) PURE;
  337.  
  338.     STDMETHOD(Invoke)(
  339.       THIS_
  340.       DISPID dispidMember,
  341.       REFIID riid,
  342.       LCID lcid,
  343.       WORD wFlags,
  344.       DISPPARAMS FAR* pdispparams,
  345.       VARIANT FAR* pvarResult,
  346.       EXCEPINFO FAR* pexcepinfo,
  347.       UINT FAR* puArgErr) PURE;
  348. #endif
  349.  
  350.     /* IMSMQQuery methods */
  351.     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;
  352. };
  353.  
  354. DEFINE_GUID(CLSID_MSMQQuery,0xD7D6E073L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  355.  
  356. #ifdef __cplusplus
  357. class MSMQQuery;
  358. #endif
  359.  
  360. DEFINE_GUID(IID_IMSMQMessage,0xD7D6E074L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  361.  
  362. /* Definition of interface: IMSMQMessage */
  363. #undef INTERFACE
  364. #define INTERFACE IMSMQMessage
  365.  
  366. DECLARE_INTERFACE_(IMSMQMessage, IDispatch)
  367. {
  368. BEGIN_INTERFACE
  369. #ifndef NO_BASEINTERFACE_FUNCS
  370.  
  371.     /* IUnknown methods */
  372.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  373.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  374.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  375.  
  376.     /* IDispatch methods */
  377.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  378.  
  379.     STDMETHOD(GetTypeInfo)(
  380.       THIS_
  381.       UINT itinfo,
  382.       LCID lcid,
  383.       ITypeInfo FAR* FAR* pptinfo) PURE;
  384.  
  385.     STDMETHOD(GetIDsOfNames)(
  386.       THIS_
  387.       REFIID riid,
  388.       OLECHAR FAR* FAR* rgszNames,
  389.       UINT cNames,
  390.       LCID lcid,
  391.       DISPID FAR* rgdispid) PURE;
  392.  
  393.     STDMETHOD(Invoke)(
  394.       THIS_
  395.       DISPID dispidMember,
  396.       REFIID riid,
  397.       LCID lcid,
  398.       WORD wFlags,
  399.       DISPPARAMS FAR* pdispparams,
  400.       VARIANT FAR* pvarResult,
  401.       EXCEPINFO FAR* pexcepinfo,
  402.       UINT FAR* puArgErr) PURE;
  403. #endif
  404.  
  405.     /* IMSMQMessage methods */
  406.     STDMETHOD(get_Class)(THIS_ long FAR* plClass) PURE;
  407.     STDMETHOD(get_PrivLevel)(THIS_ long FAR* plPrivLevel) PURE;
  408.     STDMETHOD(put_PrivLevel)(THIS_ long lPrivLevel) PURE;
  409.     STDMETHOD(get_AuthLevel)(THIS_ long FAR* plAuthLevel) PURE;
  410.     STDMETHOD(put_AuthLevel)(THIS_ long lAuthLevel) PURE;
  411.     STDMETHOD(get_IsAuthenticated)(THIS_ VARIANT_BOOL FAR* pisAuthenticated) PURE;
  412.     STDMETHOD(get_Delivery)(THIS_ long FAR* plDelivery) PURE;
  413.     STDMETHOD(put_Delivery)(THIS_ long lDelivery) PURE;
  414.     STDMETHOD(get_Trace)(THIS_ long FAR* plTrace) PURE;
  415.     STDMETHOD(put_Trace)(THIS_ long lTrace) PURE;
  416.     STDMETHOD(get_Priority)(THIS_ long FAR* plPriority) PURE;
  417.     STDMETHOD(put_Priority)(THIS_ long lPriority) PURE;
  418.     STDMETHOD(get_Journal)(THIS_ long FAR* plJournal) PURE;
  419.     STDMETHOD(put_Journal)(THIS_ long lJournal) PURE;
  420.     STDMETHOD(get_ResponseQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoResponse) PURE;
  421.     STDMETHOD(putref_ResponseQueueInfo)(THIS_ IMSMQQueueInfo FAR* pqinfoResponse) PURE;
  422.     STDMETHOD(get_AppSpecific)(THIS_ long FAR* plAppSpecific) PURE;
  423.     STDMETHOD(put_AppSpecific)(THIS_ long lAppSpecific) PURE;
  424.     STDMETHOD(get_SourceMachineGuid)(THIS_ BSTR FAR* pbstrGuidSrcMachine) PURE;
  425.     STDMETHOD(get_BodyLength)(THIS_ long FAR* pcbBody) PURE;
  426.     STDMETHOD(get_Body)(THIS_ VARIANT FAR* pvarBody) PURE;
  427.     STDMETHOD(put_Body)(THIS_ VARIANT varBody) PURE;
  428.     STDMETHOD(get_AdminQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoAdmin) PURE;
  429.     STDMETHOD(putref_AdminQueueInfo)(THIS_ IMSMQQueueInfo FAR* pqinfoAdmin) PURE;
  430.     STDMETHOD(get_Id)(THIS_ VARIANT FAR* pvarMsgId) PURE;
  431.     STDMETHOD(get_CorrelationId)(THIS_ VARIANT FAR* pvarMsgId) PURE;
  432.     STDMETHOD(put_CorrelationId)(THIS_ VARIANT varMsgId) PURE;
  433.     STDMETHOD(get_Ack)(THIS_ long FAR* plAck) PURE;
  434.     STDMETHOD(put_Ack)(THIS_ long lAck) PURE;
  435.     STDMETHOD(get_Label)(THIS_ BSTR FAR* pbstrLabel) PURE;
  436.     STDMETHOD(put_Label)(THIS_ BSTR bstrLabel) PURE;
  437.     STDMETHOD(get_MaxTimeToReachQueue)(THIS_ long FAR* plMaxTimeToReachQueue) PURE;
  438.     STDMETHOD(put_MaxTimeToReachQueue)(THIS_ long lMaxTimeToReachQueue) PURE;
  439.     STDMETHOD(get_MaxTimeToReceive)(THIS_ long FAR* plMaxTimeToReceive) PURE;
  440.     STDMETHOD(put_MaxTimeToReceive)(THIS_ long lMaxTimeToReceive) PURE;
  441.     STDMETHOD(get_HashAlgorithm)(THIS_ long FAR* plHashAlg) PURE;
  442.     STDMETHOD(put_HashAlgorithm)(THIS_ long lHashAlg) PURE;
  443.     STDMETHOD(get_EncryptAlgorithm)(THIS_ long FAR* plEncryptAlg) PURE;
  444.     STDMETHOD(put_EncryptAlgorithm)(THIS_ long lEncryptAlg) PURE;
  445.     STDMETHOD(get_SentTime)(THIS_ VARIANT FAR* pvarSentTime) PURE;
  446.     STDMETHOD(get_ArrivedTime)(THIS_ VARIANT FAR* plArrivedTime) PURE;
  447.     STDMETHOD(get_DestinationQueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoDest) PURE;
  448.     STDMETHOD(get_SenderCertificate)(THIS_ VARIANT FAR* pvarSenderCert) PURE;
  449.     STDMETHOD(put_SenderCertificate)(THIS_ VARIANT varSenderCert) PURE;
  450.     STDMETHOD(get_SenderId)(THIS_ VARIANT FAR* pvarSenderId) PURE;
  451.     STDMETHOD(get_SenderIdType)(THIS_ long FAR* plSenderIdType) PURE;
  452.     STDMETHOD(put_SenderIdType)(THIS_ long lSenderIdType) PURE;
  453.     STDMETHOD(Send)(THIS_ IMSMQQueue FAR* DestinationQueue, VARIANT FAR* Transaction) PURE;
  454.     STDMETHOD(AttachCurrentSecurityContext)(THIS) PURE;
  455. };
  456.  
  457. DEFINE_GUID(CLSID_MSMQMessage,0xD7D6E075L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  458.  
  459. #ifdef __cplusplus
  460. class MSMQMessage;
  461. #endif
  462.  
  463. DEFINE_GUID(IID_IMSMQQueue,0xD7D6E076L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  464.  
  465. /* Definition of interface: IMSMQQueue */
  466. #undef INTERFACE
  467. #define INTERFACE IMSMQQueue
  468.  
  469. DECLARE_INTERFACE_(IMSMQQueue, IDispatch)
  470. {
  471. BEGIN_INTERFACE
  472. #ifndef NO_BASEINTERFACE_FUNCS
  473.  
  474.     /* IUnknown methods */
  475.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  476.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  477.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  478.  
  479.     /* IDispatch methods */
  480.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  481.  
  482.     STDMETHOD(GetTypeInfo)(
  483.       THIS_
  484.       UINT itinfo,
  485.       LCID lcid,
  486.       ITypeInfo FAR* FAR* pptinfo) PURE;
  487.  
  488.     STDMETHOD(GetIDsOfNames)(
  489.       THIS_
  490.       REFIID riid,
  491.       OLECHAR FAR* FAR* rgszNames,
  492.       UINT cNames,
  493.       LCID lcid,
  494.       DISPID FAR* rgdispid) PURE;
  495.  
  496.     STDMETHOD(Invoke)(
  497.       THIS_
  498.       DISPID dispidMember,
  499.       REFIID riid,
  500.       LCID lcid,
  501.       WORD wFlags,
  502.       DISPPARAMS FAR* pdispparams,
  503.       VARIANT FAR* pvarResult,
  504.       EXCEPINFO FAR* pexcepinfo,
  505.       UINT FAR* puArgErr) PURE;
  506. #endif
  507.  
  508.     /* IMSMQQueue methods */
  509.     STDMETHOD(get_Access)(THIS_ long FAR* plAccess) PURE;
  510.     STDMETHOD(get_ShareMode)(THIS_ long FAR* plShareMode) PURE;
  511.     STDMETHOD(get_QueueInfo)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfo) PURE;
  512.     STDMETHOD(get_Handle)(THIS_ long FAR* plHandle) PURE;
  513.     STDMETHOD(get_IsOpen)(THIS_ VARIANT_BOOL FAR* pisOpen) PURE;
  514.     STDMETHOD(Close)(THIS) PURE;
  515.     STDMETHOD(Receive)(THIS_ VARIANT FAR* Transaction, VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
  516.     STDMETHOD(Peek)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
  517.     STDMETHOD(EnableNotification)(THIS_ IMSMQEvent FAR* Event, VARIANT FAR* Cursor, VARIANT FAR* ReceiveTimeout) PURE;
  518.     STDMETHOD(Reset)(THIS) PURE;
  519.     STDMETHOD(ReceiveCurrent)(THIS_ VARIANT FAR* Transaction, VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
  520.     STDMETHOD(PeekNext)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
  521.     STDMETHOD(PeekCurrent)(THIS_ VARIANT FAR* WantDestinationQueue, VARIANT FAR* WantBody, VARIANT FAR* ReceiveTimeout, IMSMQMessage FAR* FAR* ppmsg) PURE;
  522. };
  523.  
  524. DEFINE_GUID(IID_IMSMQEvent,0xD7D6E077L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  525.  
  526. /* Definition of interface: IMSMQEvent */
  527. #undef INTERFACE
  528. #define INTERFACE IMSMQEvent
  529.  
  530. DECLARE_INTERFACE_(IMSMQEvent, IDispatch)
  531. {
  532. BEGIN_INTERFACE
  533. #ifndef NO_BASEINTERFACE_FUNCS
  534.  
  535.     /* IUnknown methods */
  536.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  537.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  538.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  539.  
  540.     /* IDispatch methods */
  541.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  542.  
  543.     STDMETHOD(GetTypeInfo)(
  544.       THIS_
  545.       UINT itinfo,
  546.       LCID lcid,
  547.       ITypeInfo FAR* FAR* pptinfo) PURE;
  548.  
  549.     STDMETHOD(GetIDsOfNames)(
  550.       THIS_
  551.       REFIID riid,
  552.       OLECHAR FAR* FAR* rgszNames,
  553.       UINT cNames,
  554.       LCID lcid,
  555.       DISPID FAR* rgdispid) PURE;
  556.  
  557.     STDMETHOD(Invoke)(
  558.       THIS_
  559.       DISPID dispidMember,
  560.       REFIID riid,
  561.       LCID lcid,
  562.       WORD wFlags,
  563.       DISPPARAMS FAR* pdispparams,
  564.       VARIANT FAR* pvarResult,
  565.       EXCEPINFO FAR* pexcepinfo,
  566.       UINT FAR* puArgErr) PURE;
  567. #endif
  568.  
  569.     /* IMSMQEvent methods */
  570. };
  571.  
  572. DEFINE_GUID(DIID__DMSMQEventEvents,0xD7D6E078L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  573.  
  574. /* Definition of dispatch interface: _DMSMQEventEvents */
  575. #undef INTERFACE
  576. #define INTERFACE _DMSMQEventEvents
  577.  
  578. DECLARE_INTERFACE_(_DMSMQEventEvents, IDispatch)
  579. {
  580. BEGIN_INTERFACE
  581. #ifndef NO_BASEINTERFACE_FUNCS
  582.  
  583.     /* IUnknown methods */
  584.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  585.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  586.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  587.  
  588.     /* IDispatch methods */
  589.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  590.  
  591.     STDMETHOD(GetTypeInfo)(
  592.       THIS_
  593.       UINT itinfo,
  594.       LCID lcid,
  595.       ITypeInfo FAR* FAR* pptinfo) PURE;
  596.  
  597.     STDMETHOD(GetIDsOfNames)(
  598.       THIS_
  599.       REFIID riid,
  600.       OLECHAR FAR* FAR* rgszNames,
  601.       UINT cNames,
  602.       LCID lcid,
  603.       DISPID FAR* rgdispid) PURE;
  604.  
  605.     STDMETHOD(Invoke)(
  606.       THIS_
  607.       DISPID dispidMember,
  608.       REFIID riid,
  609.       LCID lcid,
  610.       WORD wFlags,
  611.       DISPPARAMS FAR* pdispparams,
  612.       VARIANT FAR* pvarResult,
  613.       EXCEPINFO FAR* pexcepinfo,
  614.       UINT FAR* puArgErr) PURE;
  615. #endif
  616.  
  617.     /* _DMSMQEventEvents methods:
  618.     void Arrived(IDispatch * Queue, long Cursor);
  619.     void ArrivedError(IDispatch * Queue, long ErrorCode, long Cursor);
  620.     */
  621. };
  622.  
  623. DEFINE_GUID(CLSID_MSMQQueue,0xD7D6E079L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  624.  
  625. #ifdef __cplusplus
  626. class MSMQQueue;
  627. #endif
  628.  
  629. DEFINE_GUID(CLSID_MSMQEvent,0xD7D6E07AL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  630.  
  631. #ifdef __cplusplus
  632. class MSMQEvent;
  633. #endif
  634.  
  635. DEFINE_GUID(IID_IMSMQQueueInfo,0xD7D6E07BL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  636.  
  637. /* Definition of interface: IMSMQQueueInfo */
  638. #undef INTERFACE
  639. #define INTERFACE IMSMQQueueInfo
  640.  
  641. DECLARE_INTERFACE_(IMSMQQueueInfo, IDispatch)
  642. {
  643. BEGIN_INTERFACE
  644. #ifndef NO_BASEINTERFACE_FUNCS
  645.  
  646.     /* IUnknown methods */
  647.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  648.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  649.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  650.  
  651.     /* IDispatch methods */
  652.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  653.  
  654.     STDMETHOD(GetTypeInfo)(
  655.       THIS_
  656.       UINT itinfo,
  657.       LCID lcid,
  658.       ITypeInfo FAR* FAR* pptinfo) PURE;
  659.  
  660.     STDMETHOD(GetIDsOfNames)(
  661.       THIS_
  662.       REFIID riid,
  663.       OLECHAR FAR* FAR* rgszNames,
  664.       UINT cNames,
  665.       LCID lcid,
  666.       DISPID FAR* rgdispid) PURE;
  667.  
  668.     STDMETHOD(Invoke)(
  669.       THIS_
  670.       DISPID dispidMember,
  671.       REFIID riid,
  672.       LCID lcid,
  673.       WORD wFlags,
  674.       DISPPARAMS FAR* pdispparams,
  675.       VARIANT FAR* pvarResult,
  676.       EXCEPINFO FAR* pexcepinfo,
  677.       UINT FAR* puArgErr) PURE;
  678. #endif
  679.  
  680.     /* IMSMQQueueInfo methods */
  681.     STDMETHOD(get_QueueGuid)(THIS_ BSTR FAR* pbstrGuidQueue) PURE;
  682.     STDMETHOD(get_ServiceTypeGuid)(THIS_ BSTR FAR* pbstrGuidServiceType) PURE;
  683.     STDMETHOD(put_ServiceTypeGuid)(THIS_ BSTR bstrGuidServiceType) PURE;
  684.     STDMETHOD(get_Label)(THIS_ BSTR FAR* pbstrLabel) PURE;
  685.     STDMETHOD(put_Label)(THIS_ BSTR bstrLabel) PURE;
  686.     STDMETHOD(get_PathName)(THIS_ BSTR FAR* pbstrPathName) PURE;
  687.     STDMETHOD(put_PathName)(THIS_ BSTR bstrPathName) PURE;
  688.     STDMETHOD(get_FormatName)(THIS_ BSTR FAR* pbstrFormatName) PURE;
  689.     STDMETHOD(put_FormatName)(THIS_ BSTR bstrFormatName) PURE;
  690.     STDMETHOD(get_IsTransactional)(THIS_ VARIANT_BOOL FAR* pisTransactional) PURE;
  691.     STDMETHOD(get_PrivLevel)(THIS_ long FAR* plPrivLevel) PURE;
  692.     STDMETHOD(put_PrivLevel)(THIS_ long lPrivLevel) PURE;
  693.     STDMETHOD(get_Journal)(THIS_ long FAR* plJournal) PURE;
  694.     STDMETHOD(put_Journal)(THIS_ long lJournal) PURE;
  695.     STDMETHOD(get_Quota)(THIS_ long FAR* plQuota) PURE;
  696.     STDMETHOD(put_Quota)(THIS_ long lQuota) PURE;
  697.     STDMETHOD(get_BasePriority)(THIS_ long FAR* plBasePriority) PURE;
  698.     STDMETHOD(put_BasePriority)(THIS_ long lBasePriority) PURE;
  699.     STDMETHOD(get_CreateTime)(THIS_ VARIANT FAR* pvarCreateTime) PURE;
  700.     STDMETHOD(get_ModifyTime)(THIS_ VARIANT FAR* pvarModifyTime) PURE;
  701.     STDMETHOD(get_Authenticate)(THIS_ long FAR* plAuthenticate) PURE;
  702.     STDMETHOD(put_Authenticate)(THIS_ long lAuthenticate) PURE;
  703.     STDMETHOD(get_JournalQuota)(THIS_ long FAR* plJournalQuota) PURE;
  704.     STDMETHOD(put_JournalQuota)(THIS_ long lJournalQuota) PURE;
  705.     STDMETHOD(get_IsWorldReadable)(THIS_ VARIANT_BOOL FAR* pisWorldReadable) PURE;
  706.     STDMETHOD(Create)(THIS_ VARIANT FAR* IsTransactional, VARIANT FAR* IsWorldReadable) PURE;
  707.     STDMETHOD(Delete)(THIS) PURE;
  708.     STDMETHOD(Open)(THIS_ long Access, long ShareMode, IMSMQQueue FAR* FAR* ppq) PURE;
  709.     STDMETHOD(Refresh)(THIS) PURE;
  710.     STDMETHOD(Update)(THIS) PURE;
  711. };
  712.  
  713. DEFINE_GUID(CLSID_MSMQQueueInfo,0xD7D6E07CL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  714.  
  715. #ifdef __cplusplus
  716. class MSMQQueueInfo;
  717. #endif
  718.  
  719. DEFINE_GUID(IID_IMSMQQueueInfos,0xD7D6E07DL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  720.  
  721. /* Definition of interface: IMSMQQueueInfos */
  722. #undef INTERFACE
  723. #define INTERFACE IMSMQQueueInfos
  724.  
  725. DECLARE_INTERFACE_(IMSMQQueueInfos, IDispatch)
  726. {
  727. BEGIN_INTERFACE
  728. #ifndef NO_BASEINTERFACE_FUNCS
  729.  
  730.     /* IUnknown methods */
  731.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  732.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  733.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  734.  
  735.     /* IDispatch methods */
  736.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  737.  
  738.     STDMETHOD(GetTypeInfo)(
  739.       THIS_
  740.       UINT itinfo,
  741.       LCID lcid,
  742.       ITypeInfo FAR* FAR* pptinfo) PURE;
  743.  
  744.     STDMETHOD(GetIDsOfNames)(
  745.       THIS_
  746.       REFIID riid,
  747.       OLECHAR FAR* FAR* rgszNames,
  748.       UINT cNames,
  749.       LCID lcid,
  750.       DISPID FAR* rgdispid) PURE;
  751.  
  752.     STDMETHOD(Invoke)(
  753.       THIS_
  754.       DISPID dispidMember,
  755.       REFIID riid,
  756.       LCID lcid,
  757.       WORD wFlags,
  758.       DISPPARAMS FAR* pdispparams,
  759.       VARIANT FAR* pvarResult,
  760.       EXCEPINFO FAR* pexcepinfo,
  761.       UINT FAR* puArgErr) PURE;
  762. #endif
  763.  
  764.     /* IMSMQQueueInfos methods */
  765.     STDMETHOD(Reset)(THIS) PURE;
  766.     STDMETHOD(Next)(THIS_ IMSMQQueueInfo FAR* FAR* ppqinfoNext) PURE;
  767. };
  768.  
  769. DEFINE_GUID(CLSID_MSMQQueueInfos,0xD7D6E07EL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  770.  
  771. #ifdef __cplusplus
  772. class MSMQQueueInfos;
  773. #endif
  774.  
  775. typedef struct _MQBOID {
  776.     BYTE rgb[16];
  777. } MQBOID;
  778.  
  779. typedef struct _MQBOID MQXACTUOW;
  780.  
  781. typedef long MQISOLEVEL;
  782.  
  783. typedef struct _MQXACTTRANSINFO {
  784.     MQXACTUOW uow;
  785.     MQISOLEVEL isoLevel;
  786.     ULONG isoFlags;
  787.     DWORD grfTCSupported;
  788.     DWORD grfRMSupported;
  789.     DWORD grfTCSupportedRetaining;
  790.     DWORD grfRMSupportedRetaining;
  791. } MQXACTTRANSINFO;
  792.  
  793. DEFINE_GUID(IID_IMSMQTransaction,0xD7D6E07FL,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  794.  
  795. /* Definition of interface: IMSMQTransaction */
  796. #undef INTERFACE
  797. #define INTERFACE IMSMQTransaction
  798.  
  799. DECLARE_INTERFACE_(IMSMQTransaction, IDispatch)
  800. {
  801. BEGIN_INTERFACE
  802. #ifndef NO_BASEINTERFACE_FUNCS
  803.  
  804.     /* IUnknown methods */
  805.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  806.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  807.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  808.  
  809.     /* IDispatch methods */
  810.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  811.  
  812.     STDMETHOD(GetTypeInfo)(
  813.       THIS_
  814.       UINT itinfo,
  815.       LCID lcid,
  816.       ITypeInfo FAR* FAR* pptinfo) PURE;
  817.  
  818.     STDMETHOD(GetIDsOfNames)(
  819.       THIS_
  820.       REFIID riid,
  821.       OLECHAR FAR* FAR* rgszNames,
  822.       UINT cNames,
  823.       LCID lcid,
  824.       DISPID FAR* rgdispid) PURE;
  825.  
  826.     STDMETHOD(Invoke)(
  827.       THIS_
  828.       DISPID dispidMember,
  829.       REFIID riid,
  830.       LCID lcid,
  831.       WORD wFlags,
  832.       DISPPARAMS FAR* pdispparams,
  833.       VARIANT FAR* pvarResult,
  834.       EXCEPINFO FAR* pexcepinfo,
  835.       UINT FAR* puArgErr) PURE;
  836. #endif
  837.  
  838.     /* IMSMQTransaction methods */
  839.     STDMETHOD(get_Transaction)(THIS_ long FAR* plTransaction) PURE;
  840.     STDMETHOD(Commit)(THIS_ VARIANT FAR* fRetaining, VARIANT FAR* grfTC, VARIANT FAR* grfRM) PURE;
  841.     STDMETHOD(Abort)(THIS_ VARIANT FAR* fRetaining, VARIANT FAR* fAsync) PURE;
  842. };
  843.  
  844. DEFINE_GUID(CLSID_MSMQTransaction,0xD7D6E080L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  845.  
  846. #ifdef __cplusplus
  847. class MSMQTransaction;
  848. #endif
  849.  
  850. DEFINE_GUID(IID_IMSMQCoordinatedTransactionDispenser,0xD7D6E081L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  851.  
  852. /* Definition of interface: IMSMQCoordinatedTransactionDispenser */
  853. #undef INTERFACE
  854. #define INTERFACE IMSMQCoordinatedTransactionDispenser
  855.  
  856. DECLARE_INTERFACE_(IMSMQCoordinatedTransactionDispenser, IDispatch)
  857. {
  858. BEGIN_INTERFACE
  859. #ifndef NO_BASEINTERFACE_FUNCS
  860.  
  861.     /* IUnknown methods */
  862.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  863.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  864.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  865.  
  866.     /* IDispatch methods */
  867.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  868.  
  869.     STDMETHOD(GetTypeInfo)(
  870.       THIS_
  871.       UINT itinfo,
  872.       LCID lcid,
  873.       ITypeInfo FAR* FAR* pptinfo) PURE;
  874.  
  875.     STDMETHOD(GetIDsOfNames)(
  876.       THIS_
  877.       REFIID riid,
  878.       OLECHAR FAR* FAR* rgszNames,
  879.       UINT cNames,
  880.       LCID lcid,
  881.       DISPID FAR* rgdispid) PURE;
  882.  
  883.     STDMETHOD(Invoke)(
  884.       THIS_
  885.       DISPID dispidMember,
  886.       REFIID riid,
  887.       LCID lcid,
  888.       WORD wFlags,
  889.       DISPPARAMS FAR* pdispparams,
  890.       VARIANT FAR* pvarResult,
  891.       EXCEPINFO FAR* pexcepinfo,
  892.       UINT FAR* puArgErr) PURE;
  893. #endif
  894.  
  895.     /* IMSMQCoordinatedTransactionDispenser methods */
  896.     STDMETHOD(BeginTransaction)(THIS_ IMSMQTransaction FAR* FAR* ptransaction) PURE;
  897. };
  898.  
  899. DEFINE_GUID(CLSID_MSMQCoordinatedTransactionDispenser,0xD7D6E082L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  900.  
  901. #ifdef __cplusplus
  902. class MSMQCoordinatedTransactionDispenser;
  903. #endif
  904.  
  905. DEFINE_GUID(IID_IMSMQTransactionDispenser,0xD7D6E083L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  906.  
  907. /* Definition of interface: IMSMQTransactionDispenser */
  908. #undef INTERFACE
  909. #define INTERFACE IMSMQTransactionDispenser
  910.  
  911. DECLARE_INTERFACE_(IMSMQTransactionDispenser, IDispatch)
  912. {
  913. BEGIN_INTERFACE
  914. #ifndef NO_BASEINTERFACE_FUNCS
  915.  
  916.     /* IUnknown methods */
  917.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  918.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  919.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  920.  
  921.     /* IDispatch methods */
  922.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  923.  
  924.     STDMETHOD(GetTypeInfo)(
  925.       THIS_
  926.       UINT itinfo,
  927.       LCID lcid,
  928.       ITypeInfo FAR* FAR* pptinfo) PURE;
  929.  
  930.     STDMETHOD(GetIDsOfNames)(
  931.       THIS_
  932.       REFIID riid,
  933.       OLECHAR FAR* FAR* rgszNames,
  934.       UINT cNames,
  935.       LCID lcid,
  936.       DISPID FAR* rgdispid) PURE;
  937.  
  938.     STDMETHOD(Invoke)(
  939.       THIS_
  940.       DISPID dispidMember,
  941.       REFIID riid,
  942.       LCID lcid,
  943.       WORD wFlags,
  944.       DISPPARAMS FAR* pdispparams,
  945.       VARIANT FAR* pvarResult,
  946.       EXCEPINFO FAR* pexcepinfo,
  947.       UINT FAR* puArgErr) PURE;
  948. #endif
  949.  
  950.     /* IMSMQTransactionDispenser methods */
  951.     STDMETHOD(BeginTransaction)(THIS_ IMSMQTransaction FAR* FAR* ptransaction) PURE;
  952. };
  953.  
  954. DEFINE_GUID(CLSID_MSMQTransactionDispenser,0xD7D6E084L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  955.  
  956. #ifdef __cplusplus
  957. class MSMQTransactionDispenser;
  958. #endif
  959.  
  960. DEFINE_GUID(IID_IMSMQApplication,0xD7D6E085L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  961.  
  962. /* Definition of interface: IMSMQApplication */
  963. #undef INTERFACE
  964. #define INTERFACE IMSMQApplication
  965.  
  966. DECLARE_INTERFACE_(IMSMQApplication, IDispatch)
  967. {
  968. BEGIN_INTERFACE
  969. #ifndef NO_BASEINTERFACE_FUNCS
  970.  
  971.     /* IUnknown methods */
  972.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  973.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  974.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  975.  
  976.     /* IDispatch methods */
  977.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  978.  
  979.     STDMETHOD(GetTypeInfo)(
  980.       THIS_
  981.       UINT itinfo,
  982.       LCID lcid,
  983.       ITypeInfo FAR* FAR* pptinfo) PURE;
  984.  
  985.     STDMETHOD(GetIDsOfNames)(
  986.       THIS_
  987.       REFIID riid,
  988.       OLECHAR FAR* FAR* rgszNames,
  989.       UINT cNames,
  990.       LCID lcid,
  991.       DISPID FAR* rgdispid) PURE;
  992.  
  993.     STDMETHOD(Invoke)(
  994.       THIS_
  995.       DISPID dispidMember,
  996.       REFIID riid,
  997.       LCID lcid,
  998.       WORD wFlags,
  999.       DISPPARAMS FAR* pdispparams,
  1000.       VARIANT FAR* pvarResult,
  1001.       EXCEPINFO FAR* pexcepinfo,
  1002.       UINT FAR* puArgErr) PURE;
  1003. #endif
  1004.  
  1005.     /* IMSMQApplication methods */
  1006.     STDMETHOD(MachineIdOfMachineName)(THIS_ BSTR MachineName, BSTR FAR* pbstrGuid) PURE;
  1007. };
  1008.  
  1009. DEFINE_GUID(CLSID_MSMQApplication,0xD7D6E086L,0xDCCD,0x11D0,0xAA,0x4B,0x00,0x60,0x97,0x0D,0xEB,0xAE);
  1010.  
  1011. #ifdef __cplusplus
  1012. class MSMQApplication;
  1013. #endif
  1014.  
  1015. #pragma option pop /*P_O_Pop*/
  1016. #endif
  1017.