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