Added debugstr_guid function and used it to replace
WINE_StringFromCLSID in all debugging messages.

diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index a8a784e..89c634a 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -116,10 +116,8 @@
 
 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj) {
 	ICOM_THIS(IAVIFileImpl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj);
+	TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) ||
 		!memcmp(&IID_IAVIFile,refiid,sizeof(IID_IAVIFile))
 	) {
@@ -210,16 +208,9 @@
 HRESULT WINAPI AVIFileOpenA(
 	PAVIFILE * ppfile,LPCSTR szFile,UINT uMode,LPCLSID lpHandler
 ) {
-	char	buf[80];
 	IAVIFileImpl	*iavi;
 
-
-	if (HIWORD(lpHandler))
-		WINE_StringFromCLSID(lpHandler,buf);
-	else
-		sprintf(buf,"<clsid-0x%04lx>",(DWORD)lpHandler);
-
-	FIXME("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,buf);
+	FIXME("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,debugstr_guid(lpHandler));
 	iavi = (IAVIFileImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIFileImpl));
 	iavi->ref = 1;
 	ICOM_VTBL(iavi) = &iavift;
@@ -229,10 +220,8 @@
 
 static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj) {
 	ICOM_THIS(IAVIStreamImpl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj);
+	TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) ||
 		!memcmp(&IID_IAVIStream,refiid,sizeof(IID_IAVIStream))
 	) {
diff --git a/dlls/dplayx/dpclassfactory.c b/dlls/dplayx/dpclassfactory.c
index 65a10be..ce9c8d6 100644
--- a/dlls/dplayx/dpclassfactory.c
+++ b/dlls/dplayx/dpclassfactory.c
@@ -21,14 +21,8 @@
 static HRESULT WINAPI
 DP_and_DPL_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
         ICOM_THIS(IClassFactoryImpl,iface);
-        char buf[80];
 
-        if (HIWORD(riid))
-            WINE_StringFromCLSID(riid,buf);
-        else
-            sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-
-        FIXME("(%p)->(%s,%p),stub!\n",This,buf,ppobj);
+        FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
 
         return E_NOINTERFACE;
 }
@@ -50,10 +44,8 @@
         LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj
 ) {
         ICOM_THIS(IClassFactoryImpl,iface);
-        char buf[80];
 
-        WINE_StringFromCLSID(riid,buf);
-        TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,buf,ppobj);
+        TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
 
         /* FIXME: reuse already created DP/DPL object if present? */
         if ( directPlayLobby_QueryInterface( riid, ppobj ) == S_OK )
@@ -104,21 +96,7 @@
  */
 DWORD WINAPI DP_and_DPL_DllGetClassObject(REFCLSID rclsid,REFIID riid,LPVOID *ppv)
 {
-    char buf[80],xbuf[80];
-
-    if (HIWORD(rclsid))
-        WINE_StringFromCLSID(rclsid,xbuf);
-    else
-        sprintf(xbuf,"<guid-0x%04x>",LOWORD(rclsid));
-
-    if (HIWORD(riid))
-        WINE_StringFromCLSID(riid,buf);
-    else
-        sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-
-    WINE_StringFromCLSID(riid,xbuf);
-
-    TRACE("(%p,%p,%p)\n", xbuf, buf, ppv);
+    TRACE("(%p,%p,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
 
     if ( IsEqualCLSID( riid, &IID_IClassFactory ) )
     {
@@ -128,7 +106,7 @@
         return S_OK;
     }
 
-    ERR("(%p,%p,%p): no interface found.\n", xbuf, buf, ppv);
+    ERR("(%p,%p,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
     return CLASS_E_CLASSNOTAVAILABLE;
 }
 
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index 4809ec3..f249de9 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -2044,11 +2044,7 @@
 HRESULT WINAPI DirectPlayCreate
 ( LPGUID lpGUID, LPDIRECTPLAY2 *lplpDP, IUnknown *pUnk)
 {
-  char lpGUIDString[51];
- 
-  WINE_StringFromCLSID( lpGUID, &lpGUIDString[0] );
-
-  TRACE( "lpGUID=%s lplpDP=%p pUnk=%p\n", &lpGUIDString[0], lplpDP, pUnk );
+  TRACE( "lpGUID=%s lplpDP=%p pUnk=%p\n", debugstr_guid(lpGUID), lplpDP, pUnk );
 
   if( pUnk != NULL )
   {
@@ -2084,7 +2080,7 @@
      return DPERR_INVALIDPARAMS; 
   }
 
-  ERR( "unknown Service Provider %s\n", &lpGUIDString[0] );
+  ERR( "unknown Service Provider %s\n", debugstr_guid(lpGUID) );
 
   IDirectPlayX_Release( *lplpDP );
   *lplpDP = NULL;
diff --git a/dlls/dplayx/dplobby.c b/dlls/dplayx/dplobby.c
index d938cd90..5bcd6fe 100644
--- a/dlls/dplayx/dplobby.c
+++ b/dlls/dplayx/dplobby.c
@@ -1569,11 +1569,7 @@
     }
     else
     {
-      char lpGUIDString[51];
-      WINE_StringFromCLSID( &lpElements->guidDataType, &lpGUIDString[0] );
-
-      ERR( "Unknown GUID %s\n", &lpGUIDString[0] );
-
+      ERR( "Unknown GUID %s\n", debugstr_guid(&lpElements->guidDataType) );
       return DPERR_INVALIDFLAGS; 
     }
   }
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index e55ef85..7f7ccb5 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -248,10 +248,8 @@
 	LPDIRECTSOUND3DBUFFER iface, REFIID riid, LPVOID *ppobj)
 {
 	ICOM_THIS(IDirectSound3DBufferImpl,iface);
-	char xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	return E_FAIL;
 }
 	
@@ -544,10 +542,8 @@
 	LPDIRECTSOUND3DLISTENER iface, REFIID riid, LPVOID *ppobj)
 {
 	ICOM_THIS(IDirectSound3DListenerImpl,iface);
-	char xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	return E_FAIL;
 }
 	
@@ -727,10 +723,8 @@
 	LPDIRECTSOUNDNOTIFY iface,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IDirectSoundNotifyImpl,iface);
-	char xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	return E_FAIL;
 }
 
@@ -1233,10 +1227,8 @@
 	LPDIRECTSOUNDBUFFER iface,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IDirectSoundBufferImpl,iface);
-	char	xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 
 	if ( IsEqualGUID( &IID_IDirectSoundNotify, riid ) ) {
 		IDirectSoundNotifyImpl	*dsn;
@@ -1535,7 +1527,6 @@
 	LPDIRECTSOUND iface,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IDirectSoundImpl,iface);
-	char xbuf[50];
 
 	if ( IsEqualGUID( &IID_IDirectSound3DListener, riid ) ) {
 
@@ -1568,8 +1559,7 @@
 		return DS_OK;
 	}
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	return E_FAIL;
 }
 
@@ -2357,13 +2347,8 @@
 static HRESULT WINAPI 
 DSCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
 	ICOM_THIS(IClassFactoryImpl,iface);
-	char buf[80];
 
-	if (HIWORD(riid))
-	    WINE_StringFromCLSID(riid,buf);
-	else
-	    sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-	FIXME("(%p)->(%s,%p),stub!\n",This,buf,ppobj);
+	FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
@@ -2383,10 +2368,8 @@
 	LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IClassFactoryImpl,iface);
-	char buf[80];
 
-	WINE_StringFromCLSID(riid,buf);
-	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,buf,ppobj);
+	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
 	if ( IsEqualGUID( &IID_IDirectSound, riid ) ) {
 		/* FIXME: reuse already created dsound if present? */
 		return DirectSoundCreate(riid,(LPDIRECTSOUND*)ppobj,pOuter);
@@ -2428,25 +2411,14 @@
  */
 DWORD WINAPI DSOUND_DllGetClassObject(REFCLSID rclsid,REFIID riid,LPVOID *ppv)
 {
-    char buf[80],xbuf[80];
-
-    if (HIWORD(rclsid))
-    	WINE_StringFromCLSID(rclsid,xbuf);
-    else
-    	sprintf(xbuf,"<guid-0x%04x>",LOWORD(rclsid));
-    if (HIWORD(riid))
-    	WINE_StringFromCLSID(riid,buf);
-    else
-    	sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-    WINE_StringFromCLSID(riid,xbuf);
-    TRACE("(%p,%p,%p)\n", xbuf, buf, ppv);
+    TRACE("(%p,%p,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
     if ( IsEqualCLSID( &IID_IClassFactory, riid ) ) {
     	*ppv = (LPVOID)&DSOUND_CF;
 	IClassFactory_AddRef((IClassFactory*)*ppv);
     return S_OK;
     }
 
-    FIXME("(%p,%p,%p): no interface found.\n", xbuf, buf, ppv);
+    FIXME("(%p,%p,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
     return CLASS_E_CLASSNOTAVAILABLE;
 }
 
diff --git a/dlls/ole32/clipboard.c b/dlls/ole32/clipboard.c
index 372f9bf..fd7f6b9 100644
--- a/dlls/ole32/clipboard.c
+++ b/dlls/ole32/clipboard.c
@@ -984,10 +984,7 @@
    * Declare "This" pointer 
    */
   ICOM_THIS(OLEClipbrd, iface);
-  char    xriid[50];
-
-  WINE_StringFromCLSID((LPCLSID)riid,xriid);
-  TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObject);
+  TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObject);
   
   /*
    * Perform a sanity check on the parameters.
@@ -1013,11 +1010,7 @@
   }
   else  /* We only support IUnknown and IDataObject */
   {
-    char clsid[50];
-
-    WINE_StringFromCLSID((LPCLSID)riid,clsid);
-    WARN( "() : asking for unsupported interface %s\n", clsid);
-
+    WARN( "() : asking for unsupported interface %s\n", debugstr_guid(riid));
     return E_NOINTERFACE;
   }
   
@@ -1461,10 +1454,8 @@
   (LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj)
 {
   ICOM_THIS(IEnumFORMATETCImpl,iface);
-  char    xriid[50];
 
-  WINE_StringFromCLSID((LPCLSID)riid,xriid);
-  TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+  TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
   /*
    * Since enumerators are seperate objects from the parent data object
diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c
index 864f6d2..a8cf092 100644
--- a/dlls/ole32/datacache.c
+++ b/dlls/ole32/datacache.c
@@ -444,13 +444,8 @@
 {
   DataCache* newCache = NULL;
   HRESULT    hr       = S_OK;
-  char       xclsid[50];
-  char       xriid[50];
 
-  WINE_StringFromCLSID((LPCLSID)rclsid,xclsid);
-  WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-  TRACE("(%s, %p, %s, %p)\n", xclsid, pUnkOuter, xriid, ppvObj);
+  TRACE("(%s, %p, %s, %p)\n", debugstr_guid(rclsid), pUnkOuter, debugstr_guid(riid), ppvObj);
 
   /*
    * Sanity check
@@ -885,14 +880,7 @@
    */
   if ((*ppvObject)==0)
   {
-    char clsid[50];
-
-    WINE_StringFromCLSID((LPCLSID)riid,clsid);
-    
-    WARN(
-	 "() : asking for un supported interface %s\n", 
-	 clsid);
-
+    WARN( "() : asking for un supported interface %s\n", debugstr_guid(riid));
     return E_NOINTERFACE;
   }
   
diff --git a/dlls/ole32/defaulthandler.c b/dlls/ole32/defaulthandler.c
index 89e9b5b..262b1f7 100644
--- a/dlls/ole32/defaulthandler.c
+++ b/dlls/ole32/defaulthandler.c
@@ -383,13 +383,8 @@
 {
   DefaultHandler* newHandler = NULL;
   HRESULT         hr         = S_OK;
-  char            xclsid[50];
-  char            xriid[50];
 
-  WINE_StringFromCLSID((LPCLSID)clsid,xclsid);
-  WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-  TRACE("(%s, %p, %s, %p)\n", xclsid, pUnkOuter, xriid, ppvObj);
+  TRACE("(%s, %p, %s, %p)\n", debugstr_guid(clsid), pUnkOuter, debugstr_guid(riid), ppvObj);
 
   /*
    * Sanity check
@@ -621,14 +616,7 @@
    */
   if ((*ppvObject)==0)
   {
-    char clsid[50];
-
-    WINE_StringFromCLSID((LPCLSID)riid,clsid);
-    
-    WARN(
-	 "() : asking for un supported interface %s\n", 
-	 clsid);
-
+    WARN( "() : asking for un supported interface %s\n", debugstr_guid(riid));
     return E_NOINTERFACE;
   }
   
diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c
index ed72c95..7c41869 100644
--- a/dlls/ole32/ifs.c
+++ b/dlls/ole32/ifs.c
@@ -57,10 +57,8 @@
  */
 static HRESULT WINAPI IUnknown_fnQueryInterface(LPUNKNOWN iface,REFIID refiid,LPVOID *obj) {
 	ICOM_THIS(IUnknownImpl,iface);
-	char	xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj);
+	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
 		*obj = This;
@@ -111,10 +109,8 @@
  */
 HRESULT WINAPI IMalloc16_fnQueryInterface(IMalloc16* iface,REFIID refiid,LPVOID *obj) {
         ICOM_THIS(IMalloc16Impl,iface);
-	char	xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj);
+	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) ||
 		!memcmp(&IID_IMalloc,refiid,sizeof(IID_IMalloc))
 	) {
@@ -245,10 +241,8 @@
  */
 static HRESULT WINAPI IMalloc_fnQueryInterface(LPMALLOC iface,REFIID refiid,LPVOID *obj) {
 	ICOM_THIS(IMalloc32Impl,iface);
-	char	xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj);
+	TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (	!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) ||
 		!memcmp(&IID_IMalloc,refiid,sizeof(IID_IMalloc))
 	) {
diff --git a/dlls/ole32/storage.c b/dlls/ole32/storage.c
index 3558b38..088ed7e 100644
--- a/dlls/ole32/storage.c
+++ b/dlls/ole32/storage.c
@@ -356,9 +356,7 @@
  */
 void
 STORAGE_dump_pps_entry(struct storage_pps_entry *stde) {
-	char	name[33],xguid[50];
-
-	WINE_StringFromCLSID(&(stde->pps_guid),xguid);
+    char	name[33];
 
 	lstrcpyWtoA(name,stde->pps_rawname);
 	if (!stde->pps_sizeofname)
@@ -368,7 +366,7 @@
 	DPRINTF("prev pps: %ld\n",stde->pps_prev);
 	DPRINTF("next pps: %ld\n",stde->pps_next);
 	DPRINTF("dir pps: %ld\n",stde->pps_dir);
-	DPRINTF("guid: %s\n",xguid);
+	DPRINTF("guid: %s\n",debugstr_guid(&(stde->pps_guid)));
 	if (stde->pps_type !=2) {
 		time_t	t;
 
@@ -688,9 +686,7 @@
 	IStream16* iface,REFIID refiid,LPVOID *obj
 ) {
 	ICOM_THIS(IStream16Impl,iface);
-	char    xrefiid[50];
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE_(relay)("(%p)->(%s,%p)\n",This,xrefiid,obj);
+	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
 		*obj = This;
 		return 0;
@@ -1172,10 +1168,8 @@
 	IStream* iface,REFIID refiid,LPVOID *obj
 ) {
 	ICOM_THIS(IStream32Impl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE_(relay)("(%p)->(%s,%p)\n",This,xrefiid,obj);
+	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
 		*obj = This;
 		return 0;
@@ -1228,10 +1222,8 @@
 	IStorage16* iface,REFIID refiid,LPVOID *obj
 ) {
 	ICOM_THIS(IStorage16Impl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE_(relay)("(%p)->(%s,%p)\n",This,xrefiid,obj);
+	TRACE_(relay)("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 
 	if (!memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown))) {
 		*obj = This;
@@ -1302,14 +1294,8 @@
  */
 HRESULT WINAPI IStorage16_fnCopyTo(LPSTORAGE16 iface,DWORD ciidExclude,const IID *rgiidExclude,SNB16 SNB16Exclude,IStorage16 *pstgDest) {
 	ICOM_THIS(IStorage16Impl,iface);
-	char	xguid[50];
-
-	if (rgiidExclude)
-		WINE_StringFromCLSID(rgiidExclude,xguid);
-	else
-		strcpy(xguid,"<no guid>");
 	FIXME("IStorage16(%p)->(0x%08lx,%s,%p,%p),stub!\n",
-		This,ciidExclude,xguid,SNB16Exclude,pstgDest
+		This,ciidExclude,debugstr_guid(rgiidExclude),SNB16Exclude,pstgDest
 	);
 	return S_OK;
 }
diff --git a/dlls/oleaut32/ole2disp.c b/dlls/oleaut32/ole2disp.c
index 3fd4204..130536c 100644
--- a/dlls/oleaut32/ole2disp.c
+++ b/dlls/oleaut32/ole2disp.c
@@ -322,9 +322,7 @@
 HRESULT WINAPI RegisterActiveObject16(
 	IUnknown *punk, REFCLSID rclsid, DWORD dwFlags, unsigned long *pdwRegister
 ) {
-	char	buf[80];
-	WINE_StringFromCLSID(rclsid,buf);
-	FIXME("(%p,%s,0x%08lx,%p):stub\n",punk,buf,dwFlags,pdwRegister);
+	FIXME("(%p,%s,0x%08lx,%p):stub\n",punk,debugstr_guid(rclsid),dwFlags,pdwRegister);
 	return 0;
 }
 
diff --git a/dlls/oleaut32/oleaut.c b/dlls/oleaut32/oleaut.c
index 0d924ff..2b8fdee 100644
--- a/dlls/oleaut32/oleaut.c
+++ b/dlls/oleaut32/oleaut.c
@@ -17,13 +17,7 @@
 HRESULT WINAPI RegisterActiveObject(
 	LPUNKNOWN punk,REFCLSID rcid,DWORD dwFlags,LPDWORD pdwRegister
 ) {
-	char buf[80];
-
-	if (rcid)
-		WINE_StringFromCLSID(rcid,buf);
-	else
-		sprintf(buf,"<clsid-%p>",rcid);
-	FIXME("(%p,%s,0x%08lx,%p), stub!\n",punk,buf,dwFlags,pdwRegister);
+	FIXME("(%p,%s,0x%08lx,%p), stub!\n",punk,debugstr_guid(rcid),dwFlags,pdwRegister);
 	return E_FAIL;
 }
 
@@ -35,13 +29,7 @@
 
 HRESULT WINAPI GetActiveObject(REFCLSID rcid,LPVOID preserved,LPUNKNOWN *ppunk)
 {
-	char buf[80];
-
-	if (rcid)
-		WINE_StringFromCLSID(rcid,buf);
-	else
-		sprintf(buf,"<clsid-%p>",rcid);
-	FIXME("(%s,%p,%p),stub!\n",buf,preserved,ppunk);
+	FIXME("(%s,%p,%p),stub!\n",debugstr_guid(rcid),preserved,ppunk);
 	return E_FAIL;
 }
 
diff --git a/dlls/oleaut32/olefont.c b/dlls/oleaut32/olefont.c
index 6a1c082..3da087f 100644
--- a/dlls/oleaut32/olefont.c
+++ b/dlls/oleaut32/olefont.c
@@ -402,14 +402,7 @@
    */
   if ((*ppvObject)==0)
   {
-    char clsid[50];
-
-    WINE_StringFromCLSID((LPCLSID)riid,clsid);
-    
-    WARN(
-	 "() : asking for un supported interface %s\n", 
-	 clsid);
-
+    WARN("() : asking for un supported interface %s\n",debugstr_guid(riid));
     return E_NOINTERFACE;
   }
   
diff --git a/dlls/shell32/contmenu.c b/dlls/shell32/contmenu.c
index 84839d4..0b95a77 100644
--- a/dlls/shell32/contmenu.c
+++ b/dlls/shell32/contmenu.c
@@ -180,10 +180,7 @@
 {
 	ICOM_THIS(IContextMenuImpl, iface);
 
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c
index 949beb7..32baa73 100644
--- a/dlls/shell32/dataobject.c
+++ b/dlls/shell32/dataobject.c
@@ -81,9 +81,7 @@
 static HRESULT WINAPI IEnumFORMATETC_fnQueryInterface(LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj)
 {
 	ICOM_THIS(IEnumFORMATETCImpl,iface);
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 			*ppvObj = NULL;
 
@@ -413,9 +411,7 @@
 static HRESULT WINAPI IDataObject_fnQueryInterface(LPDATAOBJECT iface, REFIID riid, LPVOID * ppvObj)
 {
 	ICOM_THIS(IDataObjectImpl,iface);
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/enumidlist.c b/dlls/shell32/enumidlist.c
index 52ab64b..a75d15b 100644
--- a/dlls/shell32/enumidlist.c
+++ b/dlls/shell32/enumidlist.c
@@ -354,9 +354,7 @@
 {
 	ICOM_THIS(IEnumIDListImpl,iface);
 
-	char	xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/folders.c b/dlls/shell32/folders.c
index 93d106f..672c9e2 100644
--- a/dlls/shell32/folders.c
+++ b/dlls/shell32/folders.c
@@ -63,9 +63,7 @@
 {
 	ICOM_THIS(IExtractIconAImpl,iface);
 
-	char	xriid[50];
-	 WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	 TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	 TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/memorystream.c b/dlls/shell32/memorystream.c
index a407ce5..ad21002 100644
--- a/dlls/shell32/memorystream.c
+++ b/dlls/shell32/memorystream.c
@@ -113,10 +113,7 @@
 {
 	ICOM_THIS(ISHFileStream, iface);
 
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/regstream.c b/dlls/shell32/regstream.c
index 2c10ac3..abae9b8 100644
--- a/dlls/shell32/regstream.c
+++ b/dlls/shell32/regstream.c
@@ -70,10 +70,7 @@
 {
 	ICOM_THIS(ISHRegStream, iface);
 
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 4abc280..f78d25c 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -420,9 +420,7 @@
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s)\n",This,xriid);
+	TRACE("(%p)->(\n\tIID:\t%s)\n",This,debugstr_guid(riid));
 
 	*ppvObj = NULL;
 
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c
index 446162f..c0aa481 100644
--- a/dlls/shell32/shellole.c
+++ b/dlls/shell32/shellole.c
@@ -49,13 +49,10 @@
 	REFIID refiid,
 	LPVOID *ppv)
 {
-	char	xclsid[48], xiid[48];
 	DWORD	hres;
 	IID	iid;
 	CLSID * myclsid = (CLSID*)clsid;
 	
-	WINE_StringFromCLSID(refiid,xiid);
-
 	if (!clsid)
 	{
 	  if (!aclsid) return REGDB_E_CLASSNOTREG;
@@ -63,11 +60,8 @@
 	  myclsid = &iid;
 	}
 
-	WINE_StringFromCLSID(myclsid,xclsid);
-	WINE_StringFromCLSID(refiid,xiid);
-	  
 	TRACE("(%p,\n\tCLSID:\t%s, unk:%p\n\tIID:\t%s,%p)\n",
-		aclsid,xclsid,unknownouter,xiid,ppv);
+		aclsid,debugstr_guid(myclsid),unknownouter,debugstr_guid(refiid),ppv);
 
 	if IsEqualCLSID(myclsid, &CLSID_ShellFSFolder)
 	{
@@ -80,7 +74,8 @@
 	
 	if(hres!=S_OK)
 	{
-	  ERR("failed (0x%08lx) to create \n\tCLSID:\t%s\n\tIID:\t%s\n", hres, xclsid, xiid);
+	  ERR("failed (0x%08lx) to create \n\tCLSID:\t%s\n\tIID:\t%s\n",
+              hres, debugstr_guid(myclsid), debugstr_guid(refiid));
 	  ERR("class not found in registry\n");
 	}
 
@@ -95,10 +90,7 @@
 {	HRESULT	hres = E_OUTOFMEMORY;
 	LPCLASSFACTORY lpclf;
 
-	char xclsid[50],xiid[50];
-	WINE_StringFromCLSID((LPCLSID)rclsid,xclsid);
-	WINE_StringFromCLSID((LPCLSID)iid,xiid);
-	TRACE("\n\tCLSID:\t%s,\n\tIID:\t%s\n",xclsid,xiid);
+	TRACE("\n\tCLSID:\t%s,\n\tIID:\t%s\n",debugstr_guid(rclsid),debugstr_guid(iid));
 	
 	*ppv = NULL;
 
@@ -233,9 +225,7 @@
   LPCLASSFACTORY iface, REFIID riid, LPVOID *ppvObj)
 {
 	ICOM_THIS(IClassFactoryImpl,iface);
-	char	xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s)\n",This,xriid);
+	TRACE("(%p)->(\n\tIID:\t%s)\n",This,debugstr_guid(riid));
 
 	*ppvObj = NULL;
 
@@ -251,7 +241,7 @@
 	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
 	  return S_OK;
 	}
-	TRACE("-- Interface: %s E_NOINTERFACE\n", xriid);
+	TRACE("-- Interface: %s E_NOINTERFACE\n", debugstr_guid(riid));
 	return E_NOINTERFACE;
 }  
 /******************************************************************************
@@ -290,10 +280,8 @@
 	ICOM_THIS(IClassFactoryImpl,iface);
 	IUnknown *pObj = NULL;
 	HRESULT hres;
-	char	xriid[50];
 
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("%p->(%p,\n\tIID:\t%s,%p)\n",This,pUnknown,xriid,ppObject);
+	TRACE("%p->(%p,\n\tIID:\t%s,%p)\n",This,pUnknown,debugstr_guid(riid),ppObject);
 
 	*ppObject = NULL;
 		
@@ -312,7 +300,7 @@
 	} 
 	else
 	{
-	  ERR("unknown IID requested\n\tIID:\t%s\n",xriid);
+	  ERR("unknown IID requested\n\tIID:\t%s\n",debugstr_guid(riid));
 	  return(E_NOINTERFACE);
 	}
 	
@@ -379,9 +367,6 @@
 IClassFactory * IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, UINT * pcRefDll, REFIID riidInst)
 {
 	IDefClFImpl* lpclf;
-	char	xriidInst[50];
-
-	WINE_StringFromCLSID((LPCLSID)riidInst,xriidInst);
 
 	lpclf = (IDefClFImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDefClFImpl));
 	lpclf->ref = 1;
@@ -394,7 +379,7 @@
 
 	lpclf->riidInst = riidInst;
 
-	TRACE("(%p)\n\tIID:\t%s\n",lpclf, xriidInst);
+	TRACE("(%p)\n\tIID:\t%s\n",lpclf, debugstr_guid(riidInst));
 	shell32_ObjCount++;
 	return (LPCLASSFACTORY)lpclf;
 }
@@ -405,9 +390,8 @@
   LPCLASSFACTORY iface, REFIID riid, LPVOID *ppvObj)
 {
 	ICOM_THIS(IDefClFImpl,iface);
-	char	xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s)\n",This,xriid);
+
+	TRACE("(%p)->(\n\tIID:\t%s)\n",This,debugstr_guid(riid));
 
 	*ppvObj = NULL;
 
@@ -423,7 +407,7 @@
 	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
 	  return S_OK;
 	}
-	TRACE("-- Interface: %s E_NOINTERFACE\n", xriid);
+	TRACE("-- Interface: %s E_NOINTERFACE\n", debugstr_guid(riid));
 	return E_NOINTERFACE;
 }  
 /******************************************************************************
@@ -466,10 +450,8 @@
   LPCLASSFACTORY iface, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
 {
 	ICOM_THIS(IDefClFImpl,iface);
-	char	xriid[50];
 
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("%p->(%p,\n\tIID:\t%s,%p)\n",This,pUnkOuter,xriid,ppvObject);
+	TRACE("%p->(%p,\n\tIID:\t%s,%p)\n",This,pUnkOuter,debugstr_guid(riid),ppvObject);
 
 	*ppvObject = NULL;
 		
@@ -483,7 +465,7 @@
 	  return This->lpfnCI(pUnkOuter, riid, ppvObject);
 	}
 
-	ERR("unknown IID requested\n\tIID:\t%s\n",xriid);
+	ERR("unknown IID requested\n\tIID:\t%s\n",debugstr_guid(riid));
 	return E_NOINTERFACE;
 }
 /******************************************************************************
@@ -516,13 +498,8 @@
 	UINT	*pcRefDll,		/* ref count of the dll */
 	REFIID	riidInst)		/* optional interface to the instance */
 {
-
-	char xriid[50],xriidInst[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	WINE_StringFromCLSID((LPCLSID)riidInst,xriidInst);
-
 	TRACE("\n\tIID:\t%s %p %p %p \n\tIIDIns:\t%s\n",
-	xriid, ppv, lpfnCI, pcRefDll, xriidInst);
+              debugstr_guid(riid), ppv, lpfnCI, pcRefDll, debugstr_guid(riidInst));
 
 	if ( IsEqualCLSID(riid, &IID_IClassFactory) )
 	{
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 6ec75c9..058dd37 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -274,11 +274,8 @@
 {
 	ICOM_THIS(IGenericSFImpl, iface);
 
-	char	xriid[50];	
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
 	_CALL_TRACE
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
@@ -373,11 +370,9 @@
 	LPVOID * ppv)
 {
 	IGenericSFImpl *	sf;
-	char	xriid[50];	
 	HRESULT hr = S_OK;
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
 
-	TRACE("unkOut=%p riid=%s\n",pUnkOuter, xriid);
+	TRACE("unkOut=%p riid=%s\n",pUnkOuter, debugstr_guid(riid));
 
 	if(pUnkOuter && ! IsEqualIID(riid, &IID_IUnknown))
 	{
@@ -488,10 +483,8 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
-	char	xriid[50];	
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
 	_CALL_TRACE
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	return IUnknown_QueryInterface(This->pUnkOuter, riid, ppvObj);
 }
@@ -645,14 +638,11 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 	GUID		const * iid;
-	char		xriid[50];
 	IShellFolder	*pShellFolder, *pSubFolder;
 	IPersistFolder 	*pPersistFolder;
 	LPITEMIDLIST	absPidl;
 	
-	WINE_StringFromCLSID(riid,xriid);
-
-	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",This,pidl,pbcReserved,xriid,ppvOut);
+	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",This,pidl,pbcReserved,debugstr_guid(riid),ppvOut);
 
 	if(!pidl || !ppvOut) return E_INVALIDARG;
 
@@ -714,10 +704,8 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
-	char xriid[50];
-	WINE_StringFromCLSID(riid,xriid);
-
-	FIXME("(%p)->(pidl=%p,%p,\n\tIID:%s,%p) stub\n",This,pidl,pbcReserved,xriid,ppvOut);
+	FIXME("(%p)->(pidl=%p,%p,\n\tIID:%s,%p) stub\n",
+              This,pidl,pbcReserved,debugstr_guid(riid),ppvOut);
 
 	*ppvOut = NULL;
 	return E_NOTIMPL;
@@ -837,11 +825,9 @@
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
 	LPSHELLVIEW	pShellView;
-	char		xriid[50];
 	HRESULT		hr = E_INVALIDARG;
 
-	WINE_StringFromCLSID(riid,xriid);
-	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,xriid,ppvOut);
+	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,debugstr_guid(riid),ppvOut);
 	
 	if(ppvOut)
 	{
@@ -949,15 +935,12 @@
 {	
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
-	char		xclsid[50];
 	LPITEMIDLIST	pidl;
 	IUnknown*	pObj = NULL; 
 	HRESULT		hr = E_INVALIDARG;
 	
-	WINE_StringFromCLSID(riid,xclsid);
-
 	TRACE("(%p)->(%u,%u,apidl=%p,\n\tIID:%s,%p,%p)\n",
-	  This,hwndOwner,cidl,apidl,xclsid,prgfInOut,ppvOut);
+	  This,hwndOwner,cidl,apidl,debugstr_guid(riid),prgfInOut,ppvOut);
 
 	if (ppvOut)
 	{
@@ -1305,9 +1288,7 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
-	char	xriid[50];	
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
@@ -1414,12 +1395,10 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 	GUID		const * clsid;
-	char		xriid[50];
 	IShellFolder	*pShellFolder, *pSubFolder;
 	
-	WINE_StringFromCLSID(riid,xriid);
-
-	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",This,pidl,pbcReserved,xriid,ppvOut);
+	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",
+              This,pidl,pbcReserved,debugstr_guid(riid),ppvOut);
 
 	*ppvOut = NULL;
 
@@ -1485,11 +1464,9 @@
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
 	LPSHELLVIEW	pShellView;
-	char		xriid[50];
 	HRESULT		hr = E_INVALIDARG;
 
-	WINE_StringFromCLSID(riid,xriid);
-	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,xriid,ppvOut);
+	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,debugstr_guid(riid),ppvOut);
 	
 	if(ppvOut)
 	{
@@ -1880,13 +1857,11 @@
 {
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 	GUID		const * clsid;
-	char		xriid[50];
 	IShellFolder	*pShellFolder, *pSubFolder;
 	LPITEMIDLIST	pidltemp;
 	
-	WINE_StringFromCLSID(riid,xriid);
-
-	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",This,pidl,pbcReserved,xriid,ppvOut);
+	TRACE("(%p)->(pidl=%p,%p,\n\tIID:\t%s,%p)\n",
+              This,pidl,pbcReserved,debugstr_guid(riid),ppvOut);
 
 	if(!pidl || !ppvOut) return E_INVALIDARG;
 
@@ -1933,11 +1908,9 @@
 	_ICOM_THIS_From_IShellFolder2(IGenericSFImpl, iface)
 
 	LPSHELLVIEW	pShellView;
-	char		xriid[50];
 	HRESULT		hr = E_INVALIDARG;
 
-	WINE_StringFromCLSID(riid,xriid);
-	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,xriid,ppvOut);
+	TRACE("(%p)->(hwnd=0x%x,\n\tIID:\t%s,%p)\n",This,hwndOwner,debugstr_guid(riid),ppvOut);
 	
 	if(ppvOut)
 	{
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index b7e688c..ceb270a 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -1201,9 +1201,7 @@
 {
 	ICOM_THIS(IShellViewImpl, iface);
 
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
@@ -1531,10 +1529,7 @@
 {
 	ICOM_THIS(IShellViewImpl, iface);
 
-	char    xriid[50];
-	
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-	TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n",This, uItem, xriid, ppvOut);
+	TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n",This, uItem, debugstr_guid(riid), ppvOut);
 
 	*ppvOut = NULL;
 
@@ -1623,13 +1618,10 @@
 	OLECMD * prgCmds,
 	OLECMDTEXT* pCmdText)
 {
-	char    xguid[50];
-
 	_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
 
-	WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
-
-	FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n", This, pguidCmdGroup, xguid, cCmds, prgCmds, pCmdText);
+	FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n",
+              This, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
 	return E_NOTIMPL;
 }
 
@@ -1646,13 +1638,10 @@
 	VARIANT* pvaIn,
 	VARIANT* pvaOut)
 {
-	char    xguid[50];
-
 	_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
 
-	WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
-
-	FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n", This, xguid, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+	FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n",
+              This, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
 	return E_NOTIMPL;
 }
 
@@ -1675,13 +1664,9 @@
 	REFIID riid,
 	LPVOID *ppvObj)
 {
-	char	xriid[50];
-
 	_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
 
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj);
 }
@@ -1777,13 +1762,9 @@
 	REFIID riid,
 	LPVOID *ppvObj)
 {
-	char	xriid[50];
-
 	_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
 
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj);
 }
@@ -1849,13 +1830,9 @@
 	REFIID riid,
 	LPVOID *ppvObj)
 {
-	char	xriid[50];
-
 	_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
 
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	return IShellFolder_QueryInterface((IShellFolder*)This, riid, ppvObj);
 }
diff --git a/dlls/shell32/shv_bg_cmenu.c b/dlls/shell32/shv_bg_cmenu.c
index 2fe6910..4d65e41 100644
--- a/dlls/shell32/shv_bg_cmenu.c
+++ b/dlls/shell32/shv_bg_cmenu.c
@@ -53,10 +53,7 @@
 {
 	ICOM_THIS(BgCmImpl, iface);
 
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
-
-	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,xriid,ppvObj);
+	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
 	*ppvObj = NULL;
 
diff --git a/graphics/d3ddevices.c b/graphics/d3ddevices.c
index f01de0f..efe730e 100644
--- a/graphics/d3ddevices.c
+++ b/graphics/d3ddevices.c
@@ -259,10 +259,8 @@
 						      LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DDevice2Impl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
@@ -1316,10 +1314,8 @@
 						     LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DDeviceImpl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/d3dexecutebuffer.c b/graphics/d3dexecutebuffer.c
index 559ccae..1a7eb5a 100644
--- a/graphics/d3dexecutebuffer.c
+++ b/graphics/d3dexecutebuffer.c
@@ -712,10 +712,8 @@
 							    LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DExecuteBufferImpl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/d3dlight.c b/graphics/d3dlight.c
index f8508b7..c8dacd5 100644
--- a/graphics/d3dlight.c
+++ b/graphics/d3dlight.c
@@ -144,10 +144,8 @@
 						    LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DLightImpl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/d3dmaterial.c b/graphics/d3dmaterial.c
index dbf4137..ee88f8d 100644
--- a/graphics/d3dmaterial.c
+++ b/graphics/d3dmaterial.c
@@ -105,10 +105,8 @@
 							LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DMaterial2Impl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/d3dtexture.c b/graphics/d3dtexture.c
index 28ce2df..572cc25 100644
--- a/graphics/d3dtexture.c
+++ b/graphics/d3dtexture.c
@@ -222,10 +222,8 @@
 							LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DTexture2Impl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/d3dviewport.c b/graphics/d3dviewport.c
index ccc671a..15c8ee3 100644
--- a/graphics/d3dviewport.c
+++ b/graphics/d3dviewport.c
@@ -88,10 +88,8 @@
 							LPVOID* ppvObj)
 {
   ICOM_THIS(IDirect3DViewport2Impl,iface);
-  char xrefiid[50];
   
-  WINE_StringFromCLSID((LPCLSID)riid,xrefiid);
-  FIXME("(%p)->(%s,%p): stub\n", This, xrefiid,ppvObj);
+  FIXME("(%p)->(%s,%p): stub\n", This, debugstr_guid(riid),ppvObj);
   
   return S_OK;
 }
diff --git a/graphics/ddraw.c b/graphics/ddraw.c
index c47df90..4c88786 100644
--- a/graphics/ddraw.c
+++ b/graphics/ddraw.c
@@ -1830,10 +1830,8 @@
 
 static HRESULT WINAPI IDirectDrawSurface4Impl_QueryInterface(LPDIRECTDRAWSURFACE4 iface,REFIID refiid,LPVOID *obj) {
     ICOM_THIS(IDirectDrawSurface4Impl,iface);
-    char    xrefiid[50];
 
-    WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-    TRACE("(%p)->(%s,%p)\n",This,xrefiid,obj);
+    TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
     
     /* All DirectDrawSurface versions (1, 2, 3 and 4) use
      * the same interface. And IUnknown does that too of course.
@@ -1875,7 +1873,7 @@
 	return S_OK;
     }
     
-    FIXME("(%p):interface for IID %s NOT found!\n",This,xrefiid);
+    FIXME("(%p):interface for IID %s NOT found!\n",This,debugstr_guid(refiid));
     return OLE_E_ENUM_NOMORE;
 }
 
@@ -2659,10 +2657,8 @@
         LPDIRECTDRAWPALETTE iface,REFIID refiid,LPVOID *obj ) 
 {
   ICOM_THIS(IDirectDrawPaletteImpl,iface);
-  char    xrefiid[50];
 
-  WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-  FIXME("(%p)->(%s,%p) stub.\n",This,xrefiid,obj);
+  FIXME("(%p)->(%s,%p) stub.\n",This,debugstr_guid(refiid),obj);
 
   return S_OK;
 }
@@ -2701,10 +2697,8 @@
 ) {
         ICOM_THIS(IDirect3DImpl,iface);
 	/* FIXME: Not sure if this is correct */
-        char    xrefiid[50];
 
-        WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-        TRACE("(%p)->(%s,%p)\n",This,xrefiid,obj);
+        TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
         if ( ( IsEqualGUID( &IID_IDirectDraw,  refiid ) ) ||
 	     ( IsEqualGUID (&IID_IDirectDraw2, refiid ) ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw4, refiid ) ) ) {
@@ -2738,7 +2732,7 @@
 
                 return S_OK;
         }
-        FIXME("(%p):interface for IID %s NOT found!\n",This,xrefiid);
+        FIXME("(%p):interface for IID %s NOT found!\n",This,debugstr_guid(refiid));
         return OLE_E_ENUM_NOMORE;
 }
 
@@ -2767,10 +2761,8 @@
 {
   ICOM_THIS(IDirect3DImpl,iface);
   /* FIXME: Not sure if this is correct */
-  char    xrefiid[50];
 
-  WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-  FIXME("(%p)->(%s):stub.\n",This,xrefiid);
+  FIXME("(%p)->(%s):stub.\n",This,debugstr_guid(refiid));
   
   return DDERR_ALREADYINITIALIZED;
 }
@@ -2859,10 +2851,8 @@
 	ICOM_THIS(IDirect3D2Impl,iface);
 
 	/* FIXME: Not sure if this is correct */
-        char    xrefiid[50];
 
-        WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-        TRACE("(%p)->(%s,%p)\n",This,xrefiid,obj);
+        TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
         if ( ( IsEqualGUID( &IID_IDirectDraw,  refiid ) ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw2, refiid ) ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw4, refiid ) ) ) {
@@ -2896,7 +2886,7 @@
 
                 return S_OK;
         }
-        FIXME("(%p):interface for IID %s NOT found!\n",This,xrefiid);
+        FIXME("(%p):interface for IID %s NOT found!\n",This,debugstr_guid(refiid));
         return OLE_E_ENUM_NOMORE;
 }
 
@@ -2987,10 +2977,8 @@
 					      LPDIRECT3DDEVICE2 *device)
 {
   ICOM_THIS(IDirect3D2Impl,iface);
-  char	xbuf[50];
   
-  WINE_StringFromCLSID(rguid,xbuf);
-  FIXME("(%p)->(%s,%p,%p): stub\n",This,xbuf,surface,device);
+  FIXME("(%p)->(%s,%p,%p): stub\n",This,debugstr_guid(rguid),surface,device);
 
   if (is_OpenGL(rguid, (IDirectDrawSurfaceImpl*)surface, (IDirect3DDevice2Impl**)device, This)) {
     IDirect3D2_AddRef(iface);
@@ -4368,10 +4356,8 @@
 	LPDIRECTDRAW2 iface,REFIID refiid,LPVOID *obj
 ) {
         ICOM_THIS(IDirectDraw2Impl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE("(%p)->(%s,%p)\n",This,xrefiid,obj);
+	TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if ( IsEqualGUID( &IID_IUnknown, refiid ) ) {
 		*obj = This;
 		IDirectDraw2_AddRef(iface);
@@ -4435,7 +4421,7 @@
 		
 		return S_OK;
 	}
-	WARN("(%p):interface for IID %s _NOT_ found!\n",This,xrefiid);
+	WARN("(%p):interface for IID %s _NOT_ found!\n",This,debugstr_guid(refiid));
         return OLE_E_ENUM_NOMORE;
 }
 #endif /* defined(HAVE_LIBXXF86DGA) */
@@ -4444,10 +4430,8 @@
 	LPDIRECTDRAW2 iface,REFIID refiid,LPVOID *obj
 ) {
         ICOM_THIS(IDirectDraw2Impl,iface);
-	char    xrefiid[50];
 
-	WINE_StringFromCLSID((LPCLSID)refiid,xrefiid);
-	TRACE("(%p)->(%s,%p)\n",This,xrefiid,obj);
+	TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(refiid),obj);
 	if ( IsEqualGUID( &IID_IUnknown, refiid ) ) {
 		*obj = This;
 		IDirectDraw2_AddRef(iface);
@@ -4511,7 +4495,7 @@
 
 		return S_OK;
 	}
-	WARN("(%p):interface for IID %s _NOT_ found!\n",This,xrefiid);
+	WARN("(%p):interface for IID %s _NOT_ found!\n",This,debugstr_guid(refiid));
         return OLE_E_ENUM_NOMORE;
 }
 
@@ -5511,19 +5495,13 @@
 
 HRESULT WINAPI DirectDrawCreate( LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter ) {
         IDirectDrawImpl** ilplpDD=(IDirectDrawImpl**)lplpDD;
-	char	xclsid[50];
 	WNDCLASSA	wc;
         /* WND*            pParentWindow; */
 	HRESULT ret;
 
-	if (HIWORD(lpGUID))
-		WINE_StringFromCLSID(lpGUID,xclsid);
-	else {
-		sprintf(xclsid,"<guid-0x%08x>",(int)lpGUID);
-		lpGUID = NULL;
-	}
+	if (!HIWORD(lpGUID)) lpGUID = NULL;
 
-	TRACE("(%s,%p,%p)\n",xclsid,ilplpDD,pUnkOuter);
+	TRACE("(%s,%p,%p)\n",debugstr_guid(lpGUID),ilplpDD,pUnkOuter);
 
 	if ( ( !lpGUID ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw,  lpGUID ) ) ||
@@ -5574,7 +5552,8 @@
 	return ret;
 
       err:
-	ERR("DirectDrawCreate(%s,%p,%p): did not recognize requested GUID\n",xclsid,lplpDD,pUnkOuter);
+	ERR("DirectDrawCreate(%s,%p,%p): did not recognize requested GUID\n",
+            debugstr_guid(lpGUID),lplpDD,pUnkOuter);
 	return DDERR_INVALIDDIRECTDRAWGUID;
 }
 
@@ -5594,13 +5573,8 @@
 static HRESULT WINAPI 
 DDCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
 	ICOM_THIS(IClassFactoryImpl,iface);
-	char buf[80];
 
-	if (HIWORD(riid))
-	    WINE_StringFromCLSID(riid,buf);
-	else
-	    sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-	FIXME("(%p)->(%s,%p),stub!\n",This,buf,ppobj);
+	FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
@@ -5620,10 +5594,8 @@
 	LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IClassFactoryImpl,iface);
-	char buf[80];
 
-	WINE_StringFromCLSID(riid,buf);
-	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,buf,ppobj);
+	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
 	if ( ( IsEqualGUID( &IID_IDirectDraw,  riid ) ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw2, riid ) ) ||
 	     ( IsEqualGUID( &IID_IDirectDraw4, riid ) ) ) {
@@ -5669,24 +5641,13 @@
  */
 DWORD WINAPI DDRAW_DllGetClassObject(REFCLSID rclsid,REFIID riid,LPVOID *ppv)
 {
-    char buf[80],xbuf[80];
-
-    if (HIWORD(rclsid))
-    	WINE_StringFromCLSID(rclsid,xbuf);
-    else
-    	sprintf(xbuf,"<guid-0x%04x>",LOWORD(rclsid));
-    if (HIWORD(riid))
-    	WINE_StringFromCLSID(riid,buf);
-    else
-    	sprintf(buf,"<guid-0x%04x>",LOWORD(riid));
-    WINE_StringFromCLSID(riid,xbuf);
-    TRACE("(%p,%p,%p)\n", xbuf, buf, ppv);
+    TRACE("(%p,%p,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
     if ( IsEqualCLSID( &IID_IClassFactory, riid ) ) {
     	*ppv = (LPVOID)&DDRAW_CF;
 	IClassFactory_AddRef((IClassFactory*)*ppv);
     return S_OK;
     }
-    FIXME("(%p,%p,%p): no interface found.\n", xbuf, buf, ppv);
+    FIXME("(%p,%p,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
     return CLASS_E_CLASSNOTAVAILABLE;
 }
 
diff --git a/include/debugstr.h b/include/debugstr.h
index 4c53233..e170f1a 100644
--- a/include/debugstr.h
+++ b/include/debugstr.h
@@ -6,6 +6,7 @@
 /* These function return a printable version of a string, including
    quotes.  The string will be valid for some time, but not indefinitely
    as strings are re-used.  */
+struct _GUID;
 
 extern LPSTR debugstr_an (LPCSTR s, int n);
 extern LPSTR debugstr_a (LPCSTR s);
@@ -13,6 +14,7 @@
 extern LPSTR debugstr_w (LPCWSTR s);
 extern LPSTR debugres_a (LPCSTR res);
 extern LPSTR debugres_w (LPCWSTR res);
+extern LPSTR debugstr_guid( const struct _GUID *id );
 extern void debug_dumpstr (LPCSTR s);
 extern LPSTR debugstr_hex_dump (const void *ptr, int len);
 
diff --git a/misc/debugstr.c b/misc/debugstr.c
index 0a82fcc..c505e6c 100644
--- a/misc/debugstr.c
+++ b/misc/debugstr.c
@@ -6,6 +6,7 @@
 
 #include "debugstr.h"
 #include "debugtools.h"
+#include "wtypes.h"
 #include "xmalloc.h"
 
 /* ---------------------------------------------------------------------- */
@@ -152,6 +153,29 @@
 
 /* ---------------------------------------------------------------------- */
 
+LPSTR debugstr_guid( const GUID *id )
+{
+    LPSTR str;
+
+    if (!id) return "(null)";
+    if (!HIWORD(id))
+    {
+        str = gimme1(12);
+        sprintf( str, "<guid-0x%04x>", LOWORD(id) );
+    }
+    else
+    {
+        str = gimme1(40);
+        sprintf( str, "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+                 id->Data1, id->Data2, id->Data3,
+                 id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3],
+                 id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] );
+    }
+    return str;
+}
+
+/* ---------------------------------------------------------------------- */
+
 void debug_dumpstr (LPCSTR s)
 {
   fputc ('"', stderr);
diff --git a/windows/dinput.c b/windows/dinput.c
index 0a5975e..696e533 100644
--- a/windows/dinput.c
+++ b/windows/dinput.c
@@ -293,10 +293,8 @@
 	LPUNKNOWN punk
 ) {
 	ICOM_THIS(IDirectInputAImpl,iface);
-	char	xbuf[50];
 	
-	WINE_StringFromCLSID(rguid,xbuf);
-	TRACE("(this=%p,%s,%p,%p)\n",This,xbuf,pdev,punk);
+	TRACE("(this=%p,%s,%p,%p)\n",This,debugstr_guid(rguid),pdev,punk);
 	if ((!memcmp(&GUID_SysKeyboard,rguid,sizeof(GUID_SysKeyboard))) ||          /* Generic Keyboard */
 	    (!memcmp(&DInput_Wine_Keyboard_GUID,rguid,sizeof(GUID_SysKeyboard)))) { /* Wine Keyboard */
                 SysKeyboardAImpl* newDevice;
@@ -340,10 +338,8 @@
 	LPDIRECTINPUTA iface,REFIID riid,LPVOID *ppobj
 ) {
 	ICOM_THIS(IDirectInputAImpl,iface);
-	char	xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(this=%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	if (!memcmp(&IID_IUnknown,riid,sizeof(*riid))) {
 		IDirectInputA_AddRef(iface);
 		*ppobj = This;
@@ -366,10 +362,8 @@
 static HRESULT WINAPI IDirectInputAImpl_GetDeviceStatus(LPDIRECTINPUTA iface,
 							REFGUID rguid) {
   ICOM_THIS(IDirectInputAImpl,iface);
-  char xbuf[50];
   
-  WINE_StringFromCLSID(rguid,xbuf);
-  FIXME("(%p)->(%s): stub\n",This,xbuf);
+  FIXME("(%p)->(%s): stub\n",This,debugstr_guid(rguid));
   
   return DI_OK;
 }
@@ -414,13 +408,7 @@
 	TRACE(dinput,"(df.dwNumObjs=%ld)\n",df->dwNumObjs);
 
 	for (i=0;i<df->dwNumObjs;i++) {
-		char	xbuf[50];
-
-		if (df->rgodf[i].pguid)
-			WINE_StringFromCLSID(df->rgodf[i].pguid,xbuf);
-		else
-			strcpy(xbuf,"<no guid>");
-		TRACE(dinput,"df.rgodf[%d].guid %s\n",i,xbuf);
+		TRACE(dinput,"df.rgodf[%d].guid %s\n",i,debugstr_guid(df->rgodf[i].pguid));
 		TRACE(dinput,"df.rgodf[%d].dwOfs %ld\n",i,df->rgodf[i].dwOfs);
 		TRACE(dinput,"dwType 0x%02lx,dwInstance %ld\n",DIDFT_GETTYPE(df->rgodf[i].dwType),DIDFT_GETINSTANCE(df->rgodf[i].dwType));
 		TRACE(dinput,"df.rgodf[%d].dwFlags 0x%08lx\n",i,df->rgodf[i].dwFlags);
@@ -462,13 +450,8 @@
 )
 {
 	ICOM_THIS(SysKeyboardAImpl,iface);
-	char			xbuf[50];
 
-	if (HIWORD(rguid))
-		WINE_StringFromCLSID(rguid,xbuf);
-	else
-		sprintf(xbuf,"<special guid %ld>",(DWORD)rguid);
-	TRACE("(this=%p,%s,%p)\n",This,xbuf,ph);
+	TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph);
 	TRACE("(size=%ld,headersize=%ld,obj=%ld,how=%ld\n",
             ph->dwSize,ph->dwHeaderSize,ph->dwObj,ph->dwHow);
 	if (!HIWORD(rguid)) {
@@ -558,10 +541,8 @@
 )
 {
 	ICOM_THIS(IDirectInputDevice2AImpl,iface);
-	char	xbuf[50];
 
-	WINE_StringFromCLSID(riid,xbuf);
-	TRACE("(this=%p,%s,%p)\n",This,xbuf,ppobj);
+	TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	if (!memcmp(&IID_IUnknown,riid,sizeof(*riid))) {
 		IDirectInputDevice2_AddRef(iface);
 		*ppobj = This;
@@ -821,13 +802,8 @@
   TRACE("(df.dwNumObjs=%ld)\n",df->dwNumObjs);
 
   for (i=0;i<df->dwNumObjs;i++) {
-    char	xbuf[50];
-    
-    if (df->rgodf[i].pguid)
-      WINE_StringFromCLSID(df->rgodf[i].pguid,xbuf);
-    else
-      strcpy(xbuf,"<no guid>");
-    TRACE("df.rgodf[%d].guid %s (%p)\n",i,xbuf, df->rgodf[i].pguid);
+
+    TRACE("df.rgodf[%d].guid %s (%p)\n",i, debugstr_guid(df->rgodf[i].pguid), df->rgodf[i].pguid);
     TRACE("df.rgodf[%d].dwOfs %ld\n",i,df->rgodf[i].dwOfs);
     TRACE("dwType 0x%02x,dwInstance %d\n",DIDFT_GETTYPE(df->rgodf[i].dwType),DIDFT_GETINSTANCE(df->rgodf[i].dwType));
     TRACE("df.rgodf[%d].dwFlags 0x%08lx\n",i,df->rgodf[i].dwFlags);
@@ -1182,14 +1158,8 @@
 					    LPCDIPROPHEADER ph)
 {
   ICOM_THIS(SysMouseAImpl,iface);
-  char	xbuf[50];
 
-  if (HIWORD(rguid))
-    WINE_StringFromCLSID(rguid,xbuf);
-  else
-    sprintf(xbuf,"<special guid %ld>",(DWORD)rguid);
-
-  TRACE("(this=%p,%s,%p)\n",This,xbuf,ph);
+  TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph);
   
   if (!HIWORD(rguid)) {
     switch ((DWORD)rguid) {
@@ -1205,7 +1175,7 @@
       break;
     }
     default:
-      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,xbuf);
+      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,debugstr_guid(rguid));
       break;
     }
   }
@@ -1262,13 +1232,7 @@
   TRACE("(df.dwNumObjs=%ld)\n",df->dwNumObjs);
 
   for (i=0;i<df->dwNumObjs;i++) {
-    char	xbuf[50];
-    
-    if (df->rgodf[i].pguid)
-      WINE_StringFromCLSID(df->rgodf[i].pguid,xbuf);
-    else
-      strcpy(xbuf,"<no guid>");
-    TRACE("df.rgodf[%d].guid %s (%p)\n",i,xbuf, df->rgodf[i].pguid);
+    TRACE("df.rgodf[%d].guid %s (%p)\n",i,debugstr_guid(df->rgodf[i].pguid), df->rgodf[i].pguid);
     TRACE("df.rgodf[%d].dwOfs %ld\n",i,df->rgodf[i].dwOfs);
     TRACE("dwType 0x%02x,dwInstance %d\n",DIDFT_GETTYPE(df->rgodf[i].dwType),DIDFT_GETINSTANCE(df->rgodf[i].dwType));
     TRACE("df.rgodf[%d].dwFlags 0x%08lx\n",i,df->rgodf[i].dwFlags);
@@ -1404,14 +1368,8 @@
 					    LPCDIPROPHEADER ph)
 {
   ICOM_THIS(JoystickAImpl,iface);
-  char	xbuf[50];
 
-  if (HIWORD(rguid))
-    WINE_StringFromCLSID(rguid,xbuf);
-  else
-    sprintf(xbuf,"<special guid %ld>",(DWORD)rguid);
-
-  FIXME("(this=%p,%s,%p)\n",This,xbuf,ph);
+  FIXME("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph);
   FIXME("ph.dwSize = %ld, ph.dwHeaderSize =%ld, ph.dwObj = %ld, ph.dwHow= %ld\n",ph->dwSize, ph->dwHeaderSize,ph->dwObj,ph->dwHow);
   
   if (!HIWORD(rguid)) {
@@ -1438,7 +1396,7 @@
       break;
     }
     default:
-      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,xbuf);
+      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,debugstr_guid(rguid));
       break;
     }
   }