home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / mqoai.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  33KB  |  1,015 lines

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