tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

COM.h (1395B)


      1 // Windows/COM.h
      2 
      3 #ifndef __WINDOWS_COM_H
      4 #define __WINDOWS_COM_H
      5 
      6 #include "../Common/MyString.h"
      7 
      8 namespace NWindows {
      9 namespace NCOM {
     10 
     11 #ifdef _WIN32
     12  
     13 class CComInitializer
     14 {
     15 public:
     16  CComInitializer()
     17  {
     18    #ifdef UNDER_CE
     19    CoInitializeEx(NULL, COINIT_MULTITHREADED);
     20    #else
     21    // it's single thread. Do we need multithread?
     22    CoInitialize(NULL);
     23    #endif
     24  };
     25  ~CComInitializer() { CoUninitialize(); }
     26 };
     27 
     28 class CStgMedium
     29 {
     30  STGMEDIUM _object;
     31 public:
     32  bool _mustBeReleased;
     33  CStgMedium(): _mustBeReleased(false) {}
     34  ~CStgMedium() { Free(); }
     35  void Free()
     36  {
     37    if (_mustBeReleased)
     38      ReleaseStgMedium(&_object);
     39    _mustBeReleased = false;
     40  }
     41  const STGMEDIUM* operator->() const { return &_object;}
     42  STGMEDIUM* operator->() { return &_object;}
     43  STGMEDIUM* operator&() { return &_object; }
     44 };
     45 
     46 #endif
     47 
     48 /*
     49 //////////////////////////////////
     50 // GUID <--> String Conversions
     51 UString GUIDToStringW(REFGUID guid);
     52 AString GUIDToStringA(REFGUID guid);
     53 #ifdef UNICODE
     54  #define GUIDToString GUIDToStringW
     55 #else
     56  #define GUIDToString GUIDToStringA
     57 #endif
     58 
     59 HRESULT StringToGUIDW(const wchar_t *string, GUID &classID);
     60 HRESULT StringToGUIDA(const char *string, GUID &classID);
     61 #ifdef UNICODE
     62  #define StringToGUID StringToGUIDW
     63 #else
     64  #define StringToGUID StringToGUIDA
     65 #endif
     66 */
     67 
     68 }}
     69 
     70 #endif