diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c index 570de5a7c7f..6fdd6084586 100644 --- a/dlls/wbemdisp/locator.c +++ b/dlls/wbemdisp/locator.c @@ -209,10 +209,13 @@ static HRESULT WINAPI property_Invoke( ISWbemProperty *iface, DISPID member, REF return hr; } -static HRESULT WINAPI property_get_Value( ISWbemProperty *iface, VARIANT *varValue ) +static HRESULT WINAPI property_get_Value( ISWbemProperty *iface, VARIANT *value ) { - FIXME( "\n" ); - return E_NOTIMPL; + struct property *property = impl_from_ISWbemProperty( iface ); + + TRACE( "%p %p\n", property, value ); + + return IWbemClassObject_Get( property->object, property->name, 0, value, NULL, NULL ); } static HRESULT WINAPI property_put_Value( ISWbemProperty *iface, VARIANT *varValue ) diff --git a/dlls/wbemdisp/tests/wbemdisp.c b/dlls/wbemdisp/tests/wbemdisp.c index bfc81f91111..0c426c569a3 100644 --- a/dlls/wbemdisp/tests/wbemdisp.c +++ b/dlls/wbemdisp/tests/wbemdisp.c @@ -313,6 +313,11 @@ static void test_locator(void) ok( hr == S_OK, "got %x\n", hr ); SysFreeString( procid_bstr ); + hr = ISWbemProperty_get_Value( prop, &var ); + ok( hr == S_OK, "got %x\n", hr ); + ok( V_VT(&var) == VT_BSTR, "got %x\n", V_VT(&var) ); + VariantClear( &var ); + ISWbemProperty_Release( prop ); ISWbemPropertySet_Release( prop_set ); ISWbemObject_Release( object );