From 9616d2586c96f5cce100f45eca0bdc1cd1afdb02 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 20 Mar 2020 16:03:52 +0100 Subject: [PATCH] webservices: Implement WS_ANY_ATTRIBUTES_FIELD_MAPPING for the writer. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- dlls/webservices/reader.c | 3 +++ dlls/webservices/tests/writer.c | 11 +++++++++-- dlls/webservices/writer.c | 3 +++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c index bf29990923c..f1ce93b7d74 100644 --- a/dlls/webservices/reader.c +++ b/dlls/webservices/reader.c @@ -6085,6 +6085,9 @@ ULONG get_type_size( WS_TYPE type, const void *desc ) const WS_UNION_DESCRIPTION *desc_union = desc; return desc_union->size; } + case WS_ANY_ATTRIBUTES_TYPE: + return 0; + default: ERR( "unhandled type %u\n", type ); return 0; diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c index d66c2e43196..e996e4972b6 100644 --- a/dlls/webservices/tests/writer.c +++ b/dlls/webservices/tests/writer.c @@ -1586,10 +1586,11 @@ static void test_complex_struct_type(void) WS_XML_BUFFER *buffer; WS_XML_WRITER *writer; WS_STRUCT_DESCRIPTION s, s2; - WS_FIELD_DESCRIPTION f, f2, *fields[1], *fields2[1]; + WS_FIELD_DESCRIPTION f, f2, f3, *fields[1], *fields2[2]; struct services { const WCHAR *generationtime; + BYTE dummy[12]; }; struct officeconfig { @@ -1619,11 +1620,17 @@ static void test_complex_struct_type(void) f2.options = WS_FIELD_OPTIONAL; fields2[0] = &f2; + memset( &f3, 0, sizeof(f3) ); + f3.mapping = WS_ANY_ATTRIBUTES_FIELD_MAPPING; + f3.type = WS_ANY_ATTRIBUTES_TYPE; + f3.offset = FIELD_OFFSET(struct services, dummy); + fields2[1] = &f3; + memset( &s2, 0, sizeof(s2) ); s2.size = sizeof(*test->services); s2.alignment = 4; s2.fields = fields2; - s2.fieldCount = 1; + s2.fieldCount = 2; s2.typeLocalName = &str_services; s2.typeNs = &ns; diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c index 53489786cda..989ea0986d4 100644 --- a/dlls/webservices/writer.c +++ b/dlls/webservices/writer.c @@ -3831,6 +3831,9 @@ static HRESULT write_type_field( struct writer *writer, const WS_FIELD_DESCRIPTI } break; + case WS_ANY_ATTRIBUTES_FIELD_MAPPING: + return S_OK; + default: FIXME( "field mapping %u not supported\n", desc->mapping ); return E_NOTIMPL;