Module: wine Branch: master Commit: d00aa4db48b3b575f791fe41d30fd997a6b65e9b URL: https://source.winehq.org/git/wine.git/?a=commit;h=d00aa4db48b3b575f791fe41d...
Author: Hans Leidekker hans@codeweavers.com Date: Tue Dec 4 13:57:26 2018 +0100
webservices: Implement WsFillBody.
Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/webservices/msg.c | 27 +++++++++++++++++++++++++++ dlls/webservices/webservices.spec | 2 +- include/webservices.h | 1 + 3 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/dlls/webservices/msg.c b/dlls/webservices/msg.c index e28baa2..ada549c 100644 --- a/dlls/webservices/msg.c +++ b/dlls/webservices/msg.c @@ -999,6 +999,33 @@ HRESULT WINAPI WsReadBody( WS_MESSAGE *handle, const WS_ELEMENT_DESCRIPTION *des }
/************************************************************************** + * WsFillBody [webservices.@] + */ +HRESULT WINAPI WsFillBody( WS_MESSAGE *handle, ULONG size, const WS_ASYNC_CONTEXT *ctx, WS_ERROR *error ) +{ + struct msg *msg = (struct msg *)handle; + HRESULT hr; + + TRACE( "%p %u %p %p\n", handle, size, ctx, error ); + + if (!msg) return E_INVALIDARG; + + EnterCriticalSection( &msg->cs ); + + if (msg->magic != MSG_MAGIC) + { + LeaveCriticalSection( &msg->cs ); + return E_INVALIDARG; + } + + hr = WsFillReader( msg->reader_body, size, ctx, error ); + + LeaveCriticalSection( &msg->cs ); + TRACE( "returning %08x\n", hr ); + return hr; +} + +/************************************************************************** * WsInitializeMessage [webservices.@] */ HRESULT WINAPI WsInitializeMessage( WS_MESSAGE *handle, WS_MESSAGE_INITIALIZATION init, diff --git a/dlls/webservices/webservices.spec b/dlls/webservices/webservices.spec index 30c97e3..adad68d 100644 --- a/dlls/webservices/webservices.spec +++ b/dlls/webservices/webservices.spec @@ -43,7 +43,7 @@ @ stub WsEndReaderCanonicalization @ stub WsEndWriterCanonicalization @ stdcall WsFileTimeToDateTime(ptr ptr ptr) -@ stub WsFillBody +@ stdcall WsFillBody(ptr long ptr ptr) @ stdcall WsFillReader(ptr long ptr ptr) @ stdcall WsFindAttribute(ptr ptr ptr long ptr ptr) @ stub WsFlushBody diff --git a/include/webservices.h b/include/webservices.h index 6cafcc6..69e3c8a 100644 --- a/include/webservices.h +++ b/include/webservices.h @@ -1622,6 +1622,7 @@ HRESULT WINAPI WsDateTimeToFileTime(const WS_DATETIME*, FILETIME*, WS_ERROR*); HRESULT WINAPI WsDecodeUrl(const WS_STRING*, ULONG, WS_HEAP*, WS_URL**, WS_ERROR*); HRESULT WINAPI WsEncodeUrl(const WS_URL*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*); HRESULT WINAPI WsFileTimeToDateTime(const FILETIME*, WS_DATETIME*, WS_ERROR*); +HRESULT WINAPI WsFillBody(WS_MESSAGE*, ULONG, const WS_ASYNC_CONTEXT*, 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*);