From: Conor McCarthy <cmccarthy@codeweavers.com> --- dlls/wbemdisp/locator.c | 12 ++++++++++-- dlls/wbemdisp/tests/wbemdisp.c | 7 +------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c index 4ac1dcd978f..1ca64956d96 100644 --- a/dlls/wbemdisp/locator.c +++ b/dlls/wbemdisp/locator.c @@ -265,8 +265,16 @@ static HRESULT WINAPI property_put_Value( ISWbemProperty *iface, VARIANT *varVal static HRESULT WINAPI property_get_Name( ISWbemProperty *iface, BSTR *strName ) { - FIXME( "\n" ); - return E_NOTIMPL; + struct property *property = impl_from_ISWbemProperty( iface ); + WCHAR *name; + + TRACE( "%p %p\n", property, strName ); + + if (!(name = SysAllocString( property->name ))) + return E_OUTOFMEMORY; + + *strName = name; + return S_OK; } static HRESULT WINAPI property_get_IsLocal( ISWbemProperty *iface, VARIANT_BOOL *bIsLocal ) diff --git a/dlls/wbemdisp/tests/wbemdisp.c b/dlls/wbemdisp/tests/wbemdisp.c index b736a36845f..59f3a7ccf3b 100644 --- a/dlls/wbemdisp/tests/wbemdisp.c +++ b/dlls/wbemdisp/tests/wbemdisp.c @@ -296,7 +296,6 @@ static void test_ParseDisplayName(void) ok( !!fetched, "got %lu\n", fetched ); ok ( V_VT( vars + ARRAY_SIZE(vars) - 1 ) == VT_EMPTY, "got %u\n", V_VT( vars + ARRAY_SIZE(vars) - 1 ) ); - dispname = NULL; for (i = 0; i < fetched; ++i) { ok( V_VT( vars + i ) == VT_DISPATCH, "got %u\n", V_VT( vars + i ) ); @@ -304,7 +303,6 @@ static void test_ParseDisplayName(void) ok( hr == S_OK, "got %#lx\n", hr ); VariantClear( vars + i ); hr = ISWbemProperty_get_Name( prop, &dispname ); - todo_wine ok( hr == S_OK, "got %#lx\n", hr ); SysFreeString( dispname ); hr = ISWbemProperty_get_Value( prop, &res ); @@ -323,13 +321,10 @@ static void test_ParseDisplayName(void) hr = IEnumVARIANT_Next( setenumvar, 1, vars + 1, &fetched ); ok( hr == S_OK, "got %#lx\n", hr ); hr = ISWbemProperty_get_Name( (ISWbemProperty *)V_DISPATCH(vars), &dispname ); - todo_wine ok( hr == S_OK, "got %#lx\n", hr ); - dispname2 = NULL; hr = ISWbemProperty_get_Name( (ISWbemProperty *)V_DISPATCH(vars + 1), &dispname2 ); - todo_wine ok( hr == S_OK, "got %#lx\n", hr ); - if (dispname) ok( wcscmp( dispname, dispname2 ), "got equal names\n" ); + ok( wcscmp( dispname, dispname2 ), "got equal names\n" ); SysFreeString( dispname ); SysFreeString( dispname2 ); VariantClear( vars ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11724