OSDN Git Service

Modify "@copy 2012" to read "Copyright 2012, 2013".
[mingw/mingw-org-wsl.git] / include / mq.h
1 /**
2  * @file mq.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _MQ_H
25 #define _MQ_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 #define PROPID_Q_INSTANCE 101
34 #define PROPID_Q_TYPE 102
35 #define PROPID_Q_PATHNAME 103
36 #define PROPID_Q_JOURNAL 104
37 #define PROPID_Q_QUOTA 105
38 #define PROPID_Q_BASEPRIORITY 106
39 #define PROPID_Q_JOURNAL_QUOTA 107
40 #define PROPID_Q_LABEL 108
41 #define PROPID_Q_CREATE_TIME 109
42 #define PROPID_Q_MODIFY_TIME 110
43 #define PROPID_Q_AUTHENTICATE 111
44 #define PROPID_Q_PRIV_LEVEL 112
45 #define PROPID_Q_TRANSACTION 113
46 #define PROPID_Q_PATHNAME_DNS 124
47 #define PROPID_Q_MULTICAST_ADDRESS 125
48 #define PROPID_Q_ADS_PATH 126
49 #define MQ_TRANSACTIONAL_NONE 0
50 #define MQ_TRANSACTIONAL 1
51 #define MQ_AUTHENTICATE_NONE 0
52 #define MQ_AUTHENTICATE 1
53 #define MQ_PRIV_LEVEL_NONE 0
54 #define MQ_PRIV_LEVEL_OPTIONAL 1
55 #define MQ_PRIV_LEVEL_BODY 2
56 /*#define PROPID_M_ABORT_COUNT*/
57 #define PROPID_M_CLASS 1
58 #define PROPID_M_MSGID 2
59 #define PROPID_M_CORRELATIONID 3
60 #define PROPID_M_PRIORITY 4
61 #define PROPID_M_DELIVERY 5
62 #define PROPID_M_ACKNOWLEDGE 6
63 #define PROPID_M_JOURNAL 7
64 #define PROPID_M_APPSPECIFIC 8
65 #define PROPID_M_BODY 9
66 #define PROPID_M_BODY_SIZE 10
67 #define PROPID_M_LABEL 11
68 #define PROPID_M_LABEL_LEN 12
69 #define PROPID_M_TIME_TO_REACH_QUEUE 13
70 #define PROPID_M_TIME_TO_BE_RECEIVED 14
71 #define PROPID_M_RESP_QUEUE 15
72 #define PROPID_M_RESP_QUEUE_LEN 16
73 #define PROPID_M_ADMIN_QUEUE 17
74 #define PROPID_M_ADMIN_QUEUE_LEN 18
75 #define PROPID_M_VERSION 19
76 #define PROPID_M_SENDERID 20
77 #define PROPID_M_SENDERID_LEN 21
78 #define PROPID_M_SENDERID_TYPE 22
79 #define PROPID_M_PRIV_LEVEL 23
80 #define PROPID_M_AUTH_LEVEL 24
81 #define PROPID_M_AUTHENTICATED 25
82 #define PROPID_M_HASH_ALG 26
83 #define PROPID_M_ENCRYPTION_ALG 27
84 #define PROPID_M_SENDER_CERT 28
85 #define PROPID_M_SENDER_CERT_LEN 29
86 #define PROPID_M_SRC_MACHINE_ID 30
87 #define PROPID_M_SENTTIME 31
88 #define PROPID_M_ARRIVEDTIME 32
89 #define PROPID_M_DEST_QUEUE 33
90 #define PROPID_M_DEST_QUEUE_LEN 34
91 #define PROPID_M_EXTENSION 35
92 #define PROPID_M_EXTENSION_LEN 36
93 #define PROPID_M_SECURITY_CONTEXT 37
94 #define PROPID_M_CONNECTOR_TYPE 38
95 #define PROPID_M_XACT_STATUS_QUEUE 39
96 #define PROPID_M_XACT_STATUS_QUEUE_LEN 40
97 #define PROPID_M_TRACE 41
98 #define PROPID_M_BODY_TYPE 42
99 #define PROPID_M_DEST_SYMM_KEY 43
100 #define PROPID_M_DEST_SYMM_KEY_LEN 44
101 #define PROPID_M_SIGNATURE 45
102 #define PROPID_M_SIGNATURE_LEN 46
103 #define PROPID_M_PROV_TYPE 47
104 #define PROPID_M_PROV_NAME 48
105 #define PROPID_M_PROV_NAME_LEN 49
106 #define PROPID_M_FIRST_IN_XACT 50
107 #define PROPID_M_LAST_IN_XACT 51
108 #define PROPID_M_XACTID 52
109 #define PROPID_M_AUTHENTICATED_EX 53
110 /*#define PROPID_M_TOTAL_ABORT_COUNT*/
111 #define PROPID_M_CORRELATIONID_SIZE 20
112 #define PROPID_M_MSGID_SIZE 20
113 #define PROPID_M_XACTID_SIZE 20
114 #define MQMSG_DELIVERY_EXPRESS 0
115 #define MQMSG_DELIVERY_RECOVERABLE 1
116 #define MQMSG_JOURNAL_NONE 0
117 #define MQMSG_DEADLETTER 1
118 #define MQMSG_JOURNAL 2
119 #define MQMSG_TRACE_NONE 0
120 #define MQMSG_SEND_ROUTE_TO_REPORT_QUEUE 1
121 #define MQMSG_SENDERID_TYPE_NONE 0
122 #define MQMSG_SENDERID_TYPE_SID 1
123 #define MQMSG_NOT_FIRST_IN_XACT 0
124 #define MQMSG_FIRST_IN_XACT 1
125 #define MQMSG_NOT_LAST_IN_XACT 0
126 #define MQMSG_LAST_IN_XACT 1
127 #define MQMSG_PRIV_LEVEL_NONE 0
128 /*#define MQMSG_PRIV_LEVEL_BODY*/
129 #define MQMSG_PRIV_LEVEL_BODY_BASE 1
130 #define MQMSG_PRIV_LEVEL_BODY_ENHANCED 3
131 #define MQMSG_AUTHENTICATION_NOT_REQUESTED 0
132 #define MQMSG_AUTHENTICATION_REQUESTED 1
133 #define MQMSG_AUTHENTICATION_REQUESTED_EX 3
134 #define MQMSG_AUTH_LEVEL_NONE 0
135 #define MQMSG_AUTH_LEVEL_ALWAYS 1
136 #define MQMSG_AUTH_LEVEL_MSMQ10 2
137 #define MQMSG_AUTH_LEVEL_MSMQ20 4
138 #define MQMSG_AUTH_LEVEL_SIG10 2
139 #define MQMSG_AUTH_LEVEL_SIG20 4
140 #define MQMSG_AUTH_LEVEL_SIG30 8
141 #define MQMSG_AUTHENTICATED_SIG10 1
142 #define MQMSG_AUTHENTICATED_SIG20 3
143 #define MQMSG_AUTHENTICATED_SIG30 5
144 #define MQMSG_AUTHENTICATED_SIGXML 9
145 #define PROPID_MGMT_MSMQ_ACTIVEQUEUES 1
146 #define PROPID_MGMT_MSMQ_PRIVATEQ 2
147 #define PROPID_MGMT_MSMQ_DSSERVER 3
148 #define PROPID_MGMT_MSMQ_CONNECTED 4
149 #define PROPID_MGMT_MSMQ_TYPE 5
150 #define PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES 6
151 #define PROPID_MGMT_QUEUE_PATHNAME 1
152 #define PROPID_MGMT_QUEUE_FORMATNAME 2
153 #define PROPID_MGMT_QUEUE_TYPE 3
154 #define PROPID_MGMT_QUEUE_LOCATION 4
155 #define PROPID_MGMT_QUEUE_XACT 5
156 #define PROPID_MGMT_QUEUE_FOREIGN 6
157 #define PROPID_MGMT_QUEUE_MESSAGE_COUNT 7
158 #define PROPID_MGMT_QUEUE_BYTES_IN_QUEUE 8
159 #define PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT 9
160 #define PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL 10
161 #define PROPID_MGMT_QUEUE_STATE 11
162 #define PROPID_MGMT_QUEUE_NEXTHOPS 12
163 #define PROPID_MGMT_QUEUE_EOD_LAST_ACK 13
164 #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME 14
165 #define PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT 15
166 #define PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK 16
167 #define PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK 17
168 #define PROPID_MGMT_QUEUE_EOD_NEXT_SEQ 18
169 #define PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT 19
170 #define PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT 20
171 #define PROPID_MGMT_QUEUE_EOD_RESEND_TIME 21
172 #define PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL 22
173 #define PROPID_MGMT_QUEUE_EOD_RESEND_COUNT 23
174 #define PROPID_MGMT_QUEUE_EOD_SOURCE_INFO 24
175 /*#define PROPID_MGMT_QUEUE_SUBQUEUE_COUNT*/
176 /*#define PROPID_MGMT_QUEUE_SUBQUEUE_NAMES*/
177 #define PROPID_PC_VERSION 5801
178 #define PROPID_PC_DS_ENABLED 5802
179 #define PROPID_QM_SITE_ID 201
180 #define PROPID_QM_MACHINE_ID 202
181 #define PROPID_QM_PATHNAME 203
182 #define PROPID_QM_CONNECTION 204
183 #define PROPID_QM_ENCRYPTION_PK 205
184 #define PROPID_QM_ENCRYPTION_PK_BASE 231
185 #define PROPID_QM_ENCRYPTION_PK_ENHANCED 232
186 #define PROPID_QM_PATHNAME_DNS 233
187 #define MQ_OK 0x00000000
188 #define MQ_INFORMATION_PROPERTY 0x400E0001
189 #define MQ_INFORMATION_ILLEGAL_PROPERTY 0x400E0002
190 #define MQ_INFORMATION_PROPERTY_IGNORED 0x400E0003
191 #define MQ_INFORMATION_UNSUPPORTED_PROPERTY 0x400E0004
192 #define MQ_INFORMATION_DUPLICATE_PROPERTY 0x400E0005
193 #define MQ_INFORMATION_OPERATION_PENDING 0x400E0006
194 #define MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL 0x400E0009
195 #define MQ_INFORMATION_INTERNAL_USER_CERT_EXIST 0x400E000A
196 #define MQ_INFORMATION_OWNER_IGNORED 0x400E000B
197 #define MQ_ERROR 0xC00E0001
198 #define MQ_ERROR_PROPERTY 0xC00E0002
199 #define MQ_ERROR_QUEUE_NOT_FOUND 0xC00E0003
200 #define MQ_ERROR_QUEUE_NOT_ACTIVE 0xC00E0004
201 #define MQ_ERROR_QUEUE_EXISTS 0xC00E0005
202 #define MQ_ERROR_INVALID_PARAMETER 0xC00E0006
203 #define MQ_ERROR_INVALID_HANDLE 0xC00E0007
204 #define MQ_ERROR_OPERATION_CANCELLED0xC00E0008
205 #define MQ_ERROR_SHARING_VIOLATION 0xC00E0009
206 #define MQ_ERROR_SERVICE_NOT_AVAILABLE 0xC00E000B
207 #define MQ_ERROR_MACHINE_NOT_FOUND 0xC00E000D
208 #define MQ_ERROR_ILLEGAL_SORT 0xC00E0010
209 #define MQ_ERROR_ILLEGAL_USER 0xC00E0011
210 #define MQ_ERROR_NO_DS 0xC00E0013
211 #define MQ_ERROR_ILLEGAL_QUEUE_PATHNAME 0xC00E0014
212 #define MQ_ERROR_ILLEGAL_PROPERTY_VALUE 0xC00E0018
213 #define MQ_ERROR_ILLEGAL_PROPERTY_VT 0xC00E0019
214 #define MQ_ERROR_BUFFER_OVERFLOW 0xC00E001A
215 #define MQ_ERROR_IO_TIMEOUT 0xC00E001B
216 #define MQ_ERROR_ILLEGAL_CURSOR_ACTION 0xC00E001C
217 #define MQ_ERROR_MESSAGE_ALREADY_RECEIVED 0xC00E001D
218 #define MQ_ERROR_ILLEGAL_FORMATNAME 0xC00E001E
219 #define MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL 0xC00E001F
220 #define MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION 0xC00E0020
221 #define MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR 0xC00E0021
222 #define MQ_ERROR_SENDERID_BUFFER_TOO_SMALL 0xC00E0022
223 #define MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL 0xC00E0023
224 #define MQ_ERROR_CANNOT_IMPERSONATE_CLIENT 0xC00E0024
225 #define MQ_ERROR_ACCESS_DENIED 0xC00E0025
226 #define MQ_ERROR_PRIVILEGE_NOT_HELD 0xC00E0026
227 #define MQ_ERROR_INSUFFICIENT_RESOURCES 0xC00E0027
228 #define MQ_ERROR_USER_BUFFER_TOO_SMALL 0xC00E0028
229 #define MQ_ERROR_MESSAGE_STORAGE_FAILED 0xC00E002A
230 #define MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL 0xC00E002B
231 #define MQ_ERROR_INVALID_CERTIFICATE 0xC00E002C
232 #define MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE 0xC00E002D
233 #define MQ_ERROR_INTERNAL_USER_CERT_EXIST 0xC00E002E
234 #define MQ_ERROR_NO_INTERNAL_USER_CERT 0xC00E002F
235 #define MQ_ERROR_CORRUPTED_SECURITY_DATA 0xC00E0030
236 #define MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE 0xC00E0031
237 #define MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION 0xC00E0033
238 #define MQ_ERROR_BAD_SECURITY_CONTEXT 0xC00E0035
239 #define MQ_ERROR_COULD_NOT_GET_USER_SID 0xC00E0036
240 #define MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO 0xC00E0037
241 #define MQ_ERROR_ILLEGAL_MQCOLUMNS 0xC00E0038
242 #define MQ_ERROR_ILLEGAL_PROPID 0xC00E0039
243 #define MQ_ERROR_ILLEGAL_RELATION 0xC00E003A
244 #define MQ_ERROR_ILLEGAL_PROPERTY_SIZE 0xC00E003B
245 #define MQ_ERROR_ILLEGAL_RESTRICTION_PROPID 0xC00E003C
246 #define MQ_ERROR_ILLEGAL_MQQUEUEPROPS 0xC00E003D
247 #define MQ_ERROR_PROPERTY_NOTALLOWED 0xC00E003E
248 #define MQ_ERROR_INSUFFICIENT_PROPERTIES 0xC00E003F
249 #define MQ_ERROR_MACHINE_EXISTS 0xC00E0040
250 #define MQ_ERROR_ILLEGAL_MQQMPROPS 0xC00E0041
251 #define MQ_ERROR_DS_IS_FULL 0xC00E0042
252 #define MQ_ERROR_DS_ERROR 0xC00E0043
253 #define MQ_ERROR_INVALID_OWNER 0xC00E0044
254 #define MQ_ERROR_UNSUPPORTED_ACCESS_MODE 0xC00E0045
255 #define MQ_ERROR_RESULT_BUFFER_TOO_SMALL 0xC00E0046
256 #define MQ_ERROR_DELETE_CN_IN_USE 0xC00E0048
257 #define MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER 0xC00E0049
258 #define MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE 0xC00E004A
259 #define MQ_ERROR_QUEUE_NOT_AVAILABLE 0xC00E004B
260 #define MQ_ERROR_DTC_CONNECT 0xC00E004C
261 #define MQ_ERROR_TRANSACTION_IMPORT 0xC00E004E
262 #define MQ_ERROR_TRANSACTION_USAGE 0xC00E0050
263 #define MQ_ERROR_TRANSACTION_SEQUENCE 0xC00E0051
264 #define MQ_ERROR_MISSING_CONNECTOR_TYPE 0xC00E0055
265 #define MQ_ERROR_STALE_HANDLE 0xC00E0056
266 #define MQ_ERROR_TRANSACTION_ENLIST 0xC00E0058
267 #define MQ_ERROR_QUEUE_DELETED 0xC00E005A
268 #define MQ_ERROR_ILLEGAL_CONTEXT 0xC00E005B
269 #define MQ_ERROR_ILLEGAL_SORT_PROPID 0xC00E005C
270 #define MQ_ERROR_LABEL_TOO_LONG 0xC00E005D
271 #define MQ_ERROR_LABEL_BUFFER_TOO_SMALL 0xC00E005E
272 #define MQ_ERROR_MQIS_SERVER_EMPTY 0xC00E005F
273 #define MQ_ERROR_MQIS_READONLY_MODE 0xC00E0060
274 #define MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL 0xC00E0061
275 #define MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL 0xC00E0062
276 #define MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL 0xC00E0063
277 #define MQ_ERROR_ILLEGAL_OPERATION 0xC00E0064
278 #define MQ_ERROR_WRITE_NOT_ALLOWED 0xC00E0065
279 #define MQ_ERROR_WKS_CANT_SERVE_CLIENT 0xC00E0066
280 #define MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW 0xC00E0067
281 #define MQ_CORRUPTED_QUEUE_WAS_DELETED 0xC00E0068
282 #define MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE 0xC00E0069
283 #define MQ_ERROR_UNSUPPORTED_OPERATION 0xC00E006A
284 #define MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED 0xC00E006B
285 #define MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR 0xC00E006C
286 #define MQ_ERROR_CERTIFICATE_NOT_PROVIDED 0xC00E006D
287 #define MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED 0xC00E006E
288 #define MQ_ERROR_CANNOT_CREATE_CERT_STORE 0xC00E006F
289 #define MQ_ERROR_CANNOT_OPEN_CERT_STORE 0xC00E0070
290 #define MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION 0xC00E0071
291 #define MQ_ERROR_CANNOT_GRANT_ADD_GUID 0xC00E0072
292 #define MQ_ERROR_CANNOT_LOAD_MSMQOCM 0xC00E0073
293 #define MQ_ERROR_NO_ENTRY_POINT_MSMQOCM 0xC00E0074
294 #define MQ_ERROR_NO_MSMQ_SERVERS_ON_DC 0xC00E0075
295 #define MQ_ERROR_CANNOT_JOIN_DOMAIN 0xC00E0076
296 #define MQ_ERROR_CANNOT_CREATE_ON_GC 0xC00E0077
297 #define MQ_ERROR_GUID_NOT_MATCHING 0xC00E0078
298 #define MQ_ERROR_PUBLIC_KEY_NOT_FOUND 0xC00E0079
299 #define MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST 0xC00E007A
300 #define MQ_ERROR_ILLEGAL_MQPRIVATEPROPS 0xC00E007B
301 #define MQ_ERROR_NO_GC_IN_DOMAIN 0xC00E007C
302 #define MQ_ERROR_NO_MSMQ_SERVERS_ON_GC 0xC00E007D
303 #define MQ_ERROR_CANNOT_GET_DN 0xC00E007E
304 #define MQ_ERROR_CANNOT_HASH_DATA_EX 0xC00E007F
305 #define MQ_ERROR_CANNOT_SIGN_DATA_EX 0xC00E0080
306 #define MQ_ERROR_CANNOT_CREATE_HASH_EX 0xC00E0081
307 #define MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX 0xC00E0082
308 #define MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS 0xC00E0083
309 #define MQ_ERROR_NO_MQUSER_OU 0xC00E0084
310 #define MQ_ERROR_CANNOT_LOAD_MQAD 0xC00E0085
311 #define MQ_ERROR_CANNOT_LOAD_MQDSSRV 0xC00E0086
312 #define MQ_ERROR_PROPERTIES_CONFLICT 0xC00E0087
313 #define MQ_ERROR_MESSAGE_NOT_FOUND 0xC00E0088
314 #define MQ_ERROR_CANT_RESOLVE_SITES 0xC00E0089
315 #define MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS 0xC00E008A
316 #define MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER 0xC00E008B
317 #define MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS 0xC00E008C
318 #define MQ_ERROR_MULTI_SORT_KEYS 0xC00E008D
319 #define MQ_ERROR_GC_NEEDED 0xC00E008E
320 #define MQ_ERROR_DS_BIND_ROOT_FOREST 0xC00E008F
321 #define MQ_ERROR_DS_LOCAL_USER 0xC00E0090
322 #define MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED 0xC00E0091
323 #define MQ_ERROR_BAD_XML_FORMAT 0xC00E0092
324 #define MQ_ERROR_UNSUPPORTED_CLASS xC00E0093
325 #define MQ_ERROR_UNINITIALIZED_OBJECT 0xC00E0094
326 #define MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS 0xC00E0095
327 #define MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS 0xC00E0096
328 #define MQSEC_DELETE_MESSAGE 0x00000001
329 #define MQSEC_PEEK_MESSAGE 0x00000002
330 #define MQSEC_WRITE_MESSAGE 0x00000004
331 #define MQSEC_DELETE_JOURNAL_MESSAGE 0x00000008
332 #define MQSEC_SET_QUEUE_PROPERTIES 0x00000010
333 #define MQSEC_GET_QUEUE_PROPERTIES 0x00000020
334 #define MQSEC_DELETE_QUEUE 0x00010000
335 #define MQSEC_GET_QUEUE_PERMISSIONS 0x00020000
336 #define MQSEC_CHANGE_QUEUE_PERMISSIONS 0x00040000
337 #define MQSEC_TAKE_QUEUE_OWNERSHIP 0x00080000
338 #define MQSEC_RECEIVE_MESSAGE (MQSEC_DELETE_MESSAGE|MQSEC_PEEK_MESSAGE)
339 #define MQSEC_RECEIVE_JOURNAL_MESSAGE (MQSEC_DELETE_JOURNAL_MESSAGE|MQSEC_PEEK_MESSAGE)
340 #define MQSEC_QUEUE_GENERIC_READ (MQSEC_GET_QUEUE_PROPERTIES|MQSEC_GET_QUEUE_PERMISSIONS|MQSEC_RECEIVE_MESSAGE|MQSEC_RECEIVE_JOURNAL_MESSAGE)
341 #define MQSEC_QUEUE_GENERIC_WRITE (MQSEC_GET_QUEUE_PROPERTIES|MQSEC_GET_QUEUE_PERMISSIONS|MQSEC_WRITE_MESSAGE)
342 #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)
343 #define MSMQ_CONNECTED L"CONNECTED"
344 #define MSMQ_DISCONNECTED L"DISCONNECTED"
345 #define MQ_RECEIVE_ACCESS 0x00000001
346 #define MQ_SEND_ACCESS 0x00000002
347 #define MQ_PEEK_ACCESS 0x00000020
348 #define MQ_ADMIN_ACCESS 0x00000080
349 #define MQ_DENY_NONE 0x00000000
350 #define MQ_DENY_RECEIVE_SHARE 0x00000001
351 #define MQ_ACTION_RECEIVE 0x00000000
352 #define MQ_ACTION_PEEK_CURRENT 0x80000000
353 #define MQ_ACTION_PEEK_NEXT 0x80000001
354 /*#define MQ_NO_TRANSACTION*/
355 /*#define MQ_MTS_TRANSACTION*/
356 /*#define MQ_SINGLE_MESSAGE*/
357 /*#define MQ_XA_TRANSACTION*/
358 #define PRLT 0
359 #define PRLE 1
360 #define PRGT 2
361 #define PRGE 3
362 #define PREQ 4
363 #define PRNE 5
364 #define MQ_MIN_PRIORITY 0
365 #define MQ_MAX_PRIORITY 7
366 #define MQ_DEFAULT_PRIORITY 3
367 #define QUERY_SORTASCEND 0
368 #define QUERY_SORTDESCEND 1
369
370 typedef struct tagMQCOLUMNSET {
371         ULONG cCol;
372         PROPID *aCol;
373 } MQCOLUMNSET;
374 typedef PROPID MGMTPROPID;
375 typedef struct tagMQMGMTPROPS {
376         DWORD cProp;
377         MGMTPROPID *aPropID;
378         MQPROPVARIANT *aPropVar;
379         HRESULT *aStatus;
380 } MQMGMTPROPS;
381 typedef PROPID MSGPROPID;
382 typedef struct tagMQMSGPROPS {
383         DWORD cProp;
384         MSGPROPID *aPropID;
385         MQPROPVARIANT *aPropVar;
386         HRESULT *aStatus;
387 } MQMSGPROPS;
388 typedef PROPID QMPROPID;
389 typedef struct tagMQPRIVATEPROPS {
390         DWORD cProp;
391         QMPROPID *aPropID;
392         MQPROPVARIANT *aPropVar;
393         HRESULT *aStatus;
394 } MQPRIVATEPROPS;
395 typedef struct tagMQPROPERTYRESTRICTION {
396         ULONG rel;
397         PROPID prop;
398         MQPROPVARIANT prval;
399 } MQPROPERTYRESTRICTION;
400 typedef struct tagMQQMPROPS {
401         DWORD cProp;
402         QMPROPID *aPropID;
403         MQPROPVARIANT *aPropVar;
404         HRESULT *aStatus;
405 } MQQMPROPS;
406 typedef PROPID QUEUEPROPID;
407 typedef struct tagMQQUEUEPROPS {
408         DWORD cProp;
409         QUEUEPROPID *aPropID;
410         MQPROPVARIANT *aPropVar;
411         HRESULT *aStatus;
412 } MQQUEUEPROPS;
413 typedef struct tagMQRESTRICTION {
414         ULONG cRes;
415         MQPROPERTYRESTRICTION *paPropRes;
416 } MQRESTRICTION;
417 typedef struct tagMQSORTKEY {
418         PROPID propColumn;
419         ULONG dwOrder;
420 } MQSORTKEY;
421 typedef struct tagMQSORTSET {
422         ULONG cCol;
423         MQSORTKEY *aCol;
424 } MQSORTSET;
425 typedef struct tagMQPROPVARIANT {
426         VARTYPE vt;
427         WORD wReserved1;
428         WORD wReserved2;
429         WORD wReserved3;
430         union {
431                 UCHAR bVal;
432                 SHORT iVal;
433                 USHORT uiVal;
434                 VARIANT_BOOL boolVal;
435                 LONG lVal;
436                 ULONG ulVal;
437                 ULARGE_INTEGER uhVal;
438                 SCODE scode;
439                 DATE date;
440                 CLSID _RPC_FAR *puuid;
441                 BLOB blob;
442                 LPOLESTR bstrVal;
443                 LPSTR pszVal;
444                 LPWSTR pwszVal;
445                 CAUB caub;
446                 CAI cai;
447                 CAUI caui;
448                 CABOOL cabool;
449                 CAL cal;
450                 CAUL caul;
451                 CACLSID cauuid;
452                 CABSTR cabstr;
453                 CALPWSTR calpwstr;
454                 CAPROPVARIANT capropvar;
455         };                      
456 } MQPROPVARIANT;
457 typedef struct tagSEQUENCE_INFO {
458         LONGLONG SeqID;
459         ULONG SeqNo; 
460         ULONG PrevNo;
461 } SEQUENCE_INFO;
462 typedef HANDLE QUEUEHANDLE;
463 typedef VOID (*PMQRECEIVECALLBACK)(VOID);
464
465 HRESULT WINAPI MQBeginTransaction(ITransaction **);
466 HRESULT WINAPI MQCloseCursor(HANDLE);
467 HRESULT WINAPI MQCloseQueue(QUEUEHANDLE);
468 HRESULT WINAPI MQCreateCursor(QUEUEHANDLE,PHANDLE);
469 HRESULT WINAPI MQCreateQueue(PSECURITY_DESCRIPTOR,MQQUEUEPROPS *,LPWSTR,LPDWORD);
470 HRESULT WINAPI MQDeleteQueue(LPCWSTR);
471 VOID WINAPI MQFreeMemory(PVOID);
472 VOID WINAPI MQFreeSecurityContext(HANDLE);
473 HRESULT WINAPI MQGetMachineProperties(LPCWSTR,const GUID *,MQQMPROPS *);
474 HRESULT WINAPI MQGetQueueProperties(LPCWSTR,MQQUEUEPROPS *);
475 HRESULT WINAPI MQGetQueueSecurity(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
476 HRESULT WINAPI MQGetSecurityContext(LPVOID,DWORD,HANDLE *);
477 HRESULT WINAPI MQGetMachineProperties(LPCWSTR,const GUID *,MQQMPROPS *);
478 HRESULT WINAPI MQGetOverlappedResult(LPOVERLAPPED);
479 HRESULT WINAPI MQGetPrivateComputerInformation(LPCWSTR,MQPRIVATEPROPS *);
480 HRESULT WINAPI MQGetQueueProperties(LPCWSTR,MQQUEUEPROPS *);
481 HRESULT WINAPI MQGetQueueSecurity(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
482 HRESULT WINAPI MQGetSecurityContext(LPVOID,DWORD,HANDLE *);
483 HRESULT WINAPI MQHandleToFormatName(QUEUEHANDLE,LPWSTR,LPDWORD);
484 HRESULT WINAPI MQInstanceToFormatName(GUID *,LPWSTR,LPDWORD);
485 HRESULT WINAPI MQLocateBegin(LPCWSTR,MQRESTRICTION *,MQCOLUMNSET *,MQSORTSET *,PHANDLE);
486 HRESULT WINAPI MQLocateEnd(HANDLE);
487 HRESULT WINAPI MQLocateNext(HANDLE,DWORD *,MQPROPVARIANT[]);
488 HRESULT WINAPI MQOpenQueue(LPCWSTR,DWORD,DWORD,QUEUEHANDLE *);
489 HRESULT WINAPI MQPathNameToFormatName(LPCWSTR,LPWSTR,LPDWORD);
490 HRESULT WINAPI MQReceiveMessage(QUEUEHANDLE,DWORD,DWORD,MQMSGPROPS *,LPOVERLAPPED,PMQRECEIVECALLBACK,HANDLE,ITransaction *);
491 HRESULT WINAPI MQSendMessage(QUEUEHANDLE,MQMSGPROPS *,ITransaction *);
492 HRESULT WINAPI MQSetQueueProperties(LPCWSTR,MQQUEUEPROPS *);
493 HRESULT WINAPI MQSetQueueSecurity(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
494
495 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
496 #define MQCERT_REGISTER_ALWAYS 0x00000001
497 #define MQCERT_REGISTER_IF_NOT_EXIST 0x00000002
498 HRESULT WINAPI MQGetOverlappedResult(LPOVERLAPPED);
499 HRESULT WINAPI MQGetPrivateComputerInformation(LPCWSTR,MQPRIVATEPROPS *);
500 HRESULT WINAPI MQGetSecurityContextEx(LPVOID,DWORD,HANDLE *);
501 HRESULT WINAPI MQRegisterCertificate(DWORD,PVOID,DWORD);
502 #endif /* _WIN32_WINNT >= _WIN32_WINNT_WIN2K */
503
504 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
505 #define PROPID_M_RESP_FORMAT_NAME 54
506 #define PROPID_M_RESP_FORMAT_NAME_LEN 55
507 #define PROPID_M_DEST_FORMAT_NAME 58
508 #define PROPID_M_DEST_FORMAT_NAME_LEN 59
509 #define PROPID_M_LOOKUPID 60
510 #define PROPID_M_SOAP_ENVELOPE 61
511 #define PROPID_M_SOAP_ENVELOPE_LEN 62
512 #define PROPID_M_COMPOUND_MESSAGE 63
513 #define PROPID_M_COMPOUND_MESSAGE_SIZE 64
514 #define PROPID_M_SOAP_HEADER 65
515 #define PROPID_M_SOAP_BODY 66
516 #define MQ_LOOKUP_PEEK_CURRENT 0x40000010
517 #define MQ_LOOKUP_PEEK_NEXT 0x40000011
518 #define MQ_LOOKUP_PEEK_PREV 0x40000012
519 #define MQ_LOOKUP_PEEK_FIRST 0x40000014
520 #define MQ_LOOKUP_PEEK_LAST 0x40000018
521 #define MQ_LOOKUP_RECEIVE_CURRENT 0x40000020
522 #define MQ_LOOKUP_RECEIVE_NEXT 0x40000021
523 #define MQ_LOOKUP_RECEIVE_PREV 0x40000022
524 #define MQ_LOOKUP_RECEIVE_FIRST 0x40000024
525 #define MQ_LOOKUP_RECEIVE_LAST 0x40000028
526 HRESULT WINAPI MQADsPathToFormatName(LPCWSTR,LPWSTR,LPDWORD);
527 HRESULT WINAPI MQMgmtAction(LPCWSTR,LPCWSTR,LPCWSTR);
528 HRESULT WINAPI MQMgmtGetInfo(LPCWSTR,LPCWSTR,MQMGMTPROPS *);
529 HRESULT WINAPI MQPurgeQueue(QUEUEHANDLE);
530 HRESULT WINAPI MQReceiveMessageByLookupId(QUEUEHANDLE,ULONGLONG,DWORD,MQMSGPROPS *,LPOVERLAPPED,PMQRECEIVECALLBACK,ITransaction *);
531 #endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
532
533 #if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
534 HRESULT WINAPI MQMarkMessageRejected(QUEUEHANDLE,ULONGLONG);
535 HRESULT WINAPI MQMoveMessage(QUEUEHANDLE,QUEUEHANDLE,ULONGLONG,ITransaction *);
536 #endif /* _WIN32_WINNT >= _WIN32_WINNT_VISTA */
537
538 #ifdef __cplusplus
539 }
540 #endif
541
542 #endif