Commit ac90bc1e authored by Shaun Ren's avatar Shaun Ren Committed by Alexandre Julliard

webservices: Support faults in error.

parent da77cc8c
...@@ -64,8 +64,8 @@ ...@@ -64,8 +64,8 @@
@ stdcall WsGetDictionary(long ptr ptr) @ stdcall WsGetDictionary(long ptr ptr)
@ stdcall WsGetErrorProperty(ptr long ptr long) @ stdcall WsGetErrorProperty(ptr long ptr long)
@ stdcall WsGetErrorString(ptr long ptr) @ stdcall WsGetErrorString(ptr long ptr)
@ stub WsGetFaultErrorDetail @ stdcall WsGetFaultErrorDetail(ptr ptr ptr ptr ptr long)
@ stub WsGetFaultErrorProperty @ stdcall WsGetFaultErrorProperty(ptr long ptr long)
@ stdcall WsGetHeader(ptr long long long ptr ptr long ptr) @ stdcall WsGetHeader(ptr long long long ptr ptr long ptr)
@ stub WsGetHeaderAttributes @ stub WsGetHeaderAttributes
@ stdcall WsGetHeapProperty(ptr long ptr long ptr) @ stdcall WsGetHeapProperty(ptr long ptr long ptr)
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
@ stdcall WsSetChannelProperty(ptr long ptr long ptr) @ stdcall WsSetChannelProperty(ptr long ptr long ptr)
@ stdcall WsSetErrorProperty(ptr long ptr long) @ stdcall WsSetErrorProperty(ptr long ptr long)
@ stub WsSetFaultErrorDetail @ stub WsSetFaultErrorDetail
@ stub WsSetFaultErrorProperty @ stdcall WsSetFaultErrorProperty(ptr long ptr long)
@ stdcall WsSetHeader(ptr long long long ptr long ptr) @ stdcall WsSetHeader(ptr long long long ptr long ptr)
@ stdcall WsSetInput(ptr ptr ptr ptr long ptr) @ stdcall WsSetInput(ptr ptr ptr ptr long ptr)
@ stdcall WsSetInputToBuffer(ptr ptr ptr long ptr) @ stdcall WsSetInputToBuffer(ptr ptr ptr long ptr)
......
...@@ -171,6 +171,8 @@ HRESULT channel_get_reader( WS_CHANNEL *, WS_XML_READER ** ) DECLSPEC_HIDDEN; ...@@ -171,6 +171,8 @@ HRESULT channel_get_reader( WS_CHANNEL *, WS_XML_READER ** ) DECLSPEC_HIDDEN;
HRESULT parse_url( const WS_STRING *, WS_URL_SCHEME_TYPE *, WCHAR **, USHORT * ) DECLSPEC_HIDDEN; HRESULT parse_url( const WS_STRING *, WS_URL_SCHEME_TYPE *, WCHAR **, USHORT * ) DECLSPEC_HIDDEN;
void free_fault_fields( WS_HEAP *, WS_FAULT * ) DECLSPEC_HIDDEN;
enum record_type enum record_type
{ {
/* 0x00 reserved */ /* 0x00 reserved */
......
...@@ -1116,6 +1116,41 @@ struct _WS_ENDPOINT_ADDRESS { ...@@ -1116,6 +1116,41 @@ struct _WS_ENDPOINT_ADDRESS {
WS_ENDPOINT_IDENTITY *identity; WS_ENDPOINT_IDENTITY *identity;
}; };
typedef struct _WS_FAULT_CODE {
WS_XML_QNAME value;
struct _WS_FAULT_CODE *subCode;
} WS_FAULT_CODE;
typedef struct _WS_FAULT_REASON {
WS_STRING text;
WS_STRING lang;
} WS_FAULT_REASON;
typedef struct _WS_FAULT {
WS_FAULT_CODE *code;
WS_FAULT_REASON *reasons;
ULONG reasonCount;
WS_STRING actor;
WS_STRING node;
WS_XML_BUFFER *detail;
} WS_FAULT;
typedef struct _WS_FAULT_DESCRIPTION {
WS_ENVELOPE_VERSION envelopeVersion;
} WS_FAULT_DESCRIPTION;
typedef struct _WS_FAULT_DETAIL_DESCRIPTION {
WS_XML_STRING *action;
WS_ELEMENT_DESCRIPTION *detailElementDescription;
} WS_FAULT_DETAIL_DESCRIPTION;
typedef enum {
WS_FAULT_ERROR_PROPERTY_FAULT = 0,
WS_FAULT_ERROR_PROPERTY_ACTION = 1,
WS_FAULT_ERROR_PROPERTY_HEADER = 2
} WS_FAULT_ERROR_PROPERTY_ID;
struct _WS_HTTP_POLICY_DESCRIPTION { struct _WS_HTTP_POLICY_DESCRIPTION {
WS_CHANNEL_PROPERTIES channelProperties; WS_CHANNEL_PROPERTIES channelProperties;
}; };
...@@ -1649,6 +1684,9 @@ HRESULT WINAPI WsGetCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_ ...@@ -1649,6 +1684,9 @@ HRESULT WINAPI WsGetCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_
HRESULT WINAPI WsGetDictionary(WS_ENCODING, WS_XML_DICTIONARY**, WS_ERROR*); HRESULT WINAPI WsGetDictionary(WS_ENCODING, WS_XML_DICTIONARY**, WS_ERROR*);
HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG); HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG);
HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING*); HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING*);
HRESULT WINAPI WsGetFaultErrorDetail(WS_ERROR*, const WS_FAULT_DETAIL_DESCRIPTION*, WS_READ_OPTION,
WS_HEAP*, void*, ULONG);
HRESULT WINAPI WsGetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, void*, ULONG);
HRESULT WINAPI WsGetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*, HRESULT WINAPI WsGetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*,
ULONG, WS_ERROR*); ULONG, WS_ERROR*);
HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*); HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*);
...@@ -1731,6 +1769,7 @@ HRESULT WINAPI WsSendReplyMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DES ...@@ -1731,6 +1769,7 @@ HRESULT WINAPI WsSendReplyMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DES
const WS_ASYNC_CONTEXT*, WS_ERROR*); const WS_ASYNC_CONTEXT*, WS_ERROR*);
HRESULT WINAPI WsSetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, 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 WsSetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, const void*, ULONG);
HRESULT WINAPI WsSetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, const void*, ULONG);
HRESULT WINAPI WsSetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_WRITE_OPTION, const void*, ULONG, HRESULT WINAPI WsSetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_WRITE_OPTION, const void*, ULONG,
WS_ERROR*); WS_ERROR*);
HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*, HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment