Hans Leidekker : webservices: Implement WsGetErrorProperty and WsSetErrorProperty.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Sep 11 08:02:19 CDT 2015
Module: wine
Branch: master
Commit: a1d2f213925ccfe6af9c5730aad8f384bea44586
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a1d2f213925ccfe6af9c5730aad8f384bea44586
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri Sep 11 10:59:51 2015 +0200
webservices: Implement WsGetErrorProperty and WsSetErrorProperty.
---
dlls/webservices/reader.c | 35 +++++++++++++++++++++++++++++++++++
dlls/webservices/webservices.spec | 4 ++--
2 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c
index 08dae6d..ac7de65 100644
--- a/dlls/webservices/reader.c
+++ b/dlls/webservices/reader.c
@@ -95,6 +95,15 @@ static HRESULT set_error_prop( struct error *error, WS_ERROR_PROPERTY_ID id, con
return S_OK;
}
+static HRESULT get_error_prop( struct error *error, WS_ERROR_PROPERTY_ID id, void *buf, ULONG size )
+{
+ if (id >= error->prop_count || size != error_props[id].size)
+ return E_INVALIDARG;
+
+ memcpy( buf, error->prop[id].value, error->prop[id].valueSize );
+ return S_OK;
+}
+
/**************************************************************************
* WsCreateError [webservices.@]
*/
@@ -140,3 +149,29 @@ void WINAPI WsFreeError( WS_ERROR *handle )
TRACE( "%p\n", handle );
heap_free( error );
}
+
+/**************************************************************************
+ * WsGetErrorProperty [webservices.@]
+ */
+HRESULT WINAPI WsGetErrorProperty( WS_ERROR *handle, WS_ERROR_PROPERTY_ID id, void *buf,
+ ULONG size )
+{
+ struct error *error = (struct error *)handle;
+
+ TRACE( "%p %u %p %u\n", handle, id, buf, size );
+ return get_error_prop( error, id, buf, size );
+}
+
+/**************************************************************************
+ * WsSetErrorProperty [webservices.@]
+ */
+HRESULT WINAPI WsSetErrorProperty( WS_ERROR *handle, WS_ERROR_PROPERTY_ID id, const void *value,
+ ULONG size )
+{
+ struct error *error = (struct error *)handle;
+
+ TRACE( "%p %u %p %u\n", handle, id, value, size );
+
+ if (id == WS_ERROR_PROPERTY_LANGID) return WS_E_INVALID_OPERATION;
+ return set_error_prop( error, id, value, size );
+}
diff --git a/dlls/webservices/webservices.spec b/dlls/webservices/webservices.spec
index 9bf6496..0ff3c0d 100644
--- a/dlls/webservices/webservices.spec
+++ b/dlls/webservices/webservices.spec
@@ -62,7 +62,7 @@
@ stub WsGetChannelProperty
@ stub WsGetCustomHeader
@ stub WsGetDictionary
-@ stub WsGetErrorProperty
+@ stdcall WsGetErrorProperty(ptr long ptr long)
@ stub WsGetErrorString
@ stub WsGetFaultErrorDetail
@ stub WsGetFaultErrorProperty
@@ -146,7 +146,7 @@
@ stub WsSendMessage
@ stub WsSendReplyMessage
@ stub WsSetChannelProperty
-@ stub WsSetErrorProperty
+@ stdcall WsSetErrorProperty(ptr long ptr long)
@ stub WsSetFaultErrorDetail
@ stub WsSetFaultErrorProperty
@ stub WsSetHeader
More information about the wine-cvs
mailing list