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