Konvertierung GUID, IID, REFIID in einen String PDF Print E-mail
User Rating: / 0
PoorBest 

Manchmal möchte man für Debug Ausgaben bzw Logging gerne die GUID Struktur in einen lesbaren String konvertieren. Auf der Suche nach einer Lösung kamen wir Windows API Funktionen
wie StringFromCLSID oder StringFromGUID2 entgegen, welche eigentlich den Zweck erfüllen. Leider muss man sich noch um den allokierten Speicher kümmern.
Durch Zufall bin ich auf einen Konstruktor des ATL::CComBSTR gestossen, welcher schon die ganze Arbeit erledigt :) Hier ein kleines Beispiel:

inline void DebugOutGuid( GUID g )
{
    OutputDebugString( ATL::CComBSTR( g ) );
}

Die  DebugOutGuid Funktion kann auch mit folgenden Typen aufgerufen werden.

  • GUID
  • IID
  • REFIID
  • REFCLSID
  • CLSID

Typedefs and defines:

typedef struct _GUID {
    unsigned long  Data1;
    unsigned short Data2;
    unsigned short Data3;
    unsigned char  Data4[ 8 ];
} GUID;

#define REFCLSID const IID &
#define REFIID const IID &

typedef GUID IID;
typedef GUID CLSID;


Weiterführende Links:

Last Updated on Thursday, 18 June 2009 08:13