Hans Leidekker : wbemprox: Trace the qualifier value in IWbemClassObject:: GetNames.

Alexandre Julliard julliard at winehq.org
Wed Feb 6 13:38:12 CST 2013


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Feb  6 13:54:06 2013 +0100

wbemprox: Trace the qualifier value in IWbemClassObject::GetNames.

---

 dlls/wbemprox/class.c            |    3 ++-
 dlls/wbemprox/wbemprox_private.h |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/dlls/wbemprox/class.c b/dlls/wbemprox/class.c
index 62cf332..d516efb 100644
--- a/dlls/wbemprox/class.c
+++ b/dlls/wbemprox/class.c
@@ -474,7 +474,8 @@ static HRESULT WINAPI class_object_GetNames(
     struct class_object *co = impl_from_IWbemClassObject( iface );
     struct enum_class_object *ec = impl_from_IEnumWbemClassObject( co->iter );
 
-    TRACE("%p, %s, %08x, %p, %p\n", iface, debugstr_w(wszQualifierName), lFlags, pQualifierVal, pNames);
+    TRACE("%p, %s, %08x, %s, %p\n", iface, debugstr_w(wszQualifierName), lFlags,
+          debugstr_variant(pQualifierVal), pNames);
 
     if (wszQualifierName || pQualifierVal)
     {
diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
index f1d4119..efdde76 100644
--- a/dlls/wbemprox/wbemprox_private.h
+++ b/dlls/wbemprox/wbemprox_private.h
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#include "wine/debug.h"
 #include "wine/list.h"
 #include "wine/unicode.h"
 
@@ -239,6 +240,37 @@ static inline WCHAR *heap_strdupW( const WCHAR *src )
     return dst;
 }
 
+static inline const char *debugstr_variant( const VARIANT *v )
+{
+    if (!v) return "(null)";
+    switch (V_VT(v))
+    {
+    case VT_EMPTY:
+        return "{VT_EMPTY}";
+    case VT_NULL:
+        return "{VT_NULL}";
+    case VT_I4:
+        return wine_dbg_sprintf( "{VT_I4: %d}", V_I4(v) );
+    case VT_R8:
+        return wine_dbg_sprintf( "{VT_R8: %lf}", V_R8(v) );
+    case VT_BSTR:
+        return wine_dbg_sprintf( "{VT_BSTR: %s}", debugstr_w(V_BSTR(v)) );
+    case VT_DISPATCH:
+        return wine_dbg_sprintf( "{VT_DISPATCH: %p}", V_DISPATCH(v) );
+    case VT_BOOL:
+        return wine_dbg_sprintf( "{VT_BOOL: %x}", V_BOOL(v) );
+    case VT_UNKNOWN:
+        return wine_dbg_sprintf( "{VT_UNKNOWN: %p}", V_UNKNOWN(v) );
+    case VT_UINT:
+        return wine_dbg_sprintf( "{VT_UINT: %u}", V_UINT(v) );
+    case VT_BSTR|VT_BYREF:
+        return wine_dbg_sprintf( "{VT_BSTR|VT_BYREF: ptr %p, data %s}",
+            V_BSTRREF(v), V_BSTRREF(v) ? debugstr_w( *V_BSTRREF(v) ) : NULL );
+    default:
+        return wine_dbg_sprintf( "{vt %d}", V_VT(v) );
+    }
+}
+
 static const WCHAR class_processW[] = {'W','i','n','3','2','_','P','r','o','c','e','s','s',0};
 static const WCHAR class_serviceW[] = {'W','i','n','3','2','_','S','e','r','v','i','c','e',0};
 static const WCHAR class_stdregprovW[] = {'S','t','d','R','e','g','P','r','o','v',0};




More information about the wine-cvs mailing list