[1/9] webservices: Add support for retrieving the output buffer.
Hans Leidekker
hans at codeweavers.com
Wed Nov 11 04:02:01 CST 2015
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
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 )
--
2.6.2
More information about the wine-patches
mailing list