[PATCH 5/5] wbemdisp: Handle DISPATCH_PROPERTYPUT in scripting object Invoke().
Nikolay Sivov
nsivov at codeweavers.com
Fri Feb 26 01:22:16 CST 2021
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
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_(
--
2.30.0
More information about the wine-devel
mailing list