Hans Leidekker : wbemdisp: Implement ISWbemServices::InstancesOf.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jan 14 14:35:42 CST 2015


Module: wine
Branch: master
Commit: 78433f11644a9c74c13ff16f26dbf1aaaabd01f2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=78433f11644a9c74c13ff16f26dbf1aaaabd01f2

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Jan 14 15:35:47 2015 +0100

wbemdisp: Implement ISWbemServices::InstancesOf.

---

 dlls/wbemdisp/locator.c | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
index 0a6b076..9731630 100644
--- a/dlls/wbemdisp/locator.c
+++ b/dlls/wbemdisp/locator.c
@@ -671,6 +671,18 @@ static HRESULT WINAPI services_DeleteAsync(
     return E_NOTIMPL;
 }
 
+static BSTR build_query_string( const WCHAR *class )
+{
+    static const WCHAR selectW[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',0};
+    UINT len = strlenW(class) + sizeof(selectW) / sizeof(selectW[0]);
+    BSTR ret;
+
+    if (!(ret = SysAllocStringLen( NULL, len ))) return NULL;
+    strcpyW( ret, selectW );
+    strcatW( ret, class );
+    return ret;
+}
+
 static HRESULT WINAPI services_InstancesOf(
     ISWbemServices *iface,
     BSTR strClass,
@@ -678,8 +690,22 @@ static HRESULT WINAPI services_InstancesOf(
     IDispatch *objWbemNamedValueSet,
     ISWbemObjectSet **objWbemObjectSet )
 {
-    FIXME( "\n" );
-    return E_NOTIMPL;
+    static const WCHAR wqlW[] = {'W','Q','L',0};
+    BSTR query, wql = SysAllocString( wqlW );
+    HRESULT hr;
+
+    TRACE( "%p, %s, %x, %p, %p\n", iface, debugstr_w(strClass), iFlags, objWbemNamedValueSet,
+           objWbemObjectSet );
+
+    if (!(query = build_query_string( strClass )))
+    {
+        SysFreeString( wql );
+        return E_OUTOFMEMORY;
+    }
+    hr = ISWbemServices_ExecQuery( iface, query, wql, iFlags, objWbemNamedValueSet, objWbemObjectSet );
+    SysFreeString( wql );
+    SysFreeString( query );
+    return hr;
 }
 
 static HRESULT WINAPI services_InstancesOfAsync(




More information about the wine-cvs mailing list