Nikolay Sivov : wbemdisp: Handle DISPATCH_PROPERTYPUT in scripting object Invoke().

Alexandre Julliard julliard at winehq.org
Fri Feb 26 14:39:29 CST 2021


Module: wine
Branch: master
Commit: 5b836d172554bec3b922958e5f4eed21bf7a1603
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5b836d172554bec3b922958e5f4eed21bf7a1603

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Feb 26 10:22:16 2021 +0300

wbemdisp: Handle DISPATCH_PROPERTYPUT in scripting object Invoke().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wbemdisp/locator.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
index d7b04e343fd..619f7e5c67f 100644
--- a/dlls/wbemdisp/locator.c
+++ b/dlls/wbemdisp/locator.c
@@ -1226,16 +1226,28 @@ static HRESULT WINAPI object_Invoke(
         return hr;
     }
 
-    if (flags != (DISPATCH_METHOD|DISPATCH_PROPERTYGET))
+    if (!(name = get_member_name( object, member )))
+        return DISP_E_MEMBERNOTFOUND;
+
+    if (flags == (DISPATCH_METHOD|DISPATCH_PROPERTYGET))
+    {
+        memset( params, 0, sizeof(*params) );
+        return IWbemClassObject_Get( object->object, name, 0, result, NULL, NULL );
+    }
+    else if (flags == DISPATCH_PROPERTYPUT)
+    {
+        if (!params->cArgs || !params->rgvarg)
+        {
+            WARN( "Missing put property value\n" );
+            return E_INVALIDARG;
+        }
+        return IWbemClassObject_Put( object->object, name, 0, params->rgvarg, 0 );
+    }
+    else
     {
         FIXME( "flags %x not supported\n", flags );
         return E_NOTIMPL;
     }
-    if (!(name = get_member_name( object, member )))
-        return DISP_E_MEMBERNOTFOUND;
-
-    memset( params, 0, sizeof(*params) );
-    return IWbemClassObject_Get( object->object, name, 0, result, NULL, NULL );
 }
 
 static HRESULT WINAPI object_Put_(




More information about the wine-cvs mailing list