From 2c1628a6f4cdc98a06184f993cfa31ea8abb1fdc Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 22 Apr 2016 09:42:40 +0200 Subject: [PATCH] include: Add missing Web Services declarations. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- include/webservices.h | 110 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/include/webservices.h b/include/webservices.h index 87035bcf5ab..6217105deda 100644 --- a/include/webservices.h +++ b/include/webservices.h @@ -39,6 +39,7 @@ typedef struct _WS_SECURITY_BINDING WS_SECURITY_BINDING; typedef struct _WS_CHANNEL WS_CHANNEL; typedef struct _WS_MESSAGE_PROPERTY WS_MESSAGE_PROPERTY; typedef struct _WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTIES; +typedef struct _WS_HTTP_BINDING_TEMPLATE WS_HTTP_BINDING_TEMPLATE; typedef struct _WS_HTTP_SSL_BINDING_TEMPLATE WS_HTTP_SSL_BINDING_TEMPLATE; typedef struct _WS_CHANNEL_PROPERTIES WS_CHANNEL_PROPERTIES; typedef struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE; @@ -49,6 +50,16 @@ typedef struct _WS_ENDPOINT_IDENTITY WS_ENDPOINT_IDENTITY; typedef struct _WS_ENUM_DESCRIPTION WS_ENUM_DESCRIPTION; typedef struct _WS_ENUM_VALUE WS_ENUM_VALUE; typedef struct _WS_OPERATION_DESCRIPTION WS_OPERATION_DESCRIPTION; +typedef struct _WS_HTTP_POLICY_DESCRIPTION WS_HTTP_POLICY_DESCRIPTION; +typedef struct _WS_MESSAGE_PROPERTY WS_MESSAGE_PROPERTY; +typedef struct _WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTIES; +typedef struct _WS_MESSAGE WS_MESSAGE; +typedef struct _WS_MESSAGE_DESCRIPTION WS_MESSAGE_DESCRIPTION; +typedef struct _WS_OPERATION_DESCRIPTION WS_OPERATION_DESCRIPTION; +typedef struct _WS_PARAMETER_DESCRIPTION WS_PARAMETER_DESCRIPTION; +typedef struct _WS_OPERATION_CONTEXT WS_OPERATION_CONTEXT; +typedef struct _WS_CALL_PROPERTY WS_CALL_PROPERTY; +typedef struct _WS_DOUBLE_DESCRIPTION WS_DOUBLE_DESCRIPTION; struct _WS_STRUCT_DESCRIPTION; struct _WS_XML_STRING; @@ -372,6 +383,11 @@ struct _WS_ENUM_DESCRIPTION { ULONG *nameIndices; }; +struct _WS_DOUBLE_DESCRIPTION { + double minValue; + double maxValue; +}; + typedef enum { WS_TYPE_ATTRIBUTE_FIELD_MAPPING, WS_ATTRIBUTE_FIELD_MAPPING, @@ -823,6 +839,10 @@ struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE { WS_CERT_CREDENTIAL *localCertCredential; }; +struct _WS_HTTP_BINDING_TEMPLATE { + WS_CHANNEL_PROPERTIES channelProperties; +}; + struct _WS_HTTP_SSL_BINDING_TEMPLATE { WS_CHANNEL_PROPERTIES channelProperties; WS_SECURITY_PROPERTIES securityProperties; @@ -877,6 +897,22 @@ struct _WS_MESSAGE_PROPERTIES { ULONG propertyCount; }; +typedef enum { + WS_MESSAGE_STATE_EMPTY = 1, + WS_MESSAGE_STATE_INITIALIZED = 2, + WS_MESSAGE_STATE_READING = 3, + WS_MESSAGE_STATE_WRITING = 4, + WS_MESSAGE_STATE_DONE = 5 +} WS_MESSAGE_STATE; + +typedef enum { + WS_BLANK_MESSAGE, + WS_DUPLICATE_MESSAGE, + WS_REQUEST_MESSAGE, + WS_REPLY_MESSAGE, + WS_FAULT_MESSAGE +} WS_MESSAGE_INITIALIZATION; + typedef enum { WS_DNS_ENDPOINT_IDENTITY_TYPE = 1, WS_UPN_ENDPOINT_IDENTITY_TYPE = 2, @@ -897,12 +933,79 @@ struct _WS_ENDPOINT_ADDRESS { WS_ENDPOINT_IDENTITY *identity; }; +struct _WS_HTTP_POLICY_DESCRIPTION { + WS_CHANNEL_PROPERTIES channelProperties; +}; + +struct _WS_MESSAGE_DESCRIPTION { + WS_XML_STRING *action; + WS_ELEMENT_DESCRIPTION *bodyElementDescription; +}; + +typedef enum { + WS_PARAMETER_TYPE_NORMAL, + WS_PARAMETER_TYPE_ARRAY, + WS_PARAMETER_TYPE_ARRAY_COUNT, + WS_PARAMETER_TYPE_MESSAGES +} WS_PARAMETER_TYPE; + +struct _WS_PARAMETER_DESCRIPTION { + WS_PARAMETER_TYPE parameterType; + USHORT inputMessageIndex; + USHORT outputMessageIndex; +}; + +typedef HRESULT (CALLBACK *WS_SERVICE_STUB_CALLBACK)( + const WS_OPERATION_CONTEXT *context, + void *frame, + const void *callback, + const WS_ASYNC_CONTEXT *asyncContext, + WS_ERROR *error ); + +typedef enum { + WS_NON_RPC_LITERAL_OPERATION, + WS_RPC_LITERAL_OPERATION +} WS_OPERATION_STYLE; + +struct _WS_OPERATION_DESCRIPTION { + ULONG versionInfo; + WS_MESSAGE_DESCRIPTION *inputMessageDescription; + WS_MESSAGE_DESCRIPTION *outputMessageDescription; + ULONG inputMessageOptions; + ULONG outputMessageOptions; + USHORT parameterCount; + WS_PARAMETER_DESCRIPTION *parameterDescription; + WS_SERVICE_STUB_CALLBACK stubCallback; + WS_OPERATION_STYLE style; +}; + +typedef enum { + WS_CALL_PROPERTY_CHECK_MUST_UNDERSTAND, + WS_CALL_PROPERTY_SEND_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_RECEIVE_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_CALL_ID +} WS_CALL_PROPERTY_ID; + +struct _WS_CALL_PROPERTY { + WS_CALL_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + HRESULT WINAPI WsAlloc(WS_HEAP*, SIZE_T, void**, WS_ERROR*); +HRESULT WINAPI WsCall(WS_SERVICE_PROXY*, const WS_OPERATION_DESCRIPTION*, const void**, + WS_HEAP*, const WS_CALL_PROPERTY*, const ULONG, const WS_ASYNC_CONTEXT*, + WS_ERROR*); +HRESULT WINAPI WsCloseChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsCloseServiceProxy(WS_SERVICE_PROXY*, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsCreateChannel(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_CHANNEL_PROPERTY*, ULONG, const WS_SECURITY_DESCRIPTION*, WS_CHANNEL**, WS_ERROR*); 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 WsCreateMessage(WS_ENVELOPE_VERSION, WS_ADDRESSING_VERSION, const WS_MESSAGE_PROPERTY*, + ULONG, WS_MESSAGE**, WS_ERROR*); +HRESULT WINAPI WsCreateMessageForChannel(WS_CHANNEL*, const WS_MESSAGE_PROPERTY*, ULONG, WS_MESSAGE**, + WS_ERROR*); HRESULT WINAPI WsCreateReader(const WS_XML_READER_PROPERTY*, ULONG, WS_XML_READER**, WS_ERROR*); HRESULT WINAPI WsCreateServiceProxy(const WS_CHANNEL_TYPE, const WS_CHANNEL_BINDING, const WS_SECURITY_DESCRIPTION*, const WS_PROXY_PROPERTY*, @@ -921,6 +1024,7 @@ HRESULT WINAPI WsFindAttribute(WS_XML_READER*, const WS_XML_STRING*, const WS_XM void WINAPI WsFreeChannel(WS_CHANNEL*); void WINAPI WsFreeError(WS_ERROR*); void WINAPI WsFreeHeap(WS_HEAP*); +void WINAPI WsFreeMessage(WS_MESSAGE*); void WINAPI WsFreeReader(WS_XML_READER*); void WINAPI WsFreeServiceProxy(WS_SERVICE_PROXY*); void WINAPI WsFreeWriter(WS_XML_WRITER*); @@ -940,8 +1044,10 @@ HRESULT WINAPI WsGetServiceProxyProperty(WS_SERVICE_PROXY*, const WS_PROXY_PROPE HRESULT WINAPI WsGetWriterProperty(WS_XML_WRITER*, WS_XML_WRITER_PROPERTY_ID, void*, ULONG, WS_ERROR*); HRESULT WINAPI WsGetXmlAttribute(WS_XML_READER*, const WS_XML_STRING*, WS_HEAP*, WCHAR**, ULONG*, WS_ERROR*); +HRESULT WINAPI WsInitializeMessage(WS_MESSAGE*, WS_MESSAGE_INITIALIZATION, WS_MESSAGE*, WS_ERROR*); HRESULT WINAPI WsMoveReader(WS_XML_READER*, WS_MOVE_TO, BOOL*, WS_ERROR*); HRESULT WINAPI WsMoveWriter(WS_XML_WRITER*, WS_MOVE_TO, BOOL*, WS_ERROR*); +HRESULT WINAPI WsOpenChannel(WS_CHANNEL*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsOpenServiceProxy(WS_SERVICE_PROXY*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsReadAttribute(WS_XML_READER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_READ_OPTION, @@ -956,6 +1062,8 @@ HRESULT WINAPI WsReadToStartElement(WS_XML_READER*, const WS_XML_STRING*, const HRESULT WINAPI WsReadType(WS_XML_READER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_READ_OPTION, WS_HEAP*, void*, ULONG, WS_ERROR*); HRESULT WINAPI WsResetHeap(WS_HEAP*, WS_ERROR*); +HRESULT WINAPI WsSendMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsSetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, const 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*, @@ -975,6 +1083,8 @@ HRESULT WINAPI WsWriteEndAttribute(WS_XML_WRITER*, WS_ERROR*); HRESULT WINAPI WsWriteEndCData(WS_XML_WRITER*, WS_ERROR*); HRESULT WINAPI WsWriteEndElement(WS_XML_WRITER*, WS_ERROR*); HRESULT WINAPI WsWriteEndStartElement(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); HRESULT WINAPI WsWriteStartAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, const WS_XML_STRING*, BOOL, WS_ERROR*); HRESULT WINAPI WsWriteStartCData(WS_XML_WRITER*, WS_ERROR*);