Hans Leidekker : webservices: Implement WsFillBody.

Alexandre Julliard julliard at winehq.org
Tue Dec 4 16:33:55 CST 2018


Module: wine
Branch: master
Commit: d00aa4db48b3b575f791fe41d30fd997a6b65e9b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d00aa4db48b3b575f791fe41d30fd997a6b65e9b

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Dec  4 13:57:26 2018 +0100

webservices: Implement WsFillBody.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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*);




More information about the wine-cvs mailing list