Source code
Revision control
Copy as Markdown
Other Tools
// Windows/COM.h↩
↩
#ifndef __WINDOWS_COM_H↩
#define __WINDOWS_COM_H↩
↩
#include "../Common/MyString.h"↩
↩
namespace NWindows {↩
namespace NCOM {↩
↩
#ifdef _WIN32↩
↩
class CComInitializer↩
{↩
public:↩
CComInitializer()↩
{↩
#ifdef UNDER_CE↩
CoInitializeEx(NULL, COINIT_MULTITHREADED);↩
#else↩
// it's single thread. Do we need multithread?↩
CoInitialize(NULL);↩
#endif↩
};↩
~CComInitializer() { CoUninitialize(); }↩
};↩
↩
class CStgMedium↩
{↩
STGMEDIUM _object;↩
public:↩
bool _mustBeReleased;↩
CStgMedium(): _mustBeReleased(false) {}↩
~CStgMedium() { Free(); }↩
void Free()↩
{↩
if (_mustBeReleased)↩
ReleaseStgMedium(&_object);↩
_mustBeReleased = false;↩
}↩
const STGMEDIUM* operator->() const { return &_object;}↩
STGMEDIUM* operator->() { return &_object;}↩
STGMEDIUM* operator&() { return &_object; }↩
};↩
↩
#endif↩
↩
/*↩
//////////////////////////////////↩
// GUID <--> String Conversions↩
UString GUIDToStringW(REFGUID guid);↩
AString GUIDToStringA(REFGUID guid);↩
#ifdef UNICODE↩
#define GUIDToString GUIDToStringW↩
#else↩
#define GUIDToString GUIDToStringA↩
#endif↩
↩
HRESULT StringToGUIDW(const wchar_t *string, GUID &classID);↩
HRESULT StringToGUIDA(const char *string, GUID &classID);↩
#ifdef UNICODE↩
#define StringToGUID StringToGUIDW↩
#else↩
#define StringToGUID StringToGUIDA↩
#endif↩
*/↩
↩
}}↩
↩
#endif↩