3 #ifndef __WINDOWS_COM_H
\r
4 #define __WINDOWS_COM_H
\r
6 #include "Common/MyString.h"
\r
13 class CComInitializer
\r
19 CoInitializeEx(NULL, COINIT_MULTITHREADED);
\r
21 // it's single thread. Do we need multithread?
\r
25 ~CComInitializer() { CoUninitialize(); };
\r
32 bool _mustBeReleased;
\r
33 CStgMedium(): _mustBeReleased(false) {}
\r
34 ~CStgMedium() { Free(); }
\r
37 if (_mustBeReleased)
\r
38 ReleaseStgMedium(&_object);
\r
39 _mustBeReleased = false;
\r
41 const STGMEDIUM* operator->() const { return &_object;}
\r
42 STGMEDIUM* operator->() { return &_object;}
\r
43 STGMEDIUM* operator&() { return &_object; }
\r
48 //////////////////////////////////
\r
49 // GUID <--> String Conversions
\r
50 UString GUIDToStringW(REFGUID guid);
\r
51 AString GUIDToStringA(REFGUID guid);
\r
53 #define GUIDToString GUIDToStringW
\r
55 #define GUIDToString GUIDToStringA
\r
58 HRESULT StringToGUIDW(const wchar_t *string, GUID &classID);
\r
59 HRESULT StringToGUIDA(const char *string, GUID &classID);
\r
61 #define StringToGUID StringToGUIDW
\r
63 #define StringToGUID StringToGUIDA
\r