Sweden-Number/include/webservices.h

429 lines
14 KiB
C

/*
* Copyright 2015 Nikolay Sivov for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_WEBSERVICES_H
#define __WINE_WEBSERVICES_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct _WS_ERROR WS_ERROR;
typedef struct _WS_HEAP WS_HEAP;
typedef struct _WS_XML_BUFFER WS_XML_BUFFER;
typedef struct _WS_XML_READER WS_XML_READER;
struct _WS_STRUCT_DESCRIPTION;
struct _WS_XML_STRING;
typedef enum {
WS_ERROR_PROPERTY_STRING_COUNT,
WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE,
WS_ERROR_PROPERTY_LANGID
} WS_ERROR_PROPERTY_ID;
typedef struct _WS_ERROR_PROPERTY {
WS_ERROR_PROPERTY_ID id;
void *value;
ULONG valueSize;
} WS_ERROR_PROPERTY;
typedef enum {
WS_HEAP_PROPERTY_MAX_SIZE,
WS_HEAP_PROPERTY_TRIM_SIZE,
WS_HEAP_PROPERTY_REQUESTED_SIZE,
WS_HEAP_PROPERTY_ACTUAL_SIZE
} WS_HEAP_PROPERTY_ID;
typedef struct _WS_HEAP_PROPERTY {
WS_HEAP_PROPERTY_ID id;
void *value;
ULONG valueSize;
} WS_HEAP_PROPERTY;
typedef enum {
WS_XML_READER_PROPERTY_MAX_DEPTH,
WS_XML_READER_PROPERTY_ALLOW_FRAGMENT,
WS_XML_READER_PROPERTY_MAX_ATTRIBUTES,
WS_XML_READER_PROPERTY_READ_DECLARATION,
WS_XML_READER_PROPERTY_CHARSET,
WS_XML_READER_PROPERTY_ROW,
WS_XML_READER_PROPERTY_COLUMN,
WS_XML_READER_PROPERTY_UTF8_TRIM_SIZE,
WS_XML_READER_PROPERTY_STREAM_BUFFER_SIZE,
WS_XML_READER_PROPERTY_IN_ATTRIBUTE,
WS_XML_READER_PROPERTY_STREAM_MAX_ROOT_MIME_PART_SIZE,
WS_XML_READER_PROPERTY_STREAM_MAX_MIME_HEADERS_SIZE,
WS_XML_READER_PROPERTY_MAX_MIME_PARTS,
WS_XML_READER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES,
WS_XML_READER_PROPERTY_MAX_NAMESPACES
} WS_XML_READER_PROPERTY_ID;
typedef struct _WS_XML_READER_PROPERTY {
WS_XML_READER_PROPERTY_ID id;
void *value;
ULONG valueSize;
} WS_XML_READER_PROPERTY;
typedef enum {
WS_XML_READER_ENCODING_TYPE_TEXT = 1,
WS_XML_READER_ENCODING_TYPE_BINARY = 2,
WS_XML_READER_ENCODING_TYPE_MTOM = 3,
WS_XML_READER_ENCODING_TYPE_RAW = 4
} WS_XML_READER_ENCODING_TYPE;
typedef struct _WS_XML_READER_ENCODING {
WS_XML_READER_ENCODING_TYPE encodingType;
} WS_XML_READER_ENCODING;
typedef enum {
WS_CHARSET_AUTO,
WS_CHARSET_UTF8,
WS_CHARSET_UTF16LE,
WS_CHARSET_UTF16BE
} WS_CHARSET;
typedef struct _WS_XML_READER_TEXT_ENCODING {
WS_XML_READER_ENCODING encoding;
WS_CHARSET charSet;
} WS_XML_READER_TEXT_ENCODING;
typedef enum {
WS_XML_READER_INPUT_TYPE_BUFFER = 1,
WS_XML_READER_INPUT_TYPE_STREAM = 2
} WS_XML_READER_INPUT_TYPE;
typedef struct _WS_XML_READER_INPUT {
WS_XML_READER_INPUT_TYPE inputType;
} WS_XML_READER_INPUT;
typedef struct _WS_XML_READER_BUFFER_INPUT {
WS_XML_READER_INPUT input;
void *encodedData;
ULONG encodedDataSize;
} WS_XML_READER_BUFFER_INPUT;
typedef enum {
WS_SHORT_CALLBACK,
WS_LONG_CALLBACK
} WS_CALLBACK_MODEL;
typedef void (CALLBACK *WS_ASYNC_CALLBACK)
(HRESULT, WS_CALLBACK_MODEL, void *);
typedef struct _WS_ASYNC_CONTEXT {
WS_ASYNC_CALLBACK callback;
void *callbackState;
} WS_ASYNC_CONTEXT;
typedef HRESULT (CALLBACK *WS_READ_CALLBACK)
(void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*);
typedef struct _WS_XML_READER_STREAM_INPUT {
WS_XML_READER_INPUT input;
WS_READ_CALLBACK readCallback;
void *readCallbackState;
} WS_XML_READER_STREAM_INPUT;
typedef struct _WS_XML_DICTIONARY {
GUID guid;
struct _WS_XML_STRING *strings;
ULONG stringCount;
BOOL isConst;
} WS_XML_DICTIONARY;
typedef struct _WS_XML_STRING {
ULONG length;
BYTE *bytes;
WS_XML_DICTIONARY *dictionary;
ULONG id;
} WS_XML_STRING;
typedef enum {
WS_ELEMENT_TYPE_MAPPING = 1,
WS_ATTRIBUTE_TYPE_MAPPING = 2,
WS_ELEMENT_CONTENT_TYPE_MAPPING = 3,
WS_ANY_ELEMENT_TYPE_MAPPING = 4
} WS_TYPE_MAPPING;
typedef enum {
WS_BOOL_TYPE,
WS_INT8_TYPE,
WS_INT16_TYPE,
WS_INT32_TYPE,
WS_INT64_TYPE,
WS_UINT8_TYPE,
WS_UINT16_TYPE,
WS_UINT32_TYPE,
WS_UINT64_TYPE,
WS_FLOAT_TYPE,
WS_DOUBLE_TYPE,
WS_DECIMAL_TYPE,
WS_DATETIME_TYPE,
WS_TIMESPAN_TYPE,
WS_GUID_TYPE,
WS_UNIQUE_ID_TYPE,
WS_STRING_TYPE,
WS_WSZ_TYPE,
WS_BYTES_TYPE,
WS_XML_STRING_TYPE,
WS_XML_QNAME_TYPE,
WS_XML_BUFFER_TYPE,
WS_CHAR_ARRAY_TYPE,
WS_UTF8_ARRAY_TYPE,
WS_BYTE_ARRAY_TYPE,
WS_DESCRIPTION_TYPE,
WS_STRUCT_TYPE,
WS_CUSTOM_TYPE,
WS_ENDPOINT_ADDRESS_TYPE,
WS_FAULT_TYPE,
WS_VOID_TYPE,
WS_ENUM_TYPE,
WS_DURATION_TYPE,
WS_UNION_TYPE,
WS_ANY_ATTRIBUTES_TYPE
} WS_TYPE;
typedef enum {
WS_READ_REQUIRED_VALUE = 1,
WS_READ_REQUIRED_POINTER = 2,
WS_READ_OPTIONAL_POINTER = 3,
WS_READ_NILLABLE_POINTER = 4,
WS_READ_NILLABLE_VALUE = 5
} WS_READ_OPTION;
typedef enum {
WS_TYPE_ATTRIBUTE_FIELD_MAPPING,
WS_ATTRIBUTE_FIELD_MAPPING,
WS_ELEMENT_FIELD_MAPPING,
WS_REPEATING_ELEMENT_FIELD_MAPPING,
WS_TEXT_FIELD_MAPPING,
WS_NO_FIELD_MAPPING,
WS_XML_ATTRIBUTE_FIELD_MAPPING,
WS_ELEMENT_CHOICE_FIELD_MAPPING,
WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING,
WS_ANY_ELEMENT_FIELD_MAPPING,
WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING,
WS_ANY_CONTENT_FIELD_MAPPING,
WS_ANY_ATTRIBUTES_FIELD_MAPPING
} WS_FIELD_MAPPING;
typedef struct _WS_DEFAULT_VALUE {
void *value;
ULONG valueSize;
} WS_DEFAULT_VALUE;
typedef struct _WS_ITEM_RANGE {
ULONG minItemCount;
ULONG maxItemCount;
} WS_ITEM_RANGE;
typedef struct _WS_FIELD_DESCRIPTION {
WS_FIELD_MAPPING mapping;
WS_XML_STRING *localName;
WS_XML_STRING *ns;
WS_TYPE type;
void *typeDescription;
ULONG offset;
ULONG options;
WS_DEFAULT_VALUE *defaultValue;
ULONG countOffset;
WS_XML_STRING *itemLocalName;
WS_XML_STRING *itemNs;
WS_ITEM_RANGE *itemRange;
} WS_FIELD_DESCRIPTION;
typedef struct _WS_STRUCT_DESCRIPTION {
ULONG size;
ULONG alignment;
WS_FIELD_DESCRIPTION **fields;
ULONG fieldCount;
WS_XML_STRING *typeLocalName;
WS_XML_STRING *typeNs;
struct _WS_STRUCT_DESCRIPTION *parentType;
struct _WS_STRUCT_DESCRIPTION **subTypes;
ULONG subTypeCount;
ULONG structOptions;
} WS_STRUCT_DESCRIPTION;
typedef struct _WS_ATTRIBUTE_DESCRIPTION {
WS_XML_STRING *attributeLocalName;
WS_XML_STRING *attributeNs;
WS_TYPE type;
void *typeDescription;
} WS_ATTRIBUTE_DESCRIPTION;
typedef struct _WS_STRING {
ULONG length;
WCHAR *chars;
} WS_STRING;
typedef enum {
WS_XML_NODE_TYPE_ELEMENT = 1,
WS_XML_NODE_TYPE_TEXT = 2,
WS_XML_NODE_TYPE_END_ELEMENT = 3,
WS_XML_NODE_TYPE_COMMENT = 4,
WS_XML_NODE_TYPE_CDATA = 6,
WS_XML_NODE_TYPE_END_CDATA = 7,
WS_XML_NODE_TYPE_EOF = 8,
WS_XML_NODE_TYPE_BOF = 9
} WS_XML_NODE_TYPE;
typedef struct _WS_XML_NODE {
WS_XML_NODE_TYPE nodeType;
} WS_XML_NODE;
typedef enum {
WS_XML_TEXT_TYPE_UTF8 = 1,
WS_XML_TEXT_TYPE_UTF16 = 2,
WS_XML_TEXT_TYPE_BASE64 = 3,
WS_XML_TEXT_TYPE_BOOL = 4,
WS_XML_TEXT_TYPE_INT32 = 5,
WS_XML_TEXT_TYPE_INT64 = 6,
WS_XML_TEXT_TYPE_UINT64 = 7,
WS_XML_TEXT_TYPE_FLOAT = 8,
WS_XML_TEXT_TYPE_DOUBLE = 9,
WS_XML_TEXT_TYPE_DECIMAL = 10,
WS_XML_TEXT_TYPE_GUID = 11,
WS_XML_TEXT_TYPE_UNIQUE_ID = 12,
WS_XML_TEXT_TYPE_DATETIME = 13,
WS_XML_TEXT_TYPE_TIMESPAN = 14,
WS_XML_TEXT_TYPE_QNAME = 15,
WS_XML_TEXT_TYPE_LIST = 16
} WS_XML_TEXT_TYPE;
typedef struct _WS_XML_TEXT {
WS_XML_TEXT_TYPE textType;
} WS_XML_TEXT;
typedef struct _WS_XML_UTF8_TEXT {
WS_XML_TEXT text;
WS_XML_STRING value;
} WS_XML_UTF8_TEXT;
typedef struct _WS_XML_ATTRIBUTE {
BYTE singleQuote;
BYTE isXmlNs;
WS_XML_STRING *prefix;
WS_XML_STRING *localName;
WS_XML_STRING *ns;
WS_XML_TEXT *value;
} WS_XML_ATTRIBUTE;
typedef struct _WS_XML_ELEMENT_NODE {
WS_XML_NODE node;
WS_XML_STRING *prefix;
WS_XML_STRING *localName;
WS_XML_STRING *ns;
ULONG attributeCount;
WS_XML_ATTRIBUTE **attributes;
BOOL isEmpty;
} WS_XML_ELEMENT_NODE;
typedef struct _WS_XML_TEXT_NODE {
WS_XML_NODE node;
WS_XML_TEXT *text;
} WS_XML_TEXT_NODE;
typedef struct _WS_XML_COMMENT_NODE {
WS_XML_NODE node;
WS_XML_STRING value;
} WS_XML_COMMENT_NODE;
typedef struct _WS_XML_NODE_POSITION {
WS_XML_BUFFER *buffer;
void *node;
} WS_XML_NODE_POSITION;
HRESULT WINAPI WsCreateError(const WS_ERROR_PROPERTY*, ULONG, WS_ERROR**);
HRESULT WINAPI WsCreateHeap(SIZE_T, SIZE_T, const WS_HEAP_PROPERTY*, ULONG, WS_HEAP**, WS_ERROR*);
HRESULT WINAPI WsCreateReader(const WS_XML_READER_PROPERTY*, ULONG, WS_XML_READER**, WS_ERROR*);
HRESULT WINAPI WsFillReader(WS_XML_READER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*);
HRESULT WINAPI WsFindAttribute(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, BOOL,
ULONG*, WS_ERROR*);
void WINAPI WsFreeError(WS_ERROR*);
void WINAPI WsFreeHeap(WS_HEAP*);
void WINAPI WsFreeReader(WS_XML_READER*);
HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG);
HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING**);
HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*);
HRESULT WINAPI WsGetReaderNode(WS_XML_READER*, const WS_XML_NODE**, WS_ERROR*);
HRESULT WINAPI WsGetReaderPosition(WS_XML_READER*, WS_XML_NODE_POSITION*, WS_ERROR*);
HRESULT WINAPI WsGetReaderProperty(WS_XML_READER*, WS_XML_READER_PROPERTY_ID, void*, ULONG, WS_ERROR*);
HRESULT WINAPI WsGetXmlAttribute(WS_XML_READER*, const WS_XML_STRING*, WS_HEAP*, WCHAR**,
ULONG*, WS_ERROR*);
HRESULT WINAPI WsReadAttribute(WS_XML_READER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_READ_OPTION,
WS_HEAP*, void*, ULONG, WS_ERROR*);
HRESULT WINAPI WsReadEndElement(WS_XML_READER*, WS_ERROR*);
HRESULT WINAPI WsReadNode(WS_XML_READER*, WS_ERROR*);
HRESULT WINAPI WsReadStartAttribute(WS_XML_READER*, ULONG, WS_ERROR*);
HRESULT WINAPI WsReadStartElement(WS_XML_READER*, WS_ERROR*);
HRESULT WINAPI WsReadToStartElement(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*,
BOOL*, WS_ERROR*);
HRESULT WINAPI WsReadType(WS_XML_READER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_READ_OPTION,
WS_HEAP*, void*, ULONG, WS_ERROR*);
HRESULT WINAPI WsSetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, const void*, ULONG);
HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*,
const WS_XML_READER_PROPERTY*, ULONG, WS_ERROR*);
#define WS_S_ASYNC 0x003d0000
#define WS_S_END 0x003d0001
#define WS_E_INVALID_FORMAT 0x803d0000
#define WS_E_OBJECT_FAULTED 0x803d0001
#define WS_E_NUMERIC_OVERFLOW 0x803d0002
#define WS_E_INVALID_OPERATION 0x803d0003
#define WS_E_OPERATION_ABORTED 0x803d0004
#define WS_E_ENDPOINT_ACCESS_DENIED 0x803d0005
#define WS_E_OPERATION_TIMED_OUT 0x803d0006
#define WS_E_OPERATION_ABANDONED 0x803d0007
#define WS_E_QUOTA_EXCEEDED 0x803d0008
#define WS_E_NO_TRANSLATION_AVAILABLE 0x803d0009
#define WS_E_SECURITY_VERIFICATION_FAILURE 0x803d000a
#define WS_E_ADDRESS_IN_USE 0x803d000b
#define WS_E_ADDRESS_NOT_AVAILABLE 0x803d000c
#define WS_E_ENDPOINT_NOT_FOUND 0x803d000d
#define WS_E_ENDPOINT_NOT_AVAILABLE 0x803d000e
#define WS_E_ENDPOINT_FAILURE 0x803d000f
#define WS_E_ENDPOINT_UNREACHABLE 0x803d0010
#define WS_E_ENDPOINT_ACTION_NOT_SUPPORTED 0x803d0011
#define WS_E_ENDPOINT_TOO_BUSY 0x803d0012
#define WS_E_ENDPOINT_FAULT_RECEIVED 0x803d0013
#define WS_E_ENDPOINT_DISCONNECTED 0x803d0014
#define WS_E_PROXY_FAILURE 0x803d0015
#define WS_E_PROXY_ACCESS_DENIED 0x803d0016
#define WS_E_NOT_SUPPORTED 0x803d0017
#define WS_E_PROXY_REQUIRES_BASIC_AUTH 0x803d0018
#define WS_E_PROXY_REQUIRES_DIGEST_AUTH 0x803d0019
#define WS_E_PROXY_REQUIRES_NTLM_AUTH 0x803d001a
#define WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH 0x803d001b
#define WS_E_SERVER_REQUIRES_BASIC_AUTH 0x803d001c
#define WS_E_SERVER_REQUIRES_DIGEST_AUTH 0x803d001d
#define WS_E_SERVER_REQUIRES_NTLM_AUTH 0x803d001e
#define WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH 0x803d001f
#define WS_E_INVALID_ENDPOINT_URL 0x803d0020
#define WS_E_OTHER 0x803d0021
#define WS_E_SECURITY_TOKEN_EXPIRED 0x803d0022
#define WS_E_SECURITY_SYSTEM_FAILURE 0x803d0023
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __WINE_WEBSERVICES_H */