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