[PATCH] wbemdisp: Implement ISWbemPropertySet::get_Count.

Hans Leidekker hans at codeweavers.com
Fri Oct 12 12:17:32 CDT 2018


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40534
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/wbemdisp/locator.c        | 15 +++++++++++++--
 dlls/wbemdisp/tests/wbemdisp.c |  6 ++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
index 78b81d8551..c307e347cf 100644
--- a/dlls/wbemdisp/locator.c
+++ b/dlls/wbemdisp/locator.c
@@ -438,8 +438,19 @@ static HRESULT WINAPI propertyset_Item( ISWbemPropertySet *iface, BSTR name,
 
 static HRESULT WINAPI propertyset_get_Count( ISWbemPropertySet *iface, LONG *count )
 {
-    FIXME( "\n" );
-    return E_NOTIMPL;
+    static const WCHAR propcountW[] = {'_','_','P','R','O','P','E','R','T','Y','_','C','O','U','N','T',0};
+    struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+    HRESULT hr;
+    VARIANT val;
+
+    TRACE( "%p, %p\n", propertyset, count );
+
+    hr = IWbemClassObject_Get( propertyset->object, propcountW, 0, &val, NULL, NULL );
+    if (SUCCEEDED(hr))
+    {
+        *count = V_I4( &val );
+    }
+    return hr;
 }
 
 static HRESULT WINAPI propertyset_Add( ISWbemPropertySet *iface, BSTR name, WbemCimtypeEnum type,
diff --git a/dlls/wbemdisp/tests/wbemdisp.c b/dlls/wbemdisp/tests/wbemdisp.c
index 68c0e3b589..57baf848cc 100644
--- a/dlls/wbemdisp/tests/wbemdisp.c
+++ b/dlls/wbemdisp/tests/wbemdisp.c
@@ -302,6 +302,7 @@ static void test_locator(void)
     ISWbemProperty *prop;
     ISWbemSecurity *security;
     VARIANT var;
+    LONG count;
     WbemImpersonationLevelEnum imp_level;
     WbemAuthenticationLevelEnum auth_level;
 
@@ -379,6 +380,11 @@ static void test_locator(void)
     ok( hr == S_OK, "got %x\n", hr );
     SysFreeString( procid_bstr );
 
+    count = 0;
+    hr = ISWbemPropertySet_get_Count( prop_set, &count );
+    ok( hr == S_OK, "got %x\n", hr );
+    ok( count > 0, "got %d\n", count );
+
     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) );
-- 
2.11.0




More information about the wine-devel mailing list