mq.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef __MQ_H__
  7. #define __MQ_H__
  8. #ifndef __ITransaction_FWD_DEFINED__
  9. #define __ITransaction_FWD_DEFINED__
  10. typedef struct ITransaction ITransaction;
  11. #endif
  12. typedef struct tagPROPVARIANT tagMQPROPVARIANT;
  13. typedef tagMQPROPVARIANT MQPROPVARIANT;
  14. #define PRLT (0)
  15. #define PRLE (1)
  16. #define PRGT (2)
  17. #define PRGE (3)
  18. #define PREQ (4)
  19. #define PRNE (5)
  20. typedef struct tagMQPROPERTYRESTRICTION {
  21. ULONG rel;
  22. PROPID prop;
  23. MQPROPVARIANT prval;
  24. } MQPROPERTYRESTRICTION;
  25. typedef struct tagMQRESTRICTION {
  26. ULONG cRes;
  27. MQPROPERTYRESTRICTION *paPropRes;
  28. } MQRESTRICTION;
  29. typedef struct tagMQCOLUMNSET {
  30. ULONG cCol;
  31. PROPID *aCol;
  32. } MQCOLUMNSET;
  33. #define QUERY_SORTASCEND (0)
  34. #define QUERY_SORTDESCEND (1)
  35. typedef struct tagMQSORTKEY {
  36. PROPID propColumn;
  37. ULONG dwOrder;
  38. } MQSORTKEY;
  39. typedef struct tagMQSORTSET {
  40. ULONG cCol;
  41. MQSORTKEY *aCol;
  42. } MQSORTSET;
  43. typedef HANDLE QUEUEHANDLE;
  44. typedef PROPID MSGPROPID;
  45. typedef struct tagMQMSGPROPS {
  46. DWORD cProp;
  47. MSGPROPID *aPropID;
  48. MQPROPVARIANT *aPropVar;
  49. HRESULT *aStatus;
  50. } MQMSGPROPS;
  51. typedef PROPID QUEUEPROPID;
  52. typedef struct tagMQQUEUEPROPS {
  53. DWORD cProp;
  54. QUEUEPROPID *aPropID;
  55. MQPROPVARIANT *aPropVar;
  56. HRESULT *aStatus;
  57. } MQQUEUEPROPS;
  58. typedef PROPID QMPROPID;
  59. typedef struct tagMQQMPROPS {
  60. DWORD cProp;
  61. QMPROPID *aPropID;
  62. MQPROPVARIANT *aPropVar;
  63. HRESULT *aStatus;
  64. } MQQMPROPS;
  65. typedef struct tagMQPRIVATEPROPS {
  66. DWORD cProp;
  67. QMPROPID *aPropID;
  68. MQPROPVARIANT *aPropVar;
  69. HRESULT *aStatus;
  70. } MQPRIVATEPROPS;
  71. typedef PROPID MGMTPROPID;
  72. typedef struct tagMQMGMTPROPS {
  73. DWORD cProp;
  74. MGMTPROPID *aPropID;
  75. MQPROPVARIANT *aPropVar;
  76. HRESULT *aStatus;
  77. } MQMGMTPROPS;
  78. typedef struct tagSEQUENCE_INFO {
  79. LONGLONG SeqID;
  80. ULONG SeqNo;
  81. ULONG PrevNo;
  82. } SEQUENCE_INFO;
  83. #define MQ_RECEIVE_ACCESS 0x00000001
  84. #define MQ_SEND_ACCESS 0x00000002
  85. #define MQ_PEEK_ACCESS 0x00000020
  86. #define MQ_ADMIN_ACCESS 0x00000080
  87. #define MQ_DENY_NONE 0x00000000
  88. #define MQ_DENY_RECEIVE_SHARE 0x00000001
  89. #define MQ_ACTION_RECEIVE 0x00000000
  90. #define MQ_ACTION_PEEK_CURRENT 0x80000000
  91. #define MQ_ACTION_PEEK_NEXT 0x80000001
  92. #define MQ_LOOKUP_PEEK_CURRENT 0x40000010
  93. #define MQ_LOOKUP_PEEK_NEXT 0x40000011
  94. #define MQ_LOOKUP_PEEK_PREV 0x40000012
  95. #define MQ_LOOKUP_PEEK_FIRST 0x40000014
  96. #define MQ_LOOKUP_PEEK_LAST 0x40000018
  97. #define MQ_LOOKUP_RECEIVE_CURRENT 0x40000020
  98. #define MQ_LOOKUP_RECEIVE_NEXT 0x40000021
  99. #define MQ_LOOKUP_RECEIVE_PREV 0x40000022
  100. #define MQ_LOOKUP_RECEIVE_FIRST 0x40000024
  101. #define MQ_LOOKUP_RECEIVE_LAST 0x40000028
  102. #define MQ_NO_TRANSACTION NULL
  103. #define MQ_MTS_TRANSACTION (ITransaction *)1
  104. #define MQ_XA_TRANSACTION (ITransaction *)2
  105. #define MQ_SINGLE_MESSAGE (ITransaction *)3
  106. #define MQ_MIN_PRIORITY 0
  107. #define MQ_MAX_PRIORITY 7
  108. #define PROPID_M_BASE 0
  109. #define PROPID_M_CLASS (PROPID_M_BASE + 1)
  110. #define PROPID_M_MSGID (PROPID_M_BASE + 2)
  111. #define PROPID_M_CORRELATIONID (PROPID_M_BASE + 3)
  112. #define PROPID_M_PRIORITY (PROPID_M_BASE + 4)
  113. #define PROPID_M_DELIVERY (PROPID_M_BASE + 5)
  114. #define PROPID_M_ACKNOWLEDGE (PROPID_M_BASE + 6)
  115. #define PROPID_M_JOURNAL (PROPID_M_BASE + 7)
  116. #define PROPID_M_APPSPECIFIC (PROPID_M_BASE + 8)
  117. #define PROPID_M_BODY (PROPID_M_BASE + 9)
  118. #define PROPID_M_BODY_SIZE (PROPID_M_BASE + 10)
  119. #define PROPID_M_LABEL (PROPID_M_BASE + 11)
  120. #define PROPID_M_LABEL_LEN (PROPID_M_BASE + 12)
  121. #define PROPID_M_TIME_TO_REACH_QUEUE (PROPID_M_BASE + 13)
  122. #define PROPID_M_TIME_TO_BE_RECEIVED (PROPID_M_BASE + 14)
  123. #define PROPID_M_RESP_QUEUE (PROPID_M_BASE + 15)
  124. #define PROPID_M_RESP_QUEUE_LEN (PROPID_M_BASE + 16)
  125. #define PROPID_M_ADMIN_QUEUE (PROPID_M_BASE + 17)
  126. #define PROPID_M_ADMIN_QUEUE_LEN (PROPID_M_BASE + 18)
  127. #define PROPID_M_VERSION (PROPID_M_BASE + 19)
  128. #define PROPID_M_SENDERID (PROPID_M_BASE + 20)
  129. #define PROPID_M_SENDERID_LEN (PROPID_M_BASE + 21)
  130. #define PROPID_M_SENDERID_TYPE (PROPID_M_BASE + 22)
  131. #define PROPID_M_PRIV_LEVEL (PROPID_M_BASE + 23)
  132. #define PROPID_M_AUTH_LEVEL (PROPID_M_BASE + 24)
  133. #define PROPID_M_AUTHENTICATED (PROPID_M_BASE + 25)
  134. #define PROPID_M_HASH_ALG (PROPID_M_BASE + 26)
  135. #define PROPID_M_ENCRYPTION_ALG (PROPID_M_BASE + 27)
  136. #define PROPID_M_SENDER_CERT (PROPID_M_BASE + 28)
  137. #define PROPID_M_SENDER_CERT_LEN (PROPID_M_BASE + 29)
  138. #define PROPID_M_SRC_MACHINE_ID (PROPID_M_BASE + 30)
  139. #define PROPID_M_SENTTIME (PROPID_M_BASE + 31)
  140. #define PROPID_M_ARRIVEDTIME (PROPID_M_BASE + 32)
  141. #define PROPID_M_DEST_QUEUE (PROPID_M_BASE + 33)
  142. #define PROPID_M_DEST_QUEUE_LEN (PROPID_M_BASE + 34)
  143. #define PROPID_M_EXTENSION (PROPID_M_BASE + 35)
  144. #define PROPID_M_EXTENSION_LEN (PROPID_M_BASE + 36)
  145. #define PROPID_M_SECURITY_CONTEXT (PROPID_M_BASE + 37)
  146. #define PROPID_M_CONNECTOR_TYPE (PROPID_M_BASE + 38)
  147. #define PROPID_M_XACT_STATUS_QUEUE (PROPID_M_BASE + 39)
  148. #define PROPID_M_XACT_STATUS_QUEUE_LEN (PROPID_M_BASE + 40)
  149. #define PROPID_M_TRACE (PROPID_M_BASE + 41)
  150. #define PROPID_M_BODY_TYPE (PROPID_M_BASE + 42)
  151. #define PROPID_M_DEST_SYMM_KEY (PROPID_M_BASE + 43)
  152. #define PROPID_M_DEST_SYMM_KEY_LEN (PROPID_M_BASE + 44)
  153. #define PROPID_M_SIGNATURE (PROPID_M_BASE + 45)
  154. #define PROPID_M_SIGNATURE_LEN (PROPID_M_BASE + 46)
  155. #define PROPID_M_PROV_TYPE (PROPID_M_BASE + 47)
  156. #define PROPID_M_PROV_NAME (PROPID_M_BASE + 48)
  157. #define PROPID_M_PROV_NAME_LEN (PROPID_M_BASE + 49)
  158. #define PROPID_M_FIRST_IN_XACT (PROPID_M_BASE + 50)
  159. #define PROPID_M_LAST_IN_XACT (PROPID_M_BASE + 51)
  160. #define PROPID_M_XACTID (PROPID_M_BASE + 52)
  161. #define PROPID_M_AUTHENTICATED_EX (PROPID_M_BASE + 53)
  162. #define PROPID_M_RESP_FORMAT_NAME (PROPID_M_BASE + 54)
  163. #define PROPID_M_RESP_FORMAT_NAME_LEN (PROPID_M_BASE + 55)
  164. #define PROPID_M_DEST_FORMAT_NAME (PROPID_M_BASE + 58)
  165. #define PROPID_M_DEST_FORMAT_NAME_LEN (PROPID_M_BASE + 59)
  166. #define PROPID_M_LOOKUPID (PROPID_M_BASE + 60)
  167. #define PROPID_M_SOAP_ENVELOPE (PROPID_M_BASE + 61)
  168. #define PROPID_M_SOAP_ENVELOPE_LEN (PROPID_M_BASE + 62)
  169. #define PROPID_M_COMPOUND_MESSAGE (PROPID_M_BASE + 63)
  170. #define PROPID_M_COMPOUND_MESSAGE_SIZE (PROPID_M_BASE + 64)
  171. #define PROPID_M_SOAP_HEADER (PROPID_M_BASE + 65)
  172. #define PROPID_M_SOAP_BODY (PROPID_M_BASE + 66)
  173. #define PROPID_M_MSGID_SIZE 20
  174. #define PROPID_M_CORRELATIONID_SIZE 20
  175. #define PROPID_M_XACTID_SIZE 20
  176. #define MQCLASS_CODE(s,r,code) ((USHORT)(((s) << 15) | ((r) << 14) | (code)))
  177. #define MQCLASS_NACK(c) ((c) & 0x8000)
  178. #define MQCLASS_RECEIVE(c) ((c) & 0x4000)
  179. #define MQCLASS_NACK_HTTP(c) (((c) & 0xA000)==0xA000)
  180. #define MQMSG_CLASS_NORMAL MQCLASS_CODE(0,0,0x00)
  181. #define MQMSG_CLASS_REPORT MQCLASS_CODE(0,0,0x01)
  182. #define MQMSG_CLASS_ACK_REACH_QUEUE MQCLASS_CODE(0,0,0x02)
  183. #define MQMSG_CLASS_ACK_RECEIVE MQCLASS_CODE(0,1,0x00)
  184. #define MQMSG_CLASS_NACK_BAD_DST_Q MQCLASS_CODE(1,0,0x00)
  185. #define MQMSG_CLASS_NACK_PURGED MQCLASS_CODE(1,0,0x01)
  186. #define MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT MQCLASS_CODE(1,0,0x02)
  187. #define MQMSG_CLASS_NACK_Q_EXCEED_QUOTA MQCLASS_CODE(1,0,0x03)
  188. #define MQMSG_CLASS_NACK_ACCESS_DENIED MQCLASS_CODE(1,0,0x04)
  189. #define MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED MQCLASS_CODE(1,0,0x05)
  190. #define MQMSG_CLASS_NACK_BAD_SIGNATURE MQCLASS_CODE(1,0,0x06)
  191. #define MQMSG_CLASS_NACK_BAD_ENCRYPTION MQCLASS_CODE(1,0,0x07)
  192. #define MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT MQCLASS_CODE(1,0,0x08)
  193. #define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q MQCLASS_CODE(1,0,0x09)
  194. #define MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG MQCLASS_CODE(1,0,0x0A)
  195. #define MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER MQCLASS_CODE(1,0,0x0B)
  196. #define MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED MQCLASS_CODE(1,0,0x0C)
  197. #define MQMSG_CLASS_NACK_Q_DELETED MQCLASS_CODE(1,1,0x00)
  198. #define MQMSG_CLASS_NACK_Q_PURGED MQCLASS_CODE(1,1,0x01)
  199. #define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT MQCLASS_CODE(1,1,0x02)
  200. #define MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER MQCLASS_CODE(1,1,0x03)
  201. #define MQMSG_ACKNOWLEDGMENT_NONE 0x00
  202. #define MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL 0x01
  203. #define MQMSG_ACKNOWLEDGMENT_POS_RECEIVE 0x02
  204. #define MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL 0x04
  205. #define MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE 0x08
  206. #define MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL))
  207. #define MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL))
  208. #define MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE))
  209. #define MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE ((UCHAR)(MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL | MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE | MQMSG_ACKNOWLEDGMENT_POS_RECEIVE))
  210. #define MQMSG_DELIVERY_EXPRESS 0
  211. #define MQMSG_DELIVERY_RECOVERABLE 1
  212. #define MQMSG_JOURNAL_NONE 0
  213. #define MQMSG_DEADLETTER 1
  214. #define MQMSG_JOURNAL 2
  215. #define MQMSG_TRACE_NONE 0
  216. #define MQMSG_SEND_ROUTE_TO_REPORT_QUEUE 1
  217. #define MQMSG_SENDERID_TYPE_NONE 0
  218. #define MQMSG_SENDERID_TYPE_SID 1
  219. #define MQMSG_PRIV_LEVEL_NONE 0
  220. #define MQMSG_PRIV_LEVEL_BODY_BASE 0x01
  221. #define MQMSG_PRIV_LEVEL_BODY_ENHANCED 0x03
  222. #define MQMSG_AUTH_LEVEL_NONE 0
  223. #define MQMSG_AUTH_LEVEL_ALWAYS 1
  224. #define MQMSG_AUTH_LEVEL_MSMQ10 2
  225. #define MQMSG_AUTH_LEVEL_MSMQ20 4
  226. #define MQMSG_AUTH_LEVEL_SIG10 2
  227. #define MQMSG_AUTH_LEVEL_SIG20 4
  228. #define MQMSG_AUTH_LEVEL_SIG30 8
  229. #define MQMSG_AUTHENTICATION_NOT_REQUESTED 0
  230. #define MQMSG_AUTHENTICATION_REQUESTED 1
  231. #define MQMSG_AUTHENTICATION_REQUESTED_EX 3
  232. #define MQMSG_AUTHENTICATED_SIG10 1
  233. #define MQMSG_AUTHENTICATED_SIG20 3
  234. #define MQMSG_AUTHENTICATED_SIG30 5
  235. #define MQMSG_AUTHENTICATED_SIGXML 9
  236. #define MQMSG_NOT_FIRST_IN_XACT 0
  237. #define MQMSG_FIRST_IN_XACT 1
  238. #define MQMSG_NOT_LAST_IN_XACT 0
  239. #define MQMSG_LAST_IN_XACT 1
  240. #define PROPID_Q_BASE 100
  241. #define PROPID_Q_INSTANCE (PROPID_Q_BASE + 1)
  242. #define PROPID_Q_TYPE (PROPID_Q_BASE + 2)
  243. #define PROPID_Q_PATHNAME (PROPID_Q_BASE + 3)
  244. #define PROPID_Q_JOURNAL (PROPID_Q_BASE + 4)
  245. #define PROPID_Q_QUOTA (PROPID_Q_BASE + 5)
  246. #define PROPID_Q_BASEPRIORITY (PROPID_Q_BASE + 6)
  247. #define PROPID_Q_JOURNAL_QUOTA (PROPID_Q_BASE + 7)
  248. #define PROPID_Q_LABEL (PROPID_Q_BASE + 8)
  249. #define PROPID_Q_CREATE_TIME (PROPID_Q_BASE + 9)
  250. #define PROPID_Q_MODIFY_TIME (PROPID_Q_BASE + 10)
  251. #define PROPID_Q_AUTHENTICATE (PROPID_Q_BASE + 11)
  252. #define PROPID_Q_PRIV_LEVEL (PROPID_Q_BASE + 12)
  253. #define PROPID_Q_TRANSACTION (PROPID_Q_BASE + 13)
  254. #define PROPID_Q_PATHNAME_DNS (PROPID_Q_BASE + 24)
  255. #define PROPID_Q_MULTICAST_ADDRESS (PROPID_Q_BASE + 25)
  256. #define PROPID_Q_ADS_PATH (PROPID_Q_BASE + 26)
  257. #define MQ_JOURNAL_NONE (unsigned char)0
  258. #define MQ_JOURNAL (unsigned char)1
  259. #define MQ_QTYPE_REPORT {0x55ee8f32,0xcce9,0x11cf,{0xb1,0x8,0x0,0x20,0xaf,0xd6,0x1c,0xe9}}
  260. #define MQ_QTYPE_TEST {0x55ee8f33,0xcce9,0x11cf,{0xb1,0x8,0x0,0x20,0xaf,0xd6,0x1c,0xe9}}
  261. #define MQ_TRANSACTIONAL_NONE (unsigned char)0
  262. #define MQ_TRANSACTIONAL (unsigned char)1
  263. #define MQ_AUTHENTICATE_NONE (unsigned char)0
  264. #define MQ_AUTHENTICATE (unsigned char)1
  265. #define MQ_PRIV_LEVEL_NONE (unsigned __LONG32)0
  266. #define MQ_PRIV_LEVEL_OPTIONAL (unsigned __LONG32)1
  267. #define MQ_PRIV_LEVEL_BODY (unsigned __LONG32)2
  268. #define PROPID_QM_BASE 200
  269. #define PROPID_QM_SITE_ID (PROPID_QM_BASE + 1)
  270. #define PROPID_QM_MACHINE_ID (PROPID_QM_BASE + 2)
  271. #define PROPID_QM_PATHNAME (PROPID_QM_BASE + 3)
  272. #define PROPID_QM_CONNECTION (PROPID_QM_BASE + 4)
  273. #define PROPID_QM_ENCRYPTION_PK (PROPID_QM_BASE + 5)
  274. #define PROPID_QM_ENCRYPTION_PK_BASE (PROPID_QM_BASE + 31)
  275. #define PROPID_QM_ENCRYPTION_PK_ENHANCED (PROPID_QM_BASE + 32)
  276. #define PROPID_QM_PATHNAME_DNS (PROPID_QM_BASE + 33)
  277. #define PROPID_PC_BASE 5800
  278. #define PROPID_PC_VERSION (PROPID_PC_BASE + 1)
  279. #define PROPID_PC_DS_ENABLED (PROPID_PC_BASE + 2)
  280. #define PROPID_MGMT_MSMQ_BASE 0
  281. #define PROPID_MGMT_MSMQ_ACTIVEQUEUES (PROPID_MGMT_MSMQ_BASE + 1)
  282. #define PROPID_MGMT_MSMQ_PRIVATEQ (PROPID_MGMT_MSMQ_BASE + 2)
  283. #define PROPID_MGMT_MSMQ_DSSERVER (PROPID_MGMT_MSMQ_BASE + 3)
  284. #define PROPID_MGMT_MSMQ_CONNECTED (PROPID_MGMT_MSMQ_BASE + 4)
  285. #define PROPID_MGMT_MSMQ_TYPE (PROPID_MGMT_MSMQ_BASE + 5)
  286. #define PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES (PROPID_MGMT_QUEUE_BASE + 6)
  287. #define MSMQ_CONNECTED L"CONNECTED"
  288. #define MSMQ_DISCONNECTED L"DISCONNECTED"
  289. #define PROPID_MGMT_QUEUE_BASE 0
  290. #define PROPID_MGMT_QUEUE_PATHNAME (PROPID_MGMT_QUEUE_BASE + 1)
  291. #define PROPID_MGMT_QUEUE_FORMATNAME (PROPID_MGMT_QUEUE_BASE + 2)
  292. #define PROPID_MGMT_QUEUE_TYPE (PROPID_MGMT_QUEUE_BASE + 3)
  293. #define PROPID_MGMT_QUEUE_LOCATION (PROPID_MGMT_QUEUE_BASE + 4)
  294. #define PROPID_MGMT_QUEUE_XACT (PROPID_MGMT_QUEUE_BASE + 5)
  295. #define PROPID_MGMT_QUEUE_FOREIGN (PROPID_MGMT_QUEUE_BASE + 6)
  296. #define PROPID_MGMT_QUEUE_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 7)
  297. #define PROPID_MGMT_QUEUE_BYTES_IN_QUEUE (PROPID_MGMT_QUEUE_BASE + 8)
  298. #define PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT (PROPID_MGMT_QUEUE_BASE + 9)
  299. #define PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL (PROPID_MGMT_QUEUE_BASE + 10)
  300. #define PROPID_MGMT_QUEUE_STATE (PROPID_MGMT_QUEUE_BASE + 11)
  301. #define PROPID_MGMT_QUEUE_NEXTHOPS (PROPID_MGMT_QUEUE_BASE + 12)
  302. #define PROPID_MGMT_QUEUE_EOD_LAST_ACK (PROPID_MGMT_QUEUE_BASE + 13)
  303. #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME (PROPID_MGMT_QUEUE_BASE + 14)
  304. #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 15)
  305. #define PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 16)
  306. #define PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK (PROPID_MGMT_QUEUE_BASE + 17)
  307. #define PROPID_MGMT_QUEUE_EOD_NEXT_SEQ (PROPID_MGMT_QUEUE_BASE + 18)
  308. #define PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT (PROPID_MGMT_QUEUE_BASE + 19)
  309. #define PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT (PROPID_MGMT_QUEUE_BASE + 20)
  310. #define PROPID_MGMT_QUEUE_EOD_RESEND_TIME (PROPID_MGMT_QUEUE_BASE + 21)
  311. #define PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL (PROPID_MGMT_QUEUE_BASE + 22)
  312. #define PROPID_MGMT_QUEUE_EOD_RESEND_COUNT (PROPID_MGMT_QUEUE_BASE + 23)
  313. #define PROPID_MGMT_QUEUE_EOD_SOURCE_INFO (PROPID_MGMT_QUEUE_BASE + 24)
  314. #define PROPID_MGMT_QUEUE_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_QUEUE
  315. #define PROPID_MGMT_QUEUE_JOURNAL_USED_QUOTA PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL
  316. #define MGMT_QUEUE_TYPE_PUBLIC L"PUBLIC"
  317. #define MGMT_QUEUE_TYPE_PRIVATE L"PRIVATE"
  318. #define MGMT_QUEUE_TYPE_MACHINE L"MACHINE"
  319. #define MGMT_QUEUE_TYPE_CONNECTOR L"CONNECTOR"
  320. #define MGMT_QUEUE_TYPE_MULTICAST L"MULTICAST"
  321. #define MGMT_QUEUE_STATE_LOCAL L"LOCAL CONNECTION"
  322. #define MGMT_QUEUE_STATE_NONACTIVE L"INACTIVE"
  323. #define MGMT_QUEUE_STATE_WAITING L"WAITING"
  324. #define MGMT_QUEUE_STATE_NEED_VALIDATE L"NEED VALIDATION"
  325. #define MGMT_QUEUE_STATE_ONHOLD L"ONHOLD"
  326. #define MGMT_QUEUE_STATE_CONNECTED L"CONNECTED"
  327. #define MGMT_QUEUE_STATE_DISCONNECTING L"DISCONNECTING"
  328. #define MGMT_QUEUE_STATE_DISCONNECTED L"DISCONNECTED"
  329. #define MGMT_QUEUE_STATE_LOCKED L"LOCKED"
  330. #define MGMT_QUEUE_LOCAL_LOCATION L"LOCAL"
  331. #define MGMT_QUEUE_REMOTE_LOCATION L"REMOTE"
  332. #define MGMT_QUEUE_UNKNOWN_TYPE L"UNKNOWN"
  333. #define MGMT_QUEUE_CORRECT_TYPE L"YES"
  334. #define MGMT_QUEUE_INCORRECT_TYPE L"NO"
  335. #define MGMT_QUEUE_TRANSACTIONAL_TYPE L"YES"
  336. #define MGMT_QUEUE_NOT_TRANSACTIONAL_TYPE L"NO"
  337. #define MGMT_QUEUE_FOREIGN_TYPE L"YES"
  338. #define MGMT_QUEUE_NOT_FOREIGN_TYPE L"NO"
  339. #define MO_MACHINE_TOKEN L"MACHINE"
  340. #define MO_QUEUE_TOKEN L"QUEUE"
  341. #define MACHINE_ACTION_CONNECT L"CONNECT"
  342. #define MACHINE_ACTION_DISCONNECT L"DISCONNECT"
  343. #define MACHINE_ACTION_TIDY L"TIDY"
  344. #define QUEUE_ACTION_PAUSE L"PAUSE"
  345. #define QUEUE_ACTION_RESUME L"RESUME"
  346. #define QUEUE_ACTION_EOD_RESEND L"EOD_RESEND"
  347. #define LONG_LIVED 0xfffffffe
  348. #define MQ_MAX_Q_NAME_LEN 124
  349. #define MQ_MAX_Q_LABEL_LEN 124
  350. #define MQ_MAX_MSG_LABEL_LEN 250
  351. #define MQ_OK ((HRESULT)0)
  352. #define MQ_INFORMATION_PROPERTY ((HRESULT)0x400E0001)
  353. #define MQ_INFORMATION_ILLEGAL_PROPERTY ((HRESULT)0x400E0002)
  354. #define MQ_INFORMATION_PROPERTY_IGNORED ((HRESULT)0x400E0003)
  355. #define MQ_INFORMATION_UNSUPPORTED_PROPERTY ((HRESULT)0x400E0004)
  356. #define MQ_INFORMATION_DUPLICATE_PROPERTY ((HRESULT)0x400E0005)
  357. #define MQ_INFORMATION_OPERATION_PENDING ((HRESULT)0x400E0006)
  358. #define MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL ((HRESULT)0x400E0009)
  359. #define MQ_INFORMATION_INTERNAL_USER_CERT_EXIST ((HRESULT)0x400E000A)
  360. #define MQ_INFORMATION_OWNER_IGNORED ((HRESULT)0x400E000B)
  361. #define MQ_ERROR ((HRESULT)0xC00E0001)
  362. #define MQ_ERROR_PROPERTY ((HRESULT)0xC00E0002)
  363. #define MQ_ERROR_QUEUE_NOT_FOUND ((HRESULT)0xC00E0003)
  364. #define MQ_ERROR_QUEUE_NOT_ACTIVE ((HRESULT)0xC00E0004)
  365. #define MQ_ERROR_QUEUE_EXISTS ((HRESULT)0xC00E0005)
  366. #define MQ_ERROR_INVALID_PARAMETER ((HRESULT)0xC00E0006)
  367. #define MQ_ERROR_INVALID_HANDLE ((HRESULT)0xC00E0007)
  368. #define MQ_ERROR_OPERATION_CANCELLED ((HRESULT)0xC00E0008)
  369. #define MQ_ERROR_SHARING_VIOLATION ((HRESULT)0xC00E0009)
  370. #define MQ_ERROR_SERVICE_NOT_AVAILABLE ((HRESULT)0xC00E000B)
  371. #define MQ_ERROR_MACHINE_NOT_FOUND ((HRESULT)0xC00E000D)
  372. #define MQ_ERROR_ILLEGAL_SORT ((HRESULT)0xC00E0010)
  373. #define MQ_ERROR_ILLEGAL_USER ((HRESULT)0xC00E0011)
  374. #define MQ_ERROR_NO_DS ((HRESULT)0xC00E0013)
  375. #define MQ_ERROR_ILLEGAL_QUEUE_PATHNAME ((HRESULT)0xC00E0014)
  376. #define MQ_ERROR_ILLEGAL_PROPERTY_VALUE ((HRESULT)0xC00E0018)
  377. #define MQ_ERROR_ILLEGAL_PROPERTY_VT ((HRESULT)0xC00E0019)
  378. #define MQ_ERROR_BUFFER_OVERFLOW ((HRESULT)0xC00E001A)
  379. #define MQ_ERROR_IO_TIMEOUT ((HRESULT)0xC00E001B)
  380. #define MQ_ERROR_ILLEGAL_CURSOR_ACTION ((HRESULT)0xC00E001C)
  381. #define MQ_ERROR_MESSAGE_ALREADY_RECEIVED ((HRESULT)0xC00E001D)
  382. #define MQ_ERROR_ILLEGAL_FORMATNAME ((HRESULT)0xC00E001E)
  383. #define MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL ((HRESULT)0xC00E001F)
  384. #define MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION ((HRESULT)0xC00E0020)
  385. #define MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR ((HRESULT)0xC00E0021)
  386. #define MQ_ERROR_SENDERID_BUFFER_TOO_SMALL ((HRESULT)0xC00E0022)
  387. #define MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL ((HRESULT)0xC00E0023)
  388. #define MQ_ERROR_CANNOT_IMPERSONATE_CLIENT ((HRESULT)0xC00E0024)
  389. #define MQ_ERROR_ACCESS_DENIED ((HRESULT)0xC00E0025)
  390. #define MQ_ERROR_PRIVILEGE_NOT_HELD ((HRESULT)0xC00E0026)
  391. #define MQ_ERROR_INSUFFICIENT_RESOURCES ((HRESULT)0xC00E0027)
  392. #define MQ_ERROR_USER_BUFFER_TOO_SMALL ((HRESULT)0xC00E0028)
  393. #define MQ_ERROR_MESSAGE_STORAGE_FAILED ((HRESULT)0xC00E002A)
  394. #define MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL ((HRESULT)0xC00E002B)
  395. #define MQ_ERROR_INVALID_CERTIFICATE ((HRESULT)0xC00E002C)
  396. #define MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE ((HRESULT)0xC00E002D)
  397. #define MQ_ERROR_INTERNAL_USER_CERT_EXIST ((HRESULT)0xC00E002E)
  398. #define MQ_ERROR_NO_INTERNAL_USER_CERT ((HRESULT)0xC00E002F)
  399. #define MQ_ERROR_CORRUPTED_SECURITY_DATA ((HRESULT)0xC00E0030)
  400. #define MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE ((HRESULT)0xC00E0031)
  401. #define MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION ((HRESULT)0xC00E0033)
  402. #define MQ_ERROR_BAD_SECURITY_CONTEXT ((HRESULT)0xC00E0035)
  403. #define MQ_ERROR_COULD_NOT_GET_USER_SID ((HRESULT)0xC00E0036)
  404. #define MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO ((HRESULT)0xC00E0037)
  405. #define MQ_ERROR_ILLEGAL_MQCOLUMNS ((HRESULT)0xC00E0038)
  406. #define MQ_ERROR_ILLEGAL_PROPID ((HRESULT)0xC00E0039)
  407. #define MQ_ERROR_ILLEGAL_RELATION ((HRESULT)0xC00E003A)
  408. #define MQ_ERROR_ILLEGAL_PROPERTY_SIZE ((HRESULT)0xC00E003B)
  409. #define MQ_ERROR_ILLEGAL_RESTRICTION_PROPID ((HRESULT)0xC00E003C)
  410. #define MQ_ERROR_ILLEGAL_MQQUEUEPROPS ((HRESULT)0xC00E003D)
  411. #define MQ_ERROR_PROPERTY_NOTALLOWED ((HRESULT)0xC00E003E)
  412. #define MQ_ERROR_INSUFFICIENT_PROPERTIES ((HRESULT)0xC00E003F)
  413. #define MQ_ERROR_MACHINE_EXISTS ((HRESULT)0xC00E0040)
  414. #define MQ_ERROR_ILLEGAL_MQQMPROPS ((HRESULT)0xC00E0041)
  415. #define MQ_ERROR_DS_IS_FULL ((HRESULT)0xC00E0042)
  416. #define MQ_ERROR_DS_ERROR ((HRESULT)0xC00E0043)
  417. #define MQ_ERROR_INVALID_OWNER ((HRESULT)0xC00E0044)
  418. #define MQ_ERROR_UNSUPPORTED_ACCESS_MODE ((HRESULT)0xC00E0045)
  419. #define MQ_ERROR_RESULT_BUFFER_TOO_SMALL ((HRESULT)0xC00E0046)
  420. #define MQ_ERROR_DELETE_CN_IN_USE ((HRESULT)0xC00E0048)
  421. #define MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER ((HRESULT)0xC00E0049)
  422. #define MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE ((HRESULT)0xC00E004A)
  423. #define MQ_ERROR_QUEUE_NOT_AVAILABLE ((HRESULT)0xC00E004B)
  424. #define MQ_ERROR_DTC_CONNECT ((HRESULT)0xC00E004C)
  425. #define MQ_ERROR_TRANSACTION_IMPORT ((HRESULT)0xC00E004E)
  426. #define MQ_ERROR_TRANSACTION_USAGE ((HRESULT)0xC00E0050)
  427. #define MQ_ERROR_TRANSACTION_SEQUENCE ((HRESULT)0xC00E0051)
  428. #define MQ_ERROR_MISSING_CONNECTOR_TYPE ((HRESULT)0xC00E0055)
  429. #define MQ_ERROR_STALE_HANDLE ((HRESULT)0xC00E0056)
  430. #define MQ_ERROR_TRANSACTION_ENLIST ((HRESULT)0xC00E0058)
  431. #define MQ_ERROR_QUEUE_DELETED ((HRESULT)0xC00E005A)
  432. #define MQ_ERROR_ILLEGAL_CONTEXT ((HRESULT)0xC00E005B)
  433. #define MQ_ERROR_ILLEGAL_SORT_PROPID ((HRESULT)0xC00E005C)
  434. #define MQ_ERROR_LABEL_TOO_LONG ((HRESULT)0xC00E005D)
  435. #define MQ_ERROR_LABEL_BUFFER_TOO_SMALL ((HRESULT)0xC00E005E)
  436. #define MQ_ERROR_MQIS_SERVER_EMPTY ((HRESULT)0xC00E005F)
  437. #define MQ_ERROR_MQIS_READONLY_MODE ((HRESULT)0xC00E0060)
  438. #define MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL ((HRESULT)0xC00E0061)
  439. #define MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL ((HRESULT)0xC00E0062)
  440. #define MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL ((HRESULT)0xC00E0063)
  441. #define MQ_ERROR_ILLEGAL_OPERATION ((HRESULT)0xC00E0064)
  442. #define MQ_ERROR_WRITE_NOT_ALLOWED ((HRESULT)0xC00E0065)
  443. #define MQ_ERROR_WKS_CANT_SERVE_CLIENT ((HRESULT)0xC00E0066)
  444. #define MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW ((HRESULT)0xC00E0067)
  445. #define MQ_CORRUPTED_QUEUE_WAS_DELETED ((HRESULT)0xC00E0068)
  446. #define MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE ((HRESULT)0xC00E0069)
  447. #define MQ_ERROR_UNSUPPORTED_OPERATION ((HRESULT)0xC00E006A)
  448. #define MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED ((HRESULT)0xC00E006B)
  449. #define MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR ((HRESULT)0xC00E006C)
  450. #define MQ_ERROR_CERTIFICATE_NOT_PROVIDED ((HRESULT)0xC00E006D)
  451. #define MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED ((HRESULT)0xC00E006E)
  452. #define MQ_ERROR_CANNOT_CREATE_CERT_STORE ((HRESULT)0xC00E006F)
  453. #define MQ_ERROR_CANNOT_OPEN_CERT_STORE ((HRESULT)0xC00E0070)
  454. #define MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION ((HRESULT)0xC00E0071)
  455. #define MQ_ERROR_CANNOT_GRANT_ADD_GUID ((HRESULT)0xC00E0072)
  456. #define MQ_ERROR_CANNOT_LOAD_MSMQOCM ((HRESULT)0xC00E0073)
  457. #define MQ_ERROR_NO_ENTRY_POINT_MSMQOCM ((HRESULT)0xC00E0074)
  458. #define MQ_ERROR_NO_MSMQ_SERVERS_ON_DC ((HRESULT)0xC00E0075)
  459. #define MQ_ERROR_CANNOT_JOIN_DOMAIN ((HRESULT)0xC00E0076)
  460. #define MQ_ERROR_CANNOT_CREATE_ON_GC ((HRESULT)0xC00E0077)
  461. #define MQ_ERROR_GUID_NOT_MATCHING ((HRESULT)0xC00E0078)
  462. #define MQ_ERROR_PUBLIC_KEY_NOT_FOUND ((HRESULT)0xC00E0079)
  463. #define MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST ((HRESULT)0xC00E007A)
  464. #define MQ_ERROR_ILLEGAL_MQPRIVATEPROPS ((HRESULT)0xC00E007B)
  465. #define MQ_ERROR_NO_GC_IN_DOMAIN ((HRESULT)0xC00E007C)
  466. #define MQ_ERROR_NO_MSMQ_SERVERS_ON_GC ((HRESULT)0xC00E007D)
  467. #define MQ_ERROR_CANNOT_GET_DN ((HRESULT)0xC00E007E)
  468. #define MQ_ERROR_CANNOT_HASH_DATA_EX ((HRESULT)0xC00E007F)
  469. #define MQ_ERROR_CANNOT_SIGN_DATA_EX ((HRESULT)0xC00E0080)
  470. #define MQ_ERROR_CANNOT_CREATE_HASH_EX ((HRESULT)0xC00E0081)
  471. #define MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX ((HRESULT)0xC00E0082)
  472. #define MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS ((HRESULT)0xC00E0083)
  473. #define MQ_ERROR_NO_MQUSER_OU ((HRESULT)0xC00E0084)
  474. #define MQ_ERROR_CANNOT_LOAD_MQAD ((HRESULT)0xC00E0085)
  475. #define MQ_ERROR_CANNOT_LOAD_MQDSSRV ((HRESULT)0xC00E0086)
  476. #define MQ_ERROR_PROPERTIES_CONFLICT ((HRESULT)0xC00E0087)
  477. #define MQ_ERROR_MESSAGE_NOT_FOUND ((HRESULT)0xC00E0088)
  478. #define MQ_ERROR_CANT_RESOLVE_SITES ((HRESULT)0xC00E0089)
  479. #define MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS ((HRESULT)0xC00E008A)
  480. #define MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER ((HRESULT)0xC00E008B)
  481. #define MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS ((HRESULT)0xC00E008C)
  482. #define MQ_ERROR_MULTI_SORT_KEYS ((HRESULT)0xC00E008D)
  483. #define MQ_ERROR_GC_NEEDED ((HRESULT)0xC00E008E)
  484. #define MQ_ERROR_DS_BIND_ROOT_FOREST ((HRESULT)0xC00E008F)
  485. #define MQ_ERROR_DS_LOCAL_USER ((HRESULT)0xC00E0090)
  486. #define MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED ((HRESULT)0xC00E0091)
  487. #define MQ_ERROR_BAD_XML_FORMAT ((HRESULT)0xC00E0092)
  488. #define MQ_ERROR_UNSUPPORTED_CLASS ((HRESULT)0xC00E0093)
  489. #define MQ_ERROR_UNINITIALIZED_OBJECT ((HRESULT)0xC00E0094)
  490. #define MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS ((HRESULT)0xC00E0095)
  491. #define MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS ((HRESULT)0xC00E0096)
  492. #define MQCERT_REGISTER_ALWAYS 0x01
  493. #define MQCERT_REGISTER_IF_NOT_EXIST 0x02
  494. #define MQSEC_DELETE_MESSAGE 0x1
  495. #define MQSEC_PEEK_MESSAGE 0x2
  496. #define MQSEC_WRITE_MESSAGE 0x4
  497. #define MQSEC_DELETE_JOURNAL_MESSAGE 0x8
  498. #define MQSEC_SET_QUEUE_PROPERTIES 0x10
  499. #define MQSEC_GET_QUEUE_PROPERTIES 0x20
  500. #define MQSEC_DELETE_QUEUE DELETE
  501. #define MQSEC_GET_QUEUE_PERMISSIONS READ_CONTROL
  502. #define MQSEC_CHANGE_QUEUE_PERMISSIONS WRITE_DAC
  503. #define MQSEC_TAKE_QUEUE_OWNERSHIP WRITE_OWNER
  504. #define MQSEC_RECEIVE_MESSAGE (MQSEC_DELETE_MESSAGE | MQSEC_PEEK_MESSAGE)
  505. #define MQSEC_RECEIVE_JOURNAL_MESSAGE (MQSEC_DELETE_JOURNAL_MESSAGE | MQSEC_PEEK_MESSAGE)
  506. #define MQSEC_QUEUE_GENERIC_READ (MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_RECEIVE_MESSAGE | MQSEC_RECEIVE_JOURNAL_MESSAGE)
  507. #define MQSEC_QUEUE_GENERIC_WRITE (MQSEC_GET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_WRITE_MESSAGE)
  508. #define MQSEC_QUEUE_GENERIC_EXECUTE 0
  509. #define MQSEC_QUEUE_GENERIC_ALL (MQSEC_RECEIVE_MESSAGE | MQSEC_RECEIVE_JOURNAL_MESSAGE | MQSEC_WRITE_MESSAGE | MQSEC_SET_QUEUE_PROPERTIES | MQSEC_GET_QUEUE_PROPERTIES | MQSEC_DELETE_QUEUE | MQSEC_GET_QUEUE_PERMISSIONS | MQSEC_CHANGE_QUEUE_PERMISSIONS | MQSEC_TAKE_QUEUE_OWNERSHIP)
  510. #ifdef __cplusplus
  511. extern "C" {
  512. #endif
  513. typedef VOID (WINAPI *PMQRECEIVECALLBACK)(HRESULT hrStatus,QUEUEHANDLE hSource,DWORD dwTimeout,DWORD dwAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,HANDLE hCursor);
  514. HRESULT WINAPI MQCreateQueue(PSECURITY_DESCRIPTOR pSecurityDescriptor,MQQUEUEPROPS *pQueueProps,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength);
  515. HRESULT WINAPI MQDeleteQueue(LPCWSTR lpwcsFormatName);
  516. HRESULT WINAPI MQLocateBegin(LPCWSTR lpwcsContext,MQRESTRICTION *pRestriction,MQCOLUMNSET *pColumns,MQSORTSET *pSort,PHANDLE phEnum);
  517. HRESULT WINAPI MQLocateNext(HANDLE hEnum,DWORD *pcProps,MQPROPVARIANT aPropVar[]);
  518. HRESULT WINAPI MQLocateEnd(HANDLE hEnum);
  519. HRESULT WINAPI MQOpenQueue(LPCWSTR lpwcsFormatName,DWORD dwAccess,DWORD dwShareMode,QUEUEHANDLE *phQueue);
  520. HRESULT WINAPI MQSendMessage(QUEUEHANDLE hDestinationQueue,MQMSGPROPS *pMessageProps,ITransaction *pTransaction);
  521. HRESULT WINAPI MQReceiveMessage(QUEUEHANDLE hSource,DWORD dwTimeout,DWORD dwAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,PMQRECEIVECALLBACK fnReceiveCallback,HANDLE hCursor,ITransaction *pTransaction);
  522. HRESULT WINAPI MQReceiveMessageByLookupId(QUEUEHANDLE hSource,ULONGLONG ullLookupId,DWORD dwLookupAction,MQMSGPROPS *pMessageProps,LPOVERLAPPED lpOverlapped,PMQRECEIVECALLBACK fnReceiveCallback,ITransaction *pTransaction);
  523. HRESULT WINAPI MQCreateCursor(QUEUEHANDLE hQueue,PHANDLE phCursor);
  524. HRESULT WINAPI MQCloseCursor(HANDLE hCursor);
  525. HRESULT WINAPI MQCloseQueue(QUEUEHANDLE hQueue);
  526. HRESULT WINAPI MQSetQueueProperties(LPCWSTR lpwcsFormatName,MQQUEUEPROPS *pQueueProps);
  527. HRESULT WINAPI MQGetQueueProperties(LPCWSTR lpwcsFormatName,MQQUEUEPROPS *pQueueProps);
  528. HRESULT WINAPI MQGetQueueSecurity(LPCWSTR lpwcsFormatName,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,DWORD nLength,LPDWORD lpnLengthNeeded);
  529. HRESULT WINAPI MQSetQueueSecurity(LPCWSTR lpwcsFormatName,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
  530. HRESULT WINAPI MQPathNameToFormatName(LPCWSTR lpwcsPathName,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength);
  531. HRESULT WINAPI MQHandleToFormatName(QUEUEHANDLE hQueue,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength);
  532. HRESULT WINAPI MQInstanceToFormatName(GUID *pGuid,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength);
  533. HRESULT WINAPI MQADsPathToFormatName(LPCWSTR lpwcsADsPath,LPWSTR lpwcsFormatName,LPDWORD lpdwFormatNameLength);
  534. VOID WINAPI MQFreeMemory(PVOID pvMemory);
  535. HRESULT WINAPI MQGetMachineProperties(LPCWSTR lpwcsMachineName,const GUID *pguidMachineId,MQQMPROPS *pQMProps);
  536. HRESULT WINAPI MQGetSecurityContext(PVOID lpCertBuffer,DWORD dwCertBufferLength,HANDLE *phSecurityContext);
  537. HRESULT WINAPI MQGetSecurityContextEx(PVOID lpCertBuffer,DWORD dwCertBufferLength,HANDLE *phSecurityContext);
  538. VOID WINAPI MQFreeSecurityContext(HANDLE hSecurityContext);
  539. HRESULT WINAPI MQRegisterCertificate(DWORD dwFlags,PVOID lpCertBuffer,DWORD dwCertBufferLength);
  540. HRESULT WINAPI MQBeginTransaction(ITransaction **ppTransaction);
  541. HRESULT WINAPI MQGetOverlappedResult(LPOVERLAPPED lpOverlapped);
  542. HRESULT WINAPI MQGetPrivateComputerInformation(LPCWSTR lpwcsComputerName,MQPRIVATEPROPS *pPrivateProps);
  543. HRESULT WINAPI MQPurgeQueue(QUEUEHANDLE hQueue);
  544. HRESULT WINAPI MQMgmtGetInfo(LPCWSTR pComputerName,LPCWSTR pObjectName,MQMGMTPROPS *pMgmtProps);
  545. HRESULT WINAPI MQMgmtAction(LPCWSTR pComputerName,LPCWSTR pObjectName,LPCWSTR pAction);
  546. #ifdef __cplusplus
  547. }
  548. #endif
  549. #endif