Hans Leidekker : webservices: Add support for retrieving the output buffer.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Nov 11 08:36:44 CST 2015


Module: wine
Branch: master
Commit: 349641575ca7b0db510911e40ab9d705c8632377
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=349641575ca7b0db510911e40ab9d705c8632377

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Nov 11 11:02:01 2015 +0100

webservices: Add support for retrieving the output buffer.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/webservices/tests/writer.c | 10 +++++-----
 dlls/webservices/writer.c       | 15 ++++++++++++++-
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c
index 26b8c78..9f0ae2b 100644
--- a/dlls/webservices/tests/writer.c
+++ b/dlls/webservices/tests/writer.c
@@ -120,13 +120,13 @@ static void test_WsCreateWriter(void)
     ok( hr == S_OK, "got %08x\n", hr );
     ok( max_size == 65536, "got %u\n", max_size );
 
-    buffers.bufferCount = 0xdeadbeef;
-    buffers.buffers = (WS_BYTES *)0xdeadbeef;
+    bytes.length = 0xdeadbeef;
+    bytes.bytes = (BYTE *)0xdeadbeef;
     size = sizeof(buffers);
-    hr = WsGetWriterProperty( writer, WS_XML_WRITER_PROPERTY_BYTES, &buffers, size, NULL );
+    hr = WsGetWriterProperty( writer, WS_XML_WRITER_PROPERTY_BYTES, &bytes, size, NULL );
     ok( hr == S_OK, "got %08x\n", hr );
-    ok( !buffers.bufferCount, "got %u\n", buffers.bufferCount );
-    todo_wine ok( buffers.buffers != NULL, "got %p\n", buffers.buffers );
+    ok( !bytes.length, "got %u\n", bytes.length );
+    ok( bytes.bytes != NULL, "got %p\n", bytes.bytes );
 
     max_size = 0xdeadbeef;
     size = sizeof(max_size);
diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index e8b5fad..b56c718 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -293,7 +293,20 @@ HRESULT WINAPI WsGetWriterProperty( WS_XML_WRITER *handle, WS_XML_WRITER_PROPERT
     if (error) FIXME( "ignoring error parameter\n" );
 
     if (!writer->output_type) return WS_E_INVALID_OPERATION;
-    return get_writer_prop( writer, id, buf, size );
+
+    switch (id)
+    {
+    case WS_XML_WRITER_PROPERTY_BYTES:
+    {
+        WS_BYTES *bytes = buf;
+        if (size != sizeof(*bytes)) return E_INVALIDARG;
+        bytes->bytes  = writer->output_buf->ptr;
+        bytes->length = writer->output_buf->size;
+        return S_OK;
+    }
+    default:
+        return get_writer_prop( writer, id, buf, size );
+    }
 }
 
 static void set_output_buffer( struct writer *writer, struct xmlbuf *xmlbuf )




More information about the wine-cvs mailing list