[2/5] webservices: Support WS_STRING values in WsSetHeader.
Hans Leidekker
hans at codeweavers.com
Tue Aug 16 05:30:33 CDT 2016
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
dlls/webservices/msg.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/dlls/webservices/msg.c b/dlls/webservices/msg.c
index 904d490..487222e 100644
--- a/dlls/webservices/msg.c
+++ b/dlls/webservices/msg.c
@@ -598,6 +598,24 @@ static HRESULT alloc_header( WS_HEADER_TYPE type, WS_TYPE value_type, WS_WRITE_O
memcpy( header->text.value.bytes, str->bytes, str->length );
break;
}
+ case WS_STRING_TYPE:
+ {
+ int len;
+ const WS_STRING *str = value;
+
+ if (option != WS_WRITE_REQUIRED_VALUE)
+ {
+ FIXME( "unhandled write option %u\n", option );
+ return E_NOTIMPL;
+ }
+ if (size != sizeof(*str)) return E_INVALIDARG;
+ len = WideCharToMultiByte( CP_UTF8, 0, str->chars, str->length, NULL, 0, NULL, NULL );
+ if (!(header = heap_alloc( sizeof(*header) + len ))) return E_OUTOFMEMORY;
+ set_utf8_text( &header->text, (BYTE *)(header + 1), len );
+ WideCharToMultiByte( CP_UTF8, 0, str->chars, str->length, (char *)header->text.value.bytes,
+ len, NULL, NULL );
+ break;
+ }
default:
FIXME( "unhandled type %u\n", value_type );
return E_NOTIMPL;
--
2.1.4
More information about the wine-patches
mailing list