[6/6] webservices: Implement WS_XML_WRITER_PROPERTY_BUFFERS.
Hans Leidekker
hans at codeweavers.com
Mon May 15 02:59:24 CDT 2017
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
dlls/webservices/tests/writer.c | 14 +++++++++-----
dlls/webservices/writer.c | 13 +++++++++++++
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c
index 0d5fa2a..4dfa1db 100644
--- a/dlls/webservices/tests/writer.c
+++ b/dlls/webservices/tests/writer.c
@@ -1969,6 +1969,7 @@ static void test_WsCopyNode(void)
WS_XML_WRITER *writer;
WS_XML_READER *reader;
WS_XML_BUFFER *buffer;
+ WS_BUFFERS bufs;
WS_HEAP *heap;
HRESULT hr;
@@ -2049,20 +2050,23 @@ static void test_WsCopyNode(void)
ok( hr == S_OK, "got %08x\n", hr );
ok( node->nodeType == WS_XML_NODE_TYPE_BOF, "got %u\n", node->nodeType );
- hr = WsCreateXmlBuffer( heap, NULL, 0, &buffer, NULL );
- ok( hr == S_OK, "got %08x\n", hr );
-
- hr = WsSetOutputToBuffer( writer, buffer, NULL, 0, NULL );
+ hr = set_output( writer );
ok( hr == S_OK, "got %08x\n", hr );
hr = WsCopyNode( writer, reader, NULL );
ok( hr == S_OK, "got %08x\n", hr );
- check_output_buffer( buffer, "<v/>", __LINE__ );
+ check_output( writer, "<v/>", __LINE__ );
hr = WsGetReaderNode( reader, &node, NULL );
ok( hr == S_OK, "got %08x\n", hr );
ok( node->nodeType == WS_XML_NODE_TYPE_EOF, "got %u\n", node->nodeType );
+ memset( &bufs, 0, sizeof(bufs) );
+ hr = WsGetWriterProperty( writer, WS_XML_WRITER_PROPERTY_BUFFERS, &bufs, sizeof(bufs), NULL );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( bufs.bufferCount == 1, "got %u\n", bufs.bufferCount );
+ ok( bufs.buffers != NULL, "buffers not set\n" );
+
WsFreeReader( reader );
WsFreeWriter( writer );
WsFreeHeap( heap );
diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index b9ddb39..421b79d 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -293,6 +293,19 @@ HRESULT WINAPI WsGetWriterProperty( WS_XML_WRITER *handle, WS_XML_WRITER_PROPERT
}
break;
}
+ case WS_XML_WRITER_PROPERTY_BUFFERS:
+ if (writer->output_buf->bytes.length)
+ {
+ WS_BUFFERS *buffers = buf;
+ if (size != sizeof(*buffers)) hr = E_INVALIDARG;
+ else
+ {
+ buffers->bufferCount = 1;
+ buffers->buffers = &writer->output_buf->bytes;
+ }
+ break;
+ }
+ /* fall through */
default:
hr = prop_get( writer->prop, writer->prop_count, id, buf, size );
}
--
2.1.4
More information about the wine-patches
mailing list