include: Add missing Web Services declarations.
[wine.git] / include / webservices.h
blob451cfadcd7cdf9111b61555598159d534c2bcc1d
1 /*
2 * Copyright 2015 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_WEBSERVICES_H
20 #define __WINE_WEBSERVICES_H
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* __cplusplus */
26 typedef struct _WS_ERROR WS_ERROR;
27 typedef struct _WS_HEAP WS_HEAP;
28 typedef struct _WS_XML_BUFFER WS_XML_BUFFER;
29 typedef struct _WS_XML_READER WS_XML_READER;
30 typedef struct _WS_XML_WRITER WS_XML_WRITER;
31 typedef struct _WS_PROXY_PROPERTY WS_PROXY_PROPERTY;
32 typedef struct _WS_SECURITY_DESCRIPTION WS_SECURITY_DESCRIPTION;
33 typedef struct _WS_CHANNEL_PROPERTY WS_CHANNEL_PROPERTY;
34 typedef struct _WS_SERVICE_PROXY WS_SERVICE_PROXY;
35 typedef struct _WS_SECURITY_BINDING_PROPERTY WS_SECURITY_BINDING_PROPERTY;
36 typedef struct _WS_SECURITY_PROPERTY WS_SECURITY_PROPERTY;
37 typedef struct _WS_SECURITY_PROPERTIES WS_SECURITY_PROPERTIES;
38 typedef struct _WS_SECURITY_BINDING WS_SECURITY_BINDING;
39 typedef struct _WS_CHANNEL WS_CHANNEL;
40 typedef struct _WS_MESSAGE_PROPERTY WS_MESSAGE_PROPERTY;
41 typedef struct _WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTIES;
42 typedef struct _WS_HTTP_BINDING_TEMPLATE WS_HTTP_BINDING_TEMPLATE;
43 typedef struct _WS_HTTP_SSL_BINDING_TEMPLATE WS_HTTP_SSL_BINDING_TEMPLATE;
44 typedef struct _WS_CHANNEL_PROPERTIES WS_CHANNEL_PROPERTIES;
45 typedef struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE;
46 typedef struct _WS_SECURITY_BINDING_PROPERTIES WS_SECURITY_BINDING_PROPERTIES;
47 typedef struct _WS_CERT_CREDENTIAL WS_CERT_CREDENTIAL;
48 typedef struct _WS_ENDPOINT_ADDRESS WS_ENDPOINT_ADDRESS;
49 typedef struct _WS_ENDPOINT_IDENTITY WS_ENDPOINT_IDENTITY;
50 typedef struct _WS_ENUM_DESCRIPTION WS_ENUM_DESCRIPTION;
51 typedef struct _WS_ENUM_VALUE WS_ENUM_VALUE;
52 typedef struct _WS_HTTP_POLICY_DESCRIPTION WS_HTTP_POLICY_DESCRIPTION;
53 typedef struct _WS_MESSAGE WS_MESSAGE;
54 typedef struct _WS_MESSAGE_DESCRIPTION WS_MESSAGE_DESCRIPTION;
55 typedef struct _WS_OPERATION_DESCRIPTION WS_OPERATION_DESCRIPTION;
56 typedef struct _WS_PARAMETER_DESCRIPTION WS_PARAMETER_DESCRIPTION;
57 typedef struct _WS_OPERATION_CONTEXT WS_OPERATION_CONTEXT;
58 typedef struct _WS_CALL_PROPERTY WS_CALL_PROPERTY;
59 typedef struct _WS_DOUBLE_DESCRIPTION WS_DOUBLE_DESCRIPTION;
60 typedef struct _WS_DATETIME WS_DATETIME;
61 typedef struct _WS_DATETIME_DESCRIPTION WS_DATETIME_DESCRIPTION;
62 typedef struct _WS_GUID_DESCRIPTION WS_GUID_DESCRIPTION;
63 typedef struct _WS_URL WS_URL;
64 typedef struct _WS_HTTP_URL WS_HTTP_URL;
65 typedef struct _WS_HTTPS_URL WS_HTTPS_URL;
66 typedef struct _WS_NETTCP_URL WS_NETTCP_URL;
67 typedef struct _WS_SOAPUDP_URL WS_SOAPUDP_URL;
68 typedef struct _WS_NETPIPE_URL WS_NETPIPE_URL;
69 typedef struct _WS_CUSTOM_CHANNEL_CALLBACKS WS_CUSTOM_CHANNEL_CALLBACKS;
70 typedef struct _WS_CHANNEL_ENCODER WS_CHANNEL_ENCODER;
71 typedef struct _WS_CHANNEL_DECODER WS_CHANNEL_DECODER;
72 typedef struct _WS_CUSTOM_HTTP_PROXY WS_CUSTOM_HTTP_PROXY;
73 typedef struct _WS_HTTP_MESSAGE_MAPPING WS_HTTP_MESSAGE_MAPPING;
74 typedef struct _WS_HTTP_HEADER_MAPPING WS_HTTP_HEADER_MAPPING;
75 typedef struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT WS_HTTP_REDIRECT_CALLBACK_CONTEXT;
77 struct _WS_STRUCT_DESCRIPTION;
78 struct _WS_XML_STRING;
80 typedef enum {
81 WS_ERROR_PROPERTY_STRING_COUNT,
82 WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE,
83 WS_ERROR_PROPERTY_LANGID
84 } WS_ERROR_PROPERTY_ID;
86 typedef struct _WS_ERROR_PROPERTY {
87 WS_ERROR_PROPERTY_ID id;
88 void *value;
89 ULONG valueSize;
90 } WS_ERROR_PROPERTY;
92 typedef enum {
93 WS_HEAP_PROPERTY_MAX_SIZE,
94 WS_HEAP_PROPERTY_TRIM_SIZE,
95 WS_HEAP_PROPERTY_REQUESTED_SIZE,
96 WS_HEAP_PROPERTY_ACTUAL_SIZE
97 } WS_HEAP_PROPERTY_ID;
99 typedef struct _WS_HEAP_PROPERTY {
100 WS_HEAP_PROPERTY_ID id;
101 void *value;
102 ULONG valueSize;
103 } WS_HEAP_PROPERTY;
105 typedef ULONG WS_XML_BUFFER_PROPERTY_ID;
107 typedef struct _WS_XML_BUFFER_PROPERTY {
108 WS_XML_BUFFER_PROPERTY_ID id;
109 void *value;
110 ULONG valueSize;
111 } WS_XML_BUFFER_PROPERTY;
113 typedef enum {
114 WS_XML_READER_PROPERTY_MAX_DEPTH,
115 WS_XML_READER_PROPERTY_ALLOW_FRAGMENT,
116 WS_XML_READER_PROPERTY_MAX_ATTRIBUTES,
117 WS_XML_READER_PROPERTY_READ_DECLARATION,
118 WS_XML_READER_PROPERTY_CHARSET,
119 WS_XML_READER_PROPERTY_ROW,
120 WS_XML_READER_PROPERTY_COLUMN,
121 WS_XML_READER_PROPERTY_UTF8_TRIM_SIZE,
122 WS_XML_READER_PROPERTY_STREAM_BUFFER_SIZE,
123 WS_XML_READER_PROPERTY_IN_ATTRIBUTE,
124 WS_XML_READER_PROPERTY_STREAM_MAX_ROOT_MIME_PART_SIZE,
125 WS_XML_READER_PROPERTY_STREAM_MAX_MIME_HEADERS_SIZE,
126 WS_XML_READER_PROPERTY_MAX_MIME_PARTS,
127 WS_XML_READER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES,
128 WS_XML_READER_PROPERTY_MAX_NAMESPACES
129 } WS_XML_READER_PROPERTY_ID;
131 typedef struct _WS_XML_READER_PROPERTY {
132 WS_XML_READER_PROPERTY_ID id;
133 void *value;
134 ULONG valueSize;
135 } WS_XML_READER_PROPERTY;
137 typedef enum {
138 WS_XML_WRITER_PROPERTY_MAX_DEPTH,
139 WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT,
140 WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES,
141 WS_XML_WRITER_PROPERTY_WRITE_DECLARATION,
142 WS_XML_WRITER_PROPERTY_INDENT,
143 WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE,
144 WS_XML_WRITER_PROPERTY_CHARSET,
145 WS_XML_WRITER_PROPERTY_BUFFERS,
146 WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE,
147 WS_XML_WRITER_PROPERTY_BYTES,
148 WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE,
149 WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE,
150 WS_XML_WRITER_PROPERTY_INITIAL_BUFFER,
151 WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES,
152 WS_XML_WRITER_PROPERTY_MAX_NAMESPACES,
153 WS_XML_WRITER_PROPERTY_BYTES_WRITTEN,
154 WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE,
155 WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS,
156 WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
157 } WS_XML_WRITER_PROPERTY_ID;
159 typedef struct _WS_XML_WRITER_PROPERTY {
160 WS_XML_WRITER_PROPERTY_ID id;
161 void *value;
162 ULONG valueSize;
163 } WS_XML_WRITER_PROPERTY;
165 typedef struct _WS_BYTES {
166 ULONG length;
167 BYTE *bytes;
168 } WS_BYTES;
170 typedef struct _WS_BUFFERS {
171 ULONG bufferCount;
172 WS_BYTES *buffers;
173 } WS_BUFFERS;
175 typedef enum {
176 WS_XML_READER_ENCODING_TYPE_TEXT = 1,
177 WS_XML_READER_ENCODING_TYPE_BINARY = 2,
178 WS_XML_READER_ENCODING_TYPE_MTOM = 3,
179 WS_XML_READER_ENCODING_TYPE_RAW = 4
180 } WS_XML_READER_ENCODING_TYPE;
182 typedef struct _WS_XML_READER_ENCODING {
183 WS_XML_READER_ENCODING_TYPE encodingType;
184 } WS_XML_READER_ENCODING;
186 typedef enum {
187 WS_XML_WRITER_ENCODING_TYPE_TEXT = 1,
188 WS_XML_WRITER_ENCODING_TYPE_BINARY = 2,
189 WS_XML_WRITER_ENCODING_TYPE_MTOM = 3,
190 WS_XML_WRITER_ENCODING_TYPE_RAW = 4
191 } WS_XML_WRITER_ENCODING_TYPE;
193 typedef struct _WS_XML_WRITER_ENCODING {
194 WS_XML_WRITER_ENCODING_TYPE encodingType;
195 } WS_XML_WRITER_ENCODING;
197 typedef enum {
198 WS_CHARSET_AUTO,
199 WS_CHARSET_UTF8,
200 WS_CHARSET_UTF16LE,
201 WS_CHARSET_UTF16BE
202 } WS_CHARSET;
204 typedef struct _WS_XML_READER_TEXT_ENCODING {
205 WS_XML_READER_ENCODING encoding;
206 WS_CHARSET charSet;
207 } WS_XML_READER_TEXT_ENCODING;
209 typedef struct _WS_XML_WRITER_TEXT_ENCODING {
210 WS_XML_WRITER_ENCODING encoding;
211 WS_CHARSET charSet;
212 } WS_XML_WRITER_TEXT_ENCODING;
214 typedef enum {
215 WS_XML_READER_INPUT_TYPE_BUFFER = 1,
216 WS_XML_READER_INPUT_TYPE_STREAM = 2
217 } WS_XML_READER_INPUT_TYPE;
219 typedef enum {
220 WS_XML_WRITER_OUTPUT_TYPE_BUFFER = 1,
221 WS_XML_WRITER_OUTPUT_TYPE_STREAM = 2
222 } WS_XML_WRITER_OUTPUT_TYPE;
224 typedef struct _WS_XML_READER_INPUT {
225 WS_XML_READER_INPUT_TYPE inputType;
226 } WS_XML_READER_INPUT;
228 typedef struct _WS_XML_WRITER_OUTPUT {
229 WS_XML_WRITER_OUTPUT_TYPE outputType;
230 } WS_XML_WRITER_OUTPUT;
232 typedef struct _WS_XML_READER_BUFFER_INPUT {
233 WS_XML_READER_INPUT input;
234 void *encodedData;
235 ULONG encodedDataSize;
236 } WS_XML_READER_BUFFER_INPUT;
238 typedef struct _WS_XML_WRITER_BUFFER_OUTPUT {
239 WS_XML_WRITER_OUTPUT output;
240 } WS_XML_WRITER_BUFFER_OUTPUT;
242 typedef enum {
243 WS_SHORT_CALLBACK,
244 WS_LONG_CALLBACK
245 } WS_CALLBACK_MODEL;
247 typedef void (CALLBACK *WS_ASYNC_CALLBACK)
248 (HRESULT, WS_CALLBACK_MODEL, void *);
250 typedef struct _WS_ASYNC_CONTEXT {
251 WS_ASYNC_CALLBACK callback;
252 void *callbackState;
253 } WS_ASYNC_CONTEXT;
255 typedef HRESULT (CALLBACK *WS_READ_CALLBACK)
256 (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
258 typedef HRESULT (CALLBACK *WS_WRITE_CALLBACK)
259 (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*);
261 typedef struct _WS_XML_READER_STREAM_INPUT {
262 WS_XML_READER_INPUT input;
263 WS_READ_CALLBACK readCallback;
264 void *readCallbackState;
265 } WS_XML_READER_STREAM_INPUT;
267 typedef struct _WS_XML_DICTIONARY {
268 GUID guid;
269 struct _WS_XML_STRING *strings;
270 ULONG stringCount;
271 BOOL isConst;
272 } WS_XML_DICTIONARY;
274 typedef struct _WS_XML_STRING {
275 ULONG length;
276 BYTE *bytes;
277 WS_XML_DICTIONARY *dictionary;
278 ULONG id;
279 } WS_XML_STRING;
281 typedef enum {
282 WS_ELEMENT_TYPE_MAPPING = 1,
283 WS_ATTRIBUTE_TYPE_MAPPING = 2,
284 WS_ELEMENT_CONTENT_TYPE_MAPPING = 3,
285 WS_ANY_ELEMENT_TYPE_MAPPING = 4
286 } WS_TYPE_MAPPING;
288 typedef enum {
289 WS_BOOL_TYPE,
290 WS_INT8_TYPE,
291 WS_INT16_TYPE,
292 WS_INT32_TYPE,
293 WS_INT64_TYPE,
294 WS_UINT8_TYPE,
295 WS_UINT16_TYPE,
296 WS_UINT32_TYPE,
297 WS_UINT64_TYPE,
298 WS_FLOAT_TYPE,
299 WS_DOUBLE_TYPE,
300 WS_DECIMAL_TYPE,
301 WS_DATETIME_TYPE,
302 WS_TIMESPAN_TYPE,
303 WS_GUID_TYPE,
304 WS_UNIQUE_ID_TYPE,
305 WS_STRING_TYPE,
306 WS_WSZ_TYPE,
307 WS_BYTES_TYPE,
308 WS_XML_STRING_TYPE,
309 WS_XML_QNAME_TYPE,
310 WS_XML_BUFFER_TYPE,
311 WS_CHAR_ARRAY_TYPE,
312 WS_UTF8_ARRAY_TYPE,
313 WS_BYTE_ARRAY_TYPE,
314 WS_DESCRIPTION_TYPE,
315 WS_STRUCT_TYPE,
316 WS_CUSTOM_TYPE,
317 WS_ENDPOINT_ADDRESS_TYPE,
318 WS_FAULT_TYPE,
319 WS_VOID_TYPE,
320 WS_ENUM_TYPE,
321 WS_DURATION_TYPE,
322 WS_UNION_TYPE,
323 WS_ANY_ATTRIBUTES_TYPE
324 } WS_TYPE;
326 typedef enum {
327 WS_READ_REQUIRED_VALUE = 1,
328 WS_READ_REQUIRED_POINTER = 2,
329 WS_READ_OPTIONAL_POINTER = 3,
330 WS_READ_NILLABLE_POINTER = 4,
331 WS_READ_NILLABLE_VALUE = 5
332 } WS_READ_OPTION;
334 typedef enum {
335 WS_WRITE_REQUIRED_VALUE = 1,
336 WS_WRITE_REQUIRED_POINTER = 2,
337 WS_WRITE_NILLABLE_VALUE = 3,
338 WS_WRITE_NILLABLE_POINTER = 4
339 } WS_WRITE_OPTION;
341 typedef struct _WS_BOOL_DESCRIPTION {
342 BOOL value;
343 } WS_BOOL_DESCRIPTION;
345 typedef struct _WS_INT8_DESCRIPTION {
346 char minValue;
347 char maxValue;
348 } WS_INT8_DESCRIPTION;
350 typedef struct _WS_INT16_DESCRIPTION {
351 short minValue;
352 short maxValue;
353 } WS_INT16_DESCRIPTION;
355 typedef struct _WS_INT32_DESCRIPTION {
356 int minValue;
357 int maxValue;
358 } WS_INT32_DESCRIPTION;
360 typedef struct _WS_INT64_DESCRIPTION {
361 __int64 minValue;
362 __int64 maxValue;
363 } WS_INT64_DESCRIPTION;
365 typedef struct _WS_UINT8_DESCRIPTION {
366 BYTE minValue;
367 BYTE maxValue;
368 } WS_UINT8_DESCRIPTION;
370 typedef struct _WS_UINT16_DESCRIPTION {
371 USHORT minValue;
372 USHORT maxValue;
373 } WS_UINT16_DESCRIPTION;
375 typedef struct _WS_UINT32_DESCRIPTION {
376 ULONG minValue;
377 ULONG maxValue;
378 } WS_UINT32_DESCRIPTION;
380 typedef struct _WS_UINT64_DESCRIPTION {
381 unsigned __int64 minValue;
382 unsigned __int64 maxValue;
383 } WS_UINT64_DESCRIPTION;
385 typedef struct _WS_WSZ_DESCRIPTION {
386 ULONG minCharCount;
387 ULONG maxCharCount;
388 } WS_WSZ_DESCRIPTION;
390 struct _WS_ENUM_VALUE {
391 int value;
392 WS_XML_STRING *name;
395 struct _WS_ENUM_DESCRIPTION {
396 WS_ENUM_VALUE *values;
397 ULONG valueCount;
398 ULONG maxByteCount;
399 ULONG *nameIndices;
402 struct _WS_DOUBLE_DESCRIPTION {
403 double minValue;
404 double maxValue;
407 typedef enum {
408 WS_TYPE_ATTRIBUTE_FIELD_MAPPING,
409 WS_ATTRIBUTE_FIELD_MAPPING,
410 WS_ELEMENT_FIELD_MAPPING,
411 WS_REPEATING_ELEMENT_FIELD_MAPPING,
412 WS_TEXT_FIELD_MAPPING,
413 WS_NO_FIELD_MAPPING,
414 WS_XML_ATTRIBUTE_FIELD_MAPPING,
415 WS_ELEMENT_CHOICE_FIELD_MAPPING,
416 WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING,
417 WS_ANY_ELEMENT_FIELD_MAPPING,
418 WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING,
419 WS_ANY_CONTENT_FIELD_MAPPING,
420 WS_ANY_ATTRIBUTES_FIELD_MAPPING
421 } WS_FIELD_MAPPING;
423 typedef struct _WS_DEFAULT_VALUE {
424 void *value;
425 ULONG valueSize;
426 } WS_DEFAULT_VALUE;
428 typedef struct _WS_ITEM_RANGE {
429 ULONG minItemCount;
430 ULONG maxItemCount;
431 } WS_ITEM_RANGE;
433 enum
435 WS_FIELD_POINTER = 0x1,
436 WS_FIELD_OPTIONAL = 0x2,
437 WS_FIELD_NILLABLE = 0x4,
438 WS_FIELD_NILLABLE_ITEM = 0x8,
439 WS_FIELD_OTHER_NAMESPACE = 0x10
442 typedef struct _WS_FIELD_DESCRIPTION {
443 WS_FIELD_MAPPING mapping;
444 WS_XML_STRING *localName;
445 WS_XML_STRING *ns;
446 WS_TYPE type;
447 void *typeDescription;
448 ULONG offset;
449 ULONG options;
450 WS_DEFAULT_VALUE *defaultValue;
451 ULONG countOffset;
452 WS_XML_STRING *itemLocalName;
453 WS_XML_STRING *itemNs;
454 WS_ITEM_RANGE *itemRange;
455 } WS_FIELD_DESCRIPTION;
457 enum
459 WS_STRUCT_ABSTRACT = 0x1,
460 WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT = 0x2,
461 WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES = 0x4
464 typedef struct _WS_STRUCT_DESCRIPTION {
465 ULONG size;
466 ULONG alignment;
467 WS_FIELD_DESCRIPTION **fields;
468 ULONG fieldCount;
469 WS_XML_STRING *typeLocalName;
470 WS_XML_STRING *typeNs;
471 struct _WS_STRUCT_DESCRIPTION *parentType;
472 struct _WS_STRUCT_DESCRIPTION **subTypes;
473 ULONG subTypeCount;
474 ULONG structOptions;
475 } WS_STRUCT_DESCRIPTION;
477 typedef struct _WS_ATTRIBUTE_DESCRIPTION {
478 WS_XML_STRING *attributeLocalName;
479 WS_XML_STRING *attributeNs;
480 WS_TYPE type;
481 void *typeDescription;
482 } WS_ATTRIBUTE_DESCRIPTION;
484 typedef struct _WS_ELEMENT_DESCRIPTION {
485 WS_XML_STRING *elementLocalName;
486 WS_XML_STRING *elementNs;
487 WS_TYPE type;
488 void *typeDescription;
489 } WS_ELEMENT_DESCRIPTION;
491 typedef struct _WS_STRING {
492 ULONG length;
493 WCHAR *chars;
494 } WS_STRING;
496 typedef enum {
497 WS_XML_NODE_TYPE_ELEMENT = 1,
498 WS_XML_NODE_TYPE_TEXT = 2,
499 WS_XML_NODE_TYPE_END_ELEMENT = 3,
500 WS_XML_NODE_TYPE_COMMENT = 4,
501 WS_XML_NODE_TYPE_CDATA = 6,
502 WS_XML_NODE_TYPE_END_CDATA = 7,
503 WS_XML_NODE_TYPE_EOF = 8,
504 WS_XML_NODE_TYPE_BOF = 9
505 } WS_XML_NODE_TYPE;
507 typedef struct _WS_XML_NODE {
508 WS_XML_NODE_TYPE nodeType;
509 } WS_XML_NODE;
511 typedef enum {
512 WS_MOVE_TO_ROOT_ELEMENT,
513 WS_MOVE_TO_NEXT_ELEMENT,
514 WS_MOVE_TO_PREVIOUS_ELEMENT,
515 WS_MOVE_TO_CHILD_ELEMENT,
516 WS_MOVE_TO_END_ELEMENT,
517 WS_MOVE_TO_PARENT_ELEMENT,
518 WS_MOVE_TO_NEXT_NODE,
519 WS_MOVE_TO_PREVIOUS_NODE,
520 WS_MOVE_TO_FIRST_NODE,
521 WS_MOVE_TO_BOF,
522 WS_MOVE_TO_EOF,
523 WS_MOVE_TO_CHILD_NODE
524 } WS_MOVE_TO;
526 typedef enum {
527 WS_XML_TEXT_TYPE_UTF8 = 1,
528 WS_XML_TEXT_TYPE_UTF16 = 2,
529 WS_XML_TEXT_TYPE_BASE64 = 3,
530 WS_XML_TEXT_TYPE_BOOL = 4,
531 WS_XML_TEXT_TYPE_INT32 = 5,
532 WS_XML_TEXT_TYPE_INT64 = 6,
533 WS_XML_TEXT_TYPE_UINT64 = 7,
534 WS_XML_TEXT_TYPE_FLOAT = 8,
535 WS_XML_TEXT_TYPE_DOUBLE = 9,
536 WS_XML_TEXT_TYPE_DECIMAL = 10,
537 WS_XML_TEXT_TYPE_GUID = 11,
538 WS_XML_TEXT_TYPE_UNIQUE_ID = 12,
539 WS_XML_TEXT_TYPE_DATETIME = 13,
540 WS_XML_TEXT_TYPE_TIMESPAN = 14,
541 WS_XML_TEXT_TYPE_QNAME = 15,
542 WS_XML_TEXT_TYPE_LIST = 16
543 } WS_XML_TEXT_TYPE;
545 typedef struct _WS_XML_TEXT {
546 WS_XML_TEXT_TYPE textType;
547 } WS_XML_TEXT;
549 typedef struct _WS_XML_UTF8_TEXT {
550 WS_XML_TEXT text;
551 WS_XML_STRING value;
552 } WS_XML_UTF8_TEXT;
554 typedef enum {
555 WS_BOOL_VALUE_TYPE,
556 WS_INT8_VALUE_TYPE,
557 WS_INT16_VALUE_TYPE,
558 WS_INT32_VALUE_TYPE,
559 WS_INT64_VALUE_TYPE,
560 WS_UINT8_VALUE_TYPE,
561 WS_UINT16_VALUE_TYPE,
562 WS_UINT32_VALUE_TYPE,
563 WS_UINT64_VALUE_TYPE,
564 WS_FLOAT_VALUE_TYPE,
565 WS_DOUBLE_VALUE_TYPE,
566 WS_DECIMAL_VALUE_TYPE,
567 WS_DATETIME_VALUE_TYPE,
568 WS_TIMESPAN_VALUE_TYPE,
569 WS_GUID_VALUE_TYPE,
570 WS_DURATION_VALUE_TYPE
571 } WS_VALUE_TYPE;
573 typedef struct _WS_XML_ATTRIBUTE {
574 BYTE singleQuote;
575 BYTE isXmlNs;
576 WS_XML_STRING *prefix;
577 WS_XML_STRING *localName;
578 WS_XML_STRING *ns;
579 WS_XML_TEXT *value;
580 } WS_XML_ATTRIBUTE;
582 typedef struct _WS_XML_ELEMENT_NODE {
583 WS_XML_NODE node;
584 WS_XML_STRING *prefix;
585 WS_XML_STRING *localName;
586 WS_XML_STRING *ns;
587 ULONG attributeCount;
588 WS_XML_ATTRIBUTE **attributes;
589 BOOL isEmpty;
590 } WS_XML_ELEMENT_NODE;
592 typedef struct _WS_XML_TEXT_NODE {
593 WS_XML_NODE node;
594 WS_XML_TEXT *text;
595 } WS_XML_TEXT_NODE;
597 typedef struct _WS_XML_COMMENT_NODE {
598 WS_XML_NODE node;
599 WS_XML_STRING value;
600 } WS_XML_COMMENT_NODE;
602 typedef struct _WS_XML_NODE_POSITION {
603 WS_XML_BUFFER *buffer;
604 void *node;
605 } WS_XML_NODE_POSITION;
607 typedef enum {
608 WS_SERVICE_PROXY_STATE_CREATED,
609 WS_SERVICE_PROXY_STATE_OPENING,
610 WS_SERVICE_PROXY_STATE_OPEN,
611 WS_SERVICE_PROXY_STATE_CLOSING,
612 WS_SERVICE_PROXY_STATE_CLOSED,
613 WS_SERVICE_PROXY_STATE_FAULTED
614 } WS_SERVICE_PROXY_STATE;
616 typedef enum {
617 WS_PROXY_PROPERTY_CALL_TIMEOUT,
618 WS_PROXY_PROPERTY_MESSAGE_PROPERTIES,
619 WS_PROXY_PROPERTY_MAX_CALL_POOL_SIZE,
620 WS_PROXY_PROPERTY_STATE,
621 WS_PROXY_PROPERTY_MAX_PENDING_CALLS,
622 WS_PROXY_PROPERTY_MAX_CLOSE_TIMEOUT,
623 WS_PROXY_FAULT_LANG_ID
624 } WS_PROXY_PROPERTY_ID;
626 struct _WS_PROXY_PROPERTY {
627 WS_PROXY_PROPERTY_ID id;
628 void *value;
629 ULONG valueSize;
632 typedef enum {
633 WS_CHANNEL_TYPE_INPUT = 0x1,
634 WS_CHANNEL_TYPE_OUTPUT = 0x2,
635 WS_CHANNEL_TYPE_SESSION = 0x4,
636 WS_CHANNEL_TYPE_INPUT_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_SESSION),
637 WS_CHANNEL_TYPE_OUTPUT_SESSION = (WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION),
638 WS_CHANNEL_TYPE_DUPLEX = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT),
639 WS_CHANNEL_TYPE_DUPLEX_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION),
640 WS_CHANNEL_TYPE_REQUEST = 0x8,
641 WS_CHANNEL_TYPE_REPLY = 0x10
642 } WS_CHANNEL_TYPE;
644 typedef enum {
645 WS_ENCODING_XML_BINARY_1,
646 WS_ENCODING_XML_BINARY_SESSION_1,
647 WS_ENCODING_XML_MTOM_UTF8,
648 WS_ENCODING_XML_MTOM_UTF16BE,
649 WS_ENCODING_XML_MTOM_UTF16LE,
650 WS_ENCODING_XML_UTF8,
651 WS_ENCODING_XML_UTF16BE,
652 WS_ENCODING_XML_UTF16LE,
653 WS_ENCODING_RAW
654 } WS_ENCODING;
656 typedef enum {
657 WS_CHANNEL_STATE_CREATED,
658 WS_CHANNEL_STATE_OPENING,
659 WS_CHANNEL_STATE_ACCEPTING,
660 WS_CHANNEL_STATE_OPEN,
661 WS_CHANNEL_STATE_FAULTED,
662 WS_CHANNEL_STATE_CLOSING,
663 WS_CHANNEL_STATE_CLOSED
664 } WS_CHANNEL_STATE;
666 typedef enum {
667 WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE = 0,
668 WS_CHANNEL_PROPERTY_MAX_STREAMED_MESSAGE_SIZE = 1,
669 WS_CHANNEL_PROPERTY_MAX_STREAMED_START_SIZE = 2,
670 WS_CHANNEL_PROPERTY_MAX_STREAMED_FLUSH_SIZE = 3,
671 WS_CHANNEL_PROPERTY_ENCODING = 4,
672 WS_CHANNEL_PROPERTY_ENVELOPE_VERSION = 5,
673 WS_CHANNEL_PROPERTY_ADDRESSING_VERSION = 6,
674 WS_CHANNEL_PROPERTY_MAX_SESSION_DICTIONARY_SIZE = 7,
675 WS_CHANNEL_PROPERTY_STATE = 8,
676 WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL = 9,
677 WS_CHANNEL_PROPERTY_IP_VERSION = 10,
678 WS_CHANNEL_PROPERTY_RESOLVE_TIMEOUT = 11,
679 WS_CHANNEL_PROPERTY_CONNECT_TIMEOUT = 12,
680 WS_CHANNEL_PROPERTY_SEND_TIMEOUT = 13,
681 WS_CHANNEL_PROPERTY_RECEIVE_RESPONSE_TIMEOUT = 14,
682 WS_CHANNEL_PROPERTY_RECEIVE_TIMEOUT = 15,
683 WS_CHANNEL_PROPERTY_CLOSE_TIMEOUT = 16,
684 WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS = 17,
685 WS_CHANNEL_PROPERTY_TRANSFER_MODE = 18,
686 WS_CHANNEL_PROPERTY_MULTICAST_INTERFACE = 19,
687 WS_CHANNEL_PROPERTY_MULTICAST_HOPS = 20,
688 WS_CHANNEL_PROPERTY_REMOTE_ADDRESS = 21,
689 WS_CHANNEL_PROPERTY_REMOTE_IP_ADDRESS = 22,
690 WS_CHANNEL_PROPERTY_HTTP_CONNECTION_ID = 23,
691 WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_CALLBACKS = 24,
692 WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_PARAMETERS = 25,
693 WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_INSTANCE = 26,
694 WS_CHANNEL_PROPERTY_TRANSPORT_URL = 27,
695 WS_CHANNEL_PROPERTY_NO_DELAY = 28,
696 WS_CHANNEL_PROPERTY_SEND_KEEP_ALIVES = 29,
697 WS_CHANNEL_PROPERTY_KEEP_ALIVE_TIME = 30,
698 WS_CHANNEL_PROPERTY_KEEP_ALIVE_INTERVAL = 31,
699 WS_CHANNEL_PROPERTY_MAX_HTTP_SERVER_CONNECTIONS = 32,
700 WS_CHANNEL_PROPERTY_IS_SESSION_SHUT_DOWN = 33,
701 WS_CHANNEL_PROPERTY_CHANNEL_TYPE = 34,
702 WS_CHANNEL_PROPERTY_TRIM_BUFFERED_MESSAGE_SIZE = 35,
703 WS_CHANNEL_PROPERTY_ENCODER = 36,
704 WS_CHANNEL_PROPERTY_DECODER = 37,
705 WS_CHANNEL_PROPERTY_PROTECTION_LEVEL = 38,
706 WS_CHANNEL_PROPERTY_COOKIE_MODE = 39,
707 WS_CHANNEL_PROPERTY_HTTP_PROXY_SETTING_MODE = 40,
708 WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY = 41,
709 WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING = 42,
710 WS_CHANNEL_PROPERTY_ENABLE_HTTP_REDIRECT = 43,
711 WS_CHANNEL_PROPERTY_HTTP_REDIRECT_CALLBACK_CONTEXT = 44,
712 WS_CHANNEL_PROPERTY_FAULTS_AS_ERRORS = 45,
713 WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS = 46,
714 WS_CHANNEL_PROPERTY_HTTP_SERVER_SPN = 47,
715 WS_CHANNEL_PROPERTY_HTTP_PROXY_SPN = 48,
716 WS_CHANNEL_PROPERTY_MAX_HTTP_REQUEST_HEADERS_BUFFER_SIZE = 49
717 } WS_CHANNEL_PROPERTY_ID;
719 struct _WS_CHANNEL_PROPERTY {
720 WS_CHANNEL_PROPERTY_ID id;
721 void *value;
722 ULONG valueSize;
725 struct _WS_CHANNEL_PROPERTIES {
726 WS_CHANNEL_PROPERTY *properties;
727 ULONG propertyCount;
730 typedef enum {
731 WS_HTTP_CHANNEL_BINDING,
732 WS_TCP_CHANNEL_BINDING,
733 WS_UDP_CHANNEL_BINDING,
734 WS_CUSTOM_CHANNEL_BINDING,
735 WS_NAMEDPIPE_CHANNEL_BINDING
736 } WS_CHANNEL_BINDING;
738 typedef enum {
739 WS_SSL_TRANSPORT_SECURITY_BINDING_TYPE,
740 WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TYPE,
741 WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TYPE,
742 WS_USERNAME_MESSAGE_SECURITY_BINDING_TYPE,
743 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TYPE,
744 WS_XML_TOKEN_MESSAGE_SECURITY_BINDING_TYPE,
745 WS_SAML_MESSAGE_SECURITY_BINDING_TYPE,
746 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TYPE,
747 WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING_TYPE
748 } WS_SECURITY_BINDING_TYPE;
750 typedef enum {
751 WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT = 1,
752 WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE = 2,
753 WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH = 3,
754 WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS = 4,
755 WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL = 5,
756 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME = 6,
757 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET = 7,
758 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM = 8,
759 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM = 9,
760 WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN = 10,
761 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE = 11,
762 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE = 12,
763 WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES = 13,
764 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS = 14,
765 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS = 15,
766 WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION = 16,
767 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW = 17,
768 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL = 18,
769 WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL = 19,
770 WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE = 20,
771 WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK = 21,
772 WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS = 22,
773 WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT = 23
774 } WS_SECURITY_BINDING_PROPERTY_ID;
776 struct _WS_SECURITY_BINDING_PROPERTY {
777 WS_SECURITY_BINDING_PROPERTY_ID id;
778 void *value;
779 ULONG valueSize;
782 struct _WS_SECURITY_BINDING_PROPERTIES {
783 WS_SECURITY_BINDING_PROPERTY *properties;
784 ULONG propertyCount;
787 struct _WS_SECURITY_BINDING {
788 WS_SECURITY_BINDING_TYPE bindingType;
789 WS_SECURITY_BINDING_PROPERTY *properties;
790 ULONG propertyCount;
793 typedef enum {
794 WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL = 1,
795 WS_SECURITY_PROPERTY_ALGORITHM_SUITE = 2,
796 WS_SECURITY_PROPERTY_ALGORITHM_SUITE_NAME = 3,
797 WS_SECURITY_PROPERTY_MAX_ALLOWED_LATENCY = 4,
798 WS_SECURITY_PROPERTY_TIMESTAMP_VALIDITY_DURATION = 5,
799 WS_SECURITY_PROPERTY_MAX_ALLOWED_CLOCK_SKEW = 6,
800 WS_SECURITY_PROPERTY_TIMESTAMP_USAGE = 7,
801 WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT = 8,
802 WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION = 9,
803 WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_POLICY = 10,
804 WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_SCENARIO = 11,
805 WS_SECURITY_PROPERTY_SERVICE_IDENTITIES = 12
806 } WS_SECURITY_PROPERTY_ID;
808 struct _WS_SECURITY_PROPERTY {
809 WS_SECURITY_PROPERTY_ID id;
810 void *value;
811 ULONG valueSize;
814 struct _WS_SECURITY_PROPERTIES {
815 WS_SECURITY_PROPERTY *properties;
816 ULONG propertyCount;
819 struct _WS_SECURITY_DESCRIPTION {
820 WS_SECURITY_BINDING **securityBindings;
821 ULONG securityBindingCount;
822 WS_SECURITY_PROPERTY *properties;
823 ULONG propertyCount;
826 typedef enum {
827 WS_HTTP_BINDING_TEMPLATE_TYPE,
828 WS_HTTP_SSL_BINDING_TEMPLATE_TYPE,
829 WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE_TYPE,
830 WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE_TYPE,
831 WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE_TYPE,
832 WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE,
833 WS_TCP_BINDING_TEMPLATE_TYPE,
834 WS_TCP_SSPI_BINDING_TEMPLATE_TYPE,
835 WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE_TYPE,
836 WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE,
837 WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE,
838 WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE,
839 WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE,
840 WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE
841 } WS_BINDING_TEMPLATE_TYPE;
843 typedef enum {
844 WS_SUBJECT_NAME_CERT_CREDENTIAL_TYPE = 1,
845 WS_THUMBPRINT_CERT_CREDENTIAL_TYPE = 2,
846 WS_CUSTOM_CERT_CREDENTIAL_TYPE = 3
847 } WS_CERT_CREDENTIAL_TYPE;
849 struct _WS_CERT_CREDENTIAL {
850 WS_CERT_CREDENTIAL_TYPE credentialType;
853 struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE {
854 WS_SECURITY_BINDING_PROPERTIES securityBindingProperties;
855 WS_CERT_CREDENTIAL *localCertCredential;
858 struct _WS_HTTP_BINDING_TEMPLATE {
859 WS_CHANNEL_PROPERTIES channelProperties;
862 struct _WS_HTTP_SSL_BINDING_TEMPLATE {
863 WS_CHANNEL_PROPERTIES channelProperties;
864 WS_SECURITY_PROPERTIES securityProperties;
865 WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE sslTransportSecurityBinding;
868 typedef enum {
869 WS_ADDRESSING_VERSION_0_9 = 1,
870 WS_ADDRESSING_VERSION_1_0 = 2,
871 WS_ADDRESSING_VERSION_TRANSPORT = 3
872 } WS_ADDRESSING_VERSION;
874 typedef enum {
875 WS_ENVELOPE_VERSION_SOAP_1_1 = 1,
876 WS_ENVELOPE_VERSION_SOAP_1_2 = 2,
877 WS_ENVELOPE_VERSION_NONE = 3
878 } WS_ENVELOPE_VERSION;
880 typedef enum {
881 WS_MESSAGE_PROPERTY_STATE,
882 WS_MESSAGE_PROPERTY_HEAP,
883 WS_MESSAGE_PROPERTY_ENVELOPE_VERSION,
884 WS_MESSAGE_PROPERTY_ADDRESSING_VERSION,
885 WS_MESSAGE_PROPERTY_HEADER_BUFFER,
886 WS_MESSAGE_PROPERTY_HEADER_POSITION,
887 WS_MESSAGE_PROPERTY_BODY_READER,
888 WS_MESSAGE_PROPERTY_BODY_WRITER,
889 WS_MESSAGE_PROPERTY_IS_ADDRESSED,
890 WS_MESSAGE_PROPERTY_HEAP_PROPERTIES,
891 WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES,
892 WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES,
893 WS_MESSAGE_PROPERTY_IS_FAULT,
894 WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS,
895 WS_MESSAGE_PROPERTY_USERNAME,
896 WS_MESSAGE_PROPERTY_ENCODED_CERT,
897 WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN,
898 WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN,
899 WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN,
900 WS_MESSAGE_PROPERTY_SAML_ASSERTION,
901 WS_MESSAGE_PROPERTY_SECURITY_CONTEXT,
902 WS_MESSAGE_PROPERTY_PROTECTION_LEVEL
903 } WS_MESSAGE_PROPERTY_ID;
905 struct _WS_MESSAGE_PROPERTY {
906 WS_MESSAGE_PROPERTY_ID id;
907 void *value;
908 ULONG valueSize;
911 struct _WS_MESSAGE_PROPERTIES {
912 WS_MESSAGE_PROPERTY *properties;
913 ULONG propertyCount;
916 typedef enum {
917 WS_MESSAGE_STATE_EMPTY = 1,
918 WS_MESSAGE_STATE_INITIALIZED = 2,
919 WS_MESSAGE_STATE_READING = 3,
920 WS_MESSAGE_STATE_WRITING = 4,
921 WS_MESSAGE_STATE_DONE = 5
922 } WS_MESSAGE_STATE;
924 typedef enum {
925 WS_BLANK_MESSAGE,
926 WS_DUPLICATE_MESSAGE,
927 WS_REQUEST_MESSAGE,
928 WS_REPLY_MESSAGE,
929 WS_FAULT_MESSAGE
930 } WS_MESSAGE_INITIALIZATION;
932 typedef enum {
933 WS_DNS_ENDPOINT_IDENTITY_TYPE = 1,
934 WS_UPN_ENDPOINT_IDENTITY_TYPE = 2,
935 WS_SPN_ENDPOINT_IDENTITY_TYPE = 3,
936 WS_RSA_ENDPOINT_IDENTITY_TYPE = 4,
937 WS_CERT_ENDPOINT_IDENTITY_TYPE = 5,
938 WS_UNKNOWN_ENDPOINT_IDENTITY_TYPE = 6
939 } WS_ENDPOINT_IDENTITY_TYPE;
941 struct _WS_ENDPOINT_IDENTITY {
942 WS_ENDPOINT_IDENTITY_TYPE identityType;
945 struct _WS_ENDPOINT_ADDRESS {
946 WS_STRING url;
947 WS_XML_BUFFER *headers;
948 WS_XML_BUFFER *extensions;
949 WS_ENDPOINT_IDENTITY *identity;
952 struct _WS_HTTP_POLICY_DESCRIPTION {
953 WS_CHANNEL_PROPERTIES channelProperties;
956 struct _WS_MESSAGE_DESCRIPTION {
957 WS_XML_STRING *action;
958 WS_ELEMENT_DESCRIPTION *bodyElementDescription;
961 typedef enum {
962 WS_PARAMETER_TYPE_NORMAL,
963 WS_PARAMETER_TYPE_ARRAY,
964 WS_PARAMETER_TYPE_ARRAY_COUNT,
965 WS_PARAMETER_TYPE_MESSAGES
966 } WS_PARAMETER_TYPE;
968 struct _WS_PARAMETER_DESCRIPTION {
969 WS_PARAMETER_TYPE parameterType;
970 USHORT inputMessageIndex;
971 USHORT outputMessageIndex;
974 typedef HRESULT (CALLBACK *WS_SERVICE_STUB_CALLBACK)(
975 const WS_OPERATION_CONTEXT *context,
976 void *frame,
977 const void *callback,
978 const WS_ASYNC_CONTEXT *asyncContext,
979 WS_ERROR *error );
981 typedef enum {
982 WS_NON_RPC_LITERAL_OPERATION,
983 WS_RPC_LITERAL_OPERATION
984 } WS_OPERATION_STYLE;
986 struct _WS_OPERATION_DESCRIPTION {
987 ULONG versionInfo;
988 WS_MESSAGE_DESCRIPTION *inputMessageDescription;
989 WS_MESSAGE_DESCRIPTION *outputMessageDescription;
990 ULONG inputMessageOptions;
991 ULONG outputMessageOptions;
992 USHORT parameterCount;
993 WS_PARAMETER_DESCRIPTION *parameterDescription;
994 WS_SERVICE_STUB_CALLBACK stubCallback;
995 WS_OPERATION_STYLE style;
998 typedef enum {
999 WS_CALL_PROPERTY_CHECK_MUST_UNDERSTAND,
1000 WS_CALL_PROPERTY_SEND_MESSAGE_CONTEXT,
1001 WS_CALL_PROPERTY_RECEIVE_MESSAGE_CONTEXT,
1002 WS_CALL_PROPERTY_CALL_ID
1003 } WS_CALL_PROPERTY_ID;
1005 struct _WS_CALL_PROPERTY {
1006 WS_CALL_PROPERTY_ID id;
1007 void *value;
1008 ULONG valueSize;
1011 typedef enum {
1012 WS_DATETIME_FORMAT_UTC,
1013 WS_DATETIME_FORMAT_LOCAL,
1014 WS_DATETIME_FORMAT_NONE
1015 } WS_DATETIME_FORMAT;
1017 struct _WS_DATETIME {
1018 unsigned __int64 ticks;
1019 WS_DATETIME_FORMAT format;
1022 struct _WS_DATETIME_DESCRIPTION {
1023 WS_DATETIME minValue;
1024 WS_DATETIME maxValue;
1027 typedef enum {
1028 WS_URL_HTTP_SCHEME_TYPE,
1029 WS_URL_HTTPS_SCHEME_TYPE,
1030 WS_URL_NETTCP_SCHEME_TYPE,
1031 WS_URL_SOAPUDP_SCHEME_TYPE,
1032 WS_URL_NETPIPE_SCHEME_TYPE
1033 } WS_URL_SCHEME_TYPE;
1035 enum {
1036 WS_URL_FLAGS_ALLOW_HOST_WILDCARDS = 0x1,
1037 WS_URL_FLAGS_NO_PATH_COLLAPSE = 0x2,
1038 WS_URL_FLAGS_ZERO_TERMINATE = 0x4
1041 struct _WS_URL {
1042 WS_URL_SCHEME_TYPE scheme;
1045 struct _WS_HTTP_URL {
1046 WS_URL url;
1047 WS_STRING host;
1048 USHORT port;
1049 WS_STRING portAsString;
1050 WS_STRING path;
1051 WS_STRING query;
1052 WS_STRING fragment;
1055 struct _WS_HTTPS_URL {
1056 WS_URL url;
1057 WS_STRING host;
1058 USHORT port;
1059 WS_STRING portAsString;
1060 WS_STRING path;
1061 WS_STRING query;
1062 WS_STRING fragment;
1065 struct _WS_SOAPUDP_URL {
1066 WS_URL url;
1067 WS_STRING host;
1068 USHORT port;
1069 WS_STRING portAsString;
1070 WS_STRING path;
1071 WS_STRING query;
1072 WS_STRING fragment;
1075 struct _WS_NETPIPE_URL {
1076 WS_URL url;
1077 WS_STRING host;
1078 USHORT port;
1079 WS_STRING portAsString;
1080 WS_STRING path;
1081 WS_STRING query;
1082 WS_STRING fragment;
1085 typedef enum
1087 WS_IP_VERSION_4 = 1,
1088 WS_IP_VERSION_6 = 2,
1089 WS_IP_VERSION_AUTO = 3
1090 } WS_IP_VERSION;
1092 typedef enum
1094 WS_BUFFERED_TRANSFER_MODE = 0x0,
1095 WS_STREAMED_INPUT_TRANSFER_MODE = 0x1,
1096 WS_STREAMED_OUTPUT_TRANSFER_MODE = 0x2,
1097 WS_STREAMED_TRANSFER_MODE = (WS_STREAMED_INPUT_TRANSFER_MODE|WS_STREAMED_OUTPUT_TRANSFER_MODE)
1098 } WS_TRANSFER_MODE;
1100 typedef HRESULT (CALLBACK *WS_CREATE_CHANNEL_CALLBACK)
1101 (WS_CHANNEL_TYPE, const void*, ULONG, void**, WS_ERROR*);
1103 typedef void (CALLBACK *WS_FREE_CHANNEL_CALLBACK)
1104 (void*);
1106 typedef HRESULT (CALLBACK *WS_RESET_CHANNEL_CALLBACK)
1107 (void*, WS_ERROR*);
1109 typedef HRESULT (CALLBACK *WS_OPEN_CHANNEL_CALLBACK)
1110 (void*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1112 typedef HRESULT (CALLBACK *WS_CLOSE_CHANNEL_CALLBACK)
1113 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1115 typedef HRESULT (CALLBACK *WS_ABORT_CHANNEL_CALLBACK)
1116 (void*, WS_ERROR*);
1118 typedef HRESULT (CALLBACK *WS_GET_CHANNEL_PROPERTY_CALLBACK)
1119 (void*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1121 typedef HRESULT (CALLBACK *WS_SET_CHANNEL_PROPERTY_CALLBACK)
1122 (void*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*);
1124 typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_START_CALLBACK)
1125 (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1127 typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_END_CALLBACK)
1128 (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1130 typedef HRESULT (CALLBACK *WS_READ_MESSAGE_START_CALLBACK)
1131 (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1133 typedef HRESULT (CALLBACK *WS_READ_MESSAGE_END_CALLBACK)
1134 (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1136 typedef HRESULT (CALLBACK *WS_ABANDON_MESSAGE_CALLBACK)
1137 (void*, WS_MESSAGE*, WS_ERROR*);
1139 typedef HRESULT (CALLBACK *WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK)
1140 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1142 struct _WS_CUSTOM_CHANNEL_CALLBACKS
1144 WS_CREATE_CHANNEL_CALLBACK createChannelCallback;
1145 WS_FREE_CHANNEL_CALLBACK freeChannelCallback;
1146 WS_RESET_CHANNEL_CALLBACK resetChannelCallback;
1147 WS_OPEN_CHANNEL_CALLBACK openChannelCallback;
1148 WS_CLOSE_CHANNEL_CALLBACK closeChannelCallback;
1149 WS_ABORT_CHANNEL_CALLBACK abortChannelCallback;
1150 WS_GET_CHANNEL_PROPERTY_CALLBACK getChannelPropertyCallback;
1151 WS_SET_CHANNEL_PROPERTY_CALLBACK setChannelPropertyCallback;
1152 WS_WRITE_MESSAGE_START_CALLBACK writeMessageStartCallback;
1153 WS_WRITE_MESSAGE_END_CALLBACK writeMessageEndCallback;
1154 WS_READ_MESSAGE_START_CALLBACK readMessageStartCallback;
1155 WS_READ_MESSAGE_END_CALLBACK readMessageEndCallback;
1156 WS_ABANDON_MESSAGE_CALLBACK abandonMessageCallback;
1157 WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK shutdownSessionChannelCallback;
1160 typedef HRESULT (CALLBACK *WS_CREATE_ENCODER_CALLBACK)
1161 (void*, WS_WRITE_CALLBACK, void*, void**, WS_ERROR*);
1163 typedef HRESULT (CALLBACK *WS_ENCODER_GET_CONTENT_TYPE_CALLBACK)
1164 (void*, const WS_STRING*, WS_STRING*, WS_STRING*, WS_ERROR*);
1166 typedef HRESULT (CALLBACK *WS_ENCODER_START_CALLBACK)
1167 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1169 typedef HRESULT (CALLBACK *WS_ENCODER_ENCODE_CALLBACK)
1170 (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1172 typedef HRESULT (CALLBACK *WS_ENCODER_END_CALLBACK)
1173 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1175 typedef void (CALLBACK *WS_FREE_ENCODER_CALLBACK)
1176 (void*);
1178 struct _WS_CHANNEL_ENCODER
1180 void *createContext;
1181 WS_CREATE_ENCODER_CALLBACK createEncoderCallback;
1182 WS_ENCODER_GET_CONTENT_TYPE_CALLBACK encoderGetContentTypeCallback;
1183 WS_ENCODER_START_CALLBACK encoderStartCallback;
1184 WS_ENCODER_ENCODE_CALLBACK encoderEncodeCallback;
1185 WS_ENCODER_END_CALLBACK encoderEndCallback;
1186 WS_FREE_ENCODER_CALLBACK freeEncoderCallback;
1189 typedef HRESULT (CALLBACK *WS_CREATE_DECODER_CALLBACK)
1190 (void*, WS_READ_CALLBACK, void*, void**, WS_ERROR*);
1192 typedef HRESULT (CALLBACK *WS_DECODER_GET_CONTENT_TYPE_CALLBACK)
1193 (void*, const WS_STRING*, const WS_STRING*, WS_STRING*, WS_ERROR*);
1195 typedef HRESULT (CALLBACK *WS_DECODER_START_CALLBACK)
1196 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1198 typedef HRESULT (CALLBACK *WS_DECODER_DECODE_CALLBACK)
1199 (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1201 typedef HRESULT (CALLBACK *WS_DECODER_END_CALLBACK)
1202 (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1204 typedef void (CALLBACK *WS_FREE_DECODER_CALLBACK)
1205 (void*);
1207 struct _WS_CHANNEL_DECODER
1209 void *createContext;
1210 WS_CREATE_DECODER_CALLBACK createDecoderCallback;
1211 WS_DECODER_GET_CONTENT_TYPE_CALLBACK decoderGetContentTypeCallback;
1212 WS_DECODER_START_CALLBACK decoderStartCallback;
1213 WS_DECODER_DECODE_CALLBACK decoderDecodeCallback;
1214 WS_DECODER_END_CALLBACK decoderEndCallback;
1215 WS_FREE_DECODER_CALLBACK freeDecoderCallback;
1218 typedef enum
1220 WS_PROTECTION_LEVEL_NONE = 1,
1221 WS_PROTECTION_LEVEL_SIGN = 2,
1222 WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT = 3
1223 } WS_PROTECTION_LEVEL;
1225 typedef enum
1227 WS_MANUAL_COOKIE_MODE = 1,
1228 WS_AUTO_COOKIE_MODE = 2
1229 } WS_COOKIE_MODE;
1231 typedef enum
1233 WS_HTTP_PROXY_SETTING_MODE_AUTO = 0x1,
1234 WS_HTTP_PROXY_SETTING_MODE_NONE = 0x2,
1235 WS_HTTP_PROXY_SETTING_MODE_CUSTOM = 0x3
1236 } WS_HTTP_PROXY_SETTING_MODE;
1238 struct _WS_CUSTOM_HTTP_PROXY
1240 WS_STRING servers;
1241 WS_STRING bypass;
1244 struct _WS_HTTP_HEADER_MAPPING
1246 WS_XML_STRING headerName;
1247 ULONG headerMappingOptions;
1250 struct _WS_HTTP_MESSAGE_MAPPING
1252 ULONG requestMappingOptions;
1253 ULONG responseMappingOptions;
1254 WS_HTTP_HEADER_MAPPING **requestHeaderMappings;
1255 ULONG requestHeaderMappingCount;
1256 WS_HTTP_HEADER_MAPPING **responseHeaderMappings;
1257 ULONG responseHeaderMappingCount;
1260 typedef HRESULT (CALLBACK *WS_HTTP_REDIRECT_CALLBACK)
1261 (void*, const WS_STRING*, const WS_STRING*);
1263 struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT
1265 WS_HTTP_REDIRECT_CALLBACK callback;
1266 void *state;
1269 HRESULT WINAPI WsAlloc(WS_HEAP*, SIZE_T, void**, WS_ERROR*);
1270 HRESULT WINAPI WsCall(WS_SERVICE_PROXY*, const WS_OPERATION_DESCRIPTION*, const void**,
1271 WS_HEAP*, const WS_CALL_PROPERTY*, const ULONG, const WS_ASYNC_CONTEXT*,
1272 WS_ERROR*);
1273 HRESULT WINAPI WsCloseChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1274 HRESULT WINAPI WsCloseServiceProxy(WS_SERVICE_PROXY*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1275 HRESULT WINAPI WsCombineUrl(const WS_STRING*, const WS_STRING*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*);
1276 HRESULT WINAPI WsCreateChannel(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_CHANNEL_PROPERTY*,
1277 ULONG, const WS_SECURITY_DESCRIPTION*, WS_CHANNEL**, WS_ERROR*);
1278 HRESULT WINAPI WsCreateError(const WS_ERROR_PROPERTY*, ULONG, WS_ERROR**);
1279 HRESULT WINAPI WsCreateHeap(SIZE_T, SIZE_T, const WS_HEAP_PROPERTY*, ULONG, WS_HEAP**, WS_ERROR*);
1280 HRESULT WINAPI WsCreateMessage(WS_ENVELOPE_VERSION, WS_ADDRESSING_VERSION, const WS_MESSAGE_PROPERTY*,
1281 ULONG, WS_MESSAGE**, WS_ERROR*);
1282 HRESULT WINAPI WsCreateMessageForChannel(WS_CHANNEL*, const WS_MESSAGE_PROPERTY*, ULONG, WS_MESSAGE**,
1283 WS_ERROR*);
1284 HRESULT WINAPI WsCreateReader(const WS_XML_READER_PROPERTY*, ULONG, WS_XML_READER**, WS_ERROR*);
1285 HRESULT WINAPI WsCreateServiceProxy(const WS_CHANNEL_TYPE, const WS_CHANNEL_BINDING,
1286 const WS_SECURITY_DESCRIPTION*, const WS_PROXY_PROPERTY*,
1287 const ULONG, const WS_CHANNEL_PROPERTY*, const ULONG,
1288 WS_SERVICE_PROXY**, WS_ERROR*);
1289 HRESULT WINAPI WsCreateServiceProxyFromTemplate(WS_CHANNEL_TYPE, const WS_PROXY_PROPERTY*,
1290 const ULONG, WS_BINDING_TEMPLATE_TYPE,
1291 void*, ULONG, const void*, ULONG,
1292 WS_SERVICE_PROXY**, WS_ERROR*);
1293 HRESULT WINAPI WsCreateWriter(const WS_XML_WRITER_PROPERTY*, ULONG, WS_XML_WRITER**, WS_ERROR*);
1294 HRESULT WINAPI WsCreateXmlBuffer(WS_HEAP*, const WS_XML_BUFFER_PROPERTY*, ULONG, WS_XML_BUFFER**,
1295 WS_ERROR*);
1296 HRESULT WINAPI WsDateTimeToFileTime(const WS_DATETIME*, FILETIME*, WS_ERROR*);
1297 HRESULT WINAPI WsDecodeUrl(const WS_STRING*, ULONG, WS_HEAP*, WS_URL**, WS_ERROR*);
1298 HRESULT WINAPI WsEncodeUrl(const WS_URL*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*);
1299 HRESULT WINAPI WsFileTimeToDateTime(const FILETIME*, WS_DATETIME*, WS_ERROR*);
1300 HRESULT WINAPI WsFillReader(WS_XML_READER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1301 HRESULT WINAPI WsFindAttribute(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, BOOL,
1302 ULONG*, WS_ERROR*);
1303 void WINAPI WsFreeChannel(WS_CHANNEL*);
1304 void WINAPI WsFreeError(WS_ERROR*);
1305 void WINAPI WsFreeHeap(WS_HEAP*);
1306 void WINAPI WsFreeMessage(WS_MESSAGE*);
1307 void WINAPI WsFreeReader(WS_XML_READER*);
1308 void WINAPI WsFreeServiceProxy(WS_SERVICE_PROXY*);
1309 void WINAPI WsFreeWriter(WS_XML_WRITER*);
1310 HRESULT WINAPI WsGetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1311 HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG);
1312 HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING*);
1313 HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1314 HRESULT WINAPI WsGetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1315 HRESULT WINAPI WsGetNamespaceFromPrefix(WS_XML_READER*, const WS_XML_STRING*, BOOL,
1316 const WS_XML_STRING**, WS_ERROR*);
1317 HRESULT WINAPI WsGetPrefixFromNamespace(WS_XML_WRITER*, const WS_XML_STRING*, BOOL,
1318 const WS_XML_STRING**, WS_ERROR*);
1319 HRESULT WINAPI WsGetReaderNode(WS_XML_READER*, const WS_XML_NODE**, WS_ERROR*);
1320 HRESULT WINAPI WsGetReaderPosition(WS_XML_READER*, WS_XML_NODE_POSITION*, WS_ERROR*);
1321 HRESULT WINAPI WsGetReaderProperty(WS_XML_READER*, WS_XML_READER_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1322 HRESULT WINAPI WsGetServiceProxyProperty(WS_SERVICE_PROXY*, const WS_PROXY_PROPERTY_ID, void*,
1323 ULONG, WS_ERROR*);
1324 HRESULT WINAPI WsGetWriterProperty(WS_XML_WRITER*, WS_XML_WRITER_PROPERTY_ID, void*, ULONG, WS_ERROR*);
1325 HRESULT WINAPI WsGetXmlAttribute(WS_XML_READER*, const WS_XML_STRING*, WS_HEAP*, WCHAR**,
1326 ULONG*, WS_ERROR*);
1327 HRESULT WINAPI WsInitializeMessage(WS_MESSAGE*, WS_MESSAGE_INITIALIZATION, WS_MESSAGE*, WS_ERROR*);
1328 HRESULT WINAPI WsMoveReader(WS_XML_READER*, WS_MOVE_TO, BOOL*, WS_ERROR*);
1329 HRESULT WINAPI WsMoveWriter(WS_XML_WRITER*, WS_MOVE_TO, BOOL*, WS_ERROR*);
1330 HRESULT WINAPI WsOpenChannel(WS_CHANNEL*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1331 HRESULT WINAPI WsOpenServiceProxy(WS_SERVICE_PROXY*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*,
1332 WS_ERROR*);
1333 HRESULT WINAPI WsReadAttribute(WS_XML_READER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_READ_OPTION,
1334 WS_HEAP*, void*, ULONG, WS_ERROR*);
1335 HRESULT WINAPI WsReadElement(WS_XML_READER*, const WS_ELEMENT_DESCRIPTION*, WS_READ_OPTION,
1336 WS_HEAP*, void*, ULONG, WS_ERROR*);
1337 HRESULT WINAPI WsReadEndAttribute(WS_XML_READER*, WS_ERROR*);
1338 HRESULT WINAPI WsReadEndElement(WS_XML_READER*, WS_ERROR*);
1339 HRESULT WINAPI WsReadNode(WS_XML_READER*, WS_ERROR*);
1340 HRESULT WINAPI WsReadStartAttribute(WS_XML_READER*, ULONG, WS_ERROR*);
1341 HRESULT WINAPI WsReadStartElement(WS_XML_READER*, WS_ERROR*);
1342 HRESULT WINAPI WsReadToStartElement(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*,
1343 BOOL*, WS_ERROR*);
1344 HRESULT WINAPI WsReadType(WS_XML_READER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_READ_OPTION,
1345 WS_HEAP*, void*, ULONG, WS_ERROR*);
1346 HRESULT WINAPI WsReadValue(WS_XML_READER*, WS_VALUE_TYPE, void*, ULONG, WS_ERROR*);
1347 HRESULT WINAPI WsResetError(WS_ERROR*);
1348 HRESULT WINAPI WsResetHeap(WS_HEAP*, WS_ERROR*);
1349 HRESULT WINAPI WsSendMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION,
1350 const void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1351 HRESULT WINAPI WsSetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*);
1352 HRESULT WINAPI WsSetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, const void*, ULONG);
1353 HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*,
1354 const WS_XML_READER_PROPERTY*, ULONG, WS_ERROR*);
1355 HRESULT WINAPI WsSetInputToBuffer(WS_XML_READER*, WS_XML_BUFFER*, const WS_XML_READER_PROPERTY*,
1356 ULONG, WS_ERROR*);
1357 HRESULT WINAPI WsSetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, const void*, ULONG, WS_ERROR*);
1358 HRESULT WINAPI WsSetOutput(WS_XML_WRITER*, const WS_XML_WRITER_ENCODING*, const WS_XML_WRITER_OUTPUT*,
1359 const WS_XML_WRITER_PROPERTY*, ULONG, WS_ERROR*);
1360 HRESULT WINAPI WsSetOutputToBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_PROPERTY*,
1361 ULONG, WS_ERROR*);
1362 HRESULT WINAPI WsSkipNode(WS_XML_READER*, WS_ERROR*);
1363 HRESULT WINAPI WsWriteAttribute(WS_XML_WRITER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_WRITE_OPTION,
1364 const void*, ULONG, WS_ERROR*);
1365 HRESULT WINAPI WsWriteElement(WS_XML_WRITER*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION,
1366 const void*, ULONG, WS_ERROR*);
1367 HRESULT WINAPI WsWriteEndAttribute(WS_XML_WRITER*, WS_ERROR*);
1368 HRESULT WINAPI WsWriteEndCData(WS_XML_WRITER*, WS_ERROR*);
1369 HRESULT WINAPI WsWriteEndElement(WS_XML_WRITER*, WS_ERROR*);
1370 HRESULT WINAPI WsWriteEndStartElement(WS_XML_WRITER*, WS_ERROR*);
1371 HRESULT WINAPI WsWriteMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1372 HRESULT WINAPI WsWriteMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
1373 HRESULT WINAPI WsWriteStartAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*,
1374 const WS_XML_STRING*, BOOL, WS_ERROR*);
1375 HRESULT WINAPI WsWriteStartCData(WS_XML_WRITER*, WS_ERROR*);
1376 HRESULT WINAPI WsWriteStartElement(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*,
1377 const WS_XML_STRING*, WS_ERROR*);
1378 HRESULT WINAPI WsWriteText(WS_XML_WRITER*, const WS_XML_TEXT*, WS_ERROR*);
1379 HRESULT WINAPI WsWriteType(WS_XML_WRITER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_WRITE_OPTION,
1380 const void*, ULONG, WS_ERROR*);
1381 HRESULT WINAPI WsWriteValue(WS_XML_WRITER*, WS_VALUE_TYPE, const void*, ULONG, WS_ERROR*);
1382 HRESULT WINAPI WsWriteXmlBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, WS_ERROR*);
1383 HRESULT WINAPI WsWriteXmlBufferToBytes(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_ENCODING*,
1384 const WS_XML_WRITER_PROPERTY*, ULONG, WS_HEAP*, void**,
1385 ULONG*, WS_ERROR*);
1386 HRESULT WINAPI WsWriteXmlnsAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*,
1387 BOOL, WS_ERROR*);
1388 HRESULT WINAPI WsXmlStringEquals(const WS_XML_STRING*, const WS_XML_STRING*, WS_ERROR*);
1390 #define WS_S_ASYNC 0x003d0000
1391 #define WS_S_END 0x003d0001
1392 #define WS_E_INVALID_FORMAT 0x803d0000
1393 #define WS_E_OBJECT_FAULTED 0x803d0001
1394 #define WS_E_NUMERIC_OVERFLOW 0x803d0002
1395 #define WS_E_INVALID_OPERATION 0x803d0003
1396 #define WS_E_OPERATION_ABORTED 0x803d0004
1397 #define WS_E_ENDPOINT_ACCESS_DENIED 0x803d0005
1398 #define WS_E_OPERATION_TIMED_OUT 0x803d0006
1399 #define WS_E_OPERATION_ABANDONED 0x803d0007
1400 #define WS_E_QUOTA_EXCEEDED 0x803d0008
1401 #define WS_E_NO_TRANSLATION_AVAILABLE 0x803d0009
1402 #define WS_E_SECURITY_VERIFICATION_FAILURE 0x803d000a
1403 #define WS_E_ADDRESS_IN_USE 0x803d000b
1404 #define WS_E_ADDRESS_NOT_AVAILABLE 0x803d000c
1405 #define WS_E_ENDPOINT_NOT_FOUND 0x803d000d
1406 #define WS_E_ENDPOINT_NOT_AVAILABLE 0x803d000e
1407 #define WS_E_ENDPOINT_FAILURE 0x803d000f
1408 #define WS_E_ENDPOINT_UNREACHABLE 0x803d0010
1409 #define WS_E_ENDPOINT_ACTION_NOT_SUPPORTED 0x803d0011
1410 #define WS_E_ENDPOINT_TOO_BUSY 0x803d0012
1411 #define WS_E_ENDPOINT_FAULT_RECEIVED 0x803d0013
1412 #define WS_E_ENDPOINT_DISCONNECTED 0x803d0014
1413 #define WS_E_PROXY_FAILURE 0x803d0015
1414 #define WS_E_PROXY_ACCESS_DENIED 0x803d0016
1415 #define WS_E_NOT_SUPPORTED 0x803d0017
1416 #define WS_E_PROXY_REQUIRES_BASIC_AUTH 0x803d0018
1417 #define WS_E_PROXY_REQUIRES_DIGEST_AUTH 0x803d0019
1418 #define WS_E_PROXY_REQUIRES_NTLM_AUTH 0x803d001a
1419 #define WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH 0x803d001b
1420 #define WS_E_SERVER_REQUIRES_BASIC_AUTH 0x803d001c
1421 #define WS_E_SERVER_REQUIRES_DIGEST_AUTH 0x803d001d
1422 #define WS_E_SERVER_REQUIRES_NTLM_AUTH 0x803d001e
1423 #define WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH 0x803d001f
1424 #define WS_E_INVALID_ENDPOINT_URL 0x803d0020
1425 #define WS_E_OTHER 0x803d0021
1426 #define WS_E_SECURITY_TOKEN_EXPIRED 0x803d0022
1427 #define WS_E_SECURITY_SYSTEM_FAILURE 0x803d0023
1429 #ifdef __cplusplus
1431 #endif /* __cplusplus */
1433 #endif /* __WINE_WEBSERVICES_H */