Hans Leidekker : wbemdisp: Implement ISWbemPropertySet::get_Count.

Alexandre Julliard julliard at winehq.org
Fri Oct 12 18:00:41 CDT 2018


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Oct 12 19:17:32 2018 +0200

wbemdisp: Implement ISWbemPropertySet::get_Count.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40534
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 78b81d8..c307e34 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 68c0e3b..57baf84 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) );




More information about the wine-cvs mailing list