Hans Leidekker : wbemprox: Implement IWbemServices::GetObject.

Alexandre Julliard julliard at winehq.org
Thu Jun 28 13:55:16 CDT 2012


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Jun 28 09:24:21 2012 +0200

wbemprox: Implement IWbemServices::GetObject.

---

 dlls/wbemprox/services.c |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c
index aeca7c8..05a9811 100644
--- a/dlls/wbemprox/services.c
+++ b/dlls/wbemprox/services.c
@@ -239,8 +239,30 @@ static HRESULT WINAPI wbem_services_GetObject(
     IWbemClassObject **ppObject,
     IWbemCallResult **ppCallResult )
 {
-    FIXME("\n");
-    return WBEM_E_FAILED;
+    static const WCHAR selectW[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',0};
+    IEnumWbemClassObject *iter;
+    WCHAR *query;
+    HRESULT hr;
+
+    TRACE("%p, %s, 0x%08x, %p, %p, %p\n", iface, debugstr_w(strObjectPath), lFlags,
+          pCtx, ppObject, ppCallResult);
+
+    if (lFlags) FIXME("unsupported flags 0x%08x\n", lFlags);
+
+    /* FIXME: parse path */
+
+    if (!(query = heap_alloc( strlenW( strObjectPath ) * sizeof(WCHAR) + sizeof(selectW) )))
+        return E_OUTOFMEMORY;
+    strcpyW( query, selectW );
+    strcatW( query, strObjectPath );
+
+    hr = exec_query( query, &iter );
+    heap_free( query );
+    if (hr != S_OK) return hr;
+
+    hr = WbemClassObject_create( NULL, iter, 0, (void **)ppObject );
+    IEnumWbemClassObject_Release( iter );
+    return hr;
 }
 
 static HRESULT WINAPI wbem_services_GetObjectAsync(




More information about the wine-cvs mailing list