32 #pragma warning(disable:4355) 36 #define _ATL_PACKING 8 39 #ifndef _ATL_FREE_THREADED 40 #ifndef _ATL_APARTMENT_THREADED 41 #ifndef _ATL_SINGLE_THREADED 42 #define _ATL_FREE_THREADED 51 #ifdef _ATL_DISABLE_NO_VTABLE 54 #define ATL_NO_VTABLE __declspec(novtable) 57 #ifndef ATL_DEPRECATED 58 #define ATL_DEPRECATED __declspec(deprecated) 61 #define offsetofclass(base, derived) (reinterpret_cast<DWORD_PTR>(static_cast<base *>(reinterpret_cast<derived *>(_ATL_PACKING))) - _ATL_PACKING) 80 #define _ATL_CATMAP_ENTRY_END 0 81 #define _ATL_CATMAP_ENTRY_IMPLEMENTED 1 82 #define _ATL_CATMAP_ENTRY_REQUIRED 2 150 #define _ATL_SIMPLEMAPENTRY ((ATL::_ATL_CREATORARGFUNC *)1) 207 template<
class TLock>
240 hResult =
m_cs.Lock();
253 hResult =
m_cs.Unlock();
339 ((
unsigned long *)&rguid1)[0] == 0 &&
340 ((
unsigned long *)&rguid1)[1] == 0 &&
341 ((
unsigned long *)&rguid1)[2] == 0x000000C0 &&
342 ((
unsigned long *)&rguid1)[3] == 0x46000000);
402 #if defined(_ATL_FREE_THREADED) 407 #elif defined(_ATL_APARTMENT_THREADED) 412 #elif defined(_ATL_SINGLE_THREADED) 418 #error No threading model 458 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
469 if (bRegister !=
FALSE)
483 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
487 if (bRegister !=
FALSE)
504 if (dwFLen == modulePathCount)
506 else if (dwFLen == 0)
509 if (pMapEntries !=
NULL)
537 __declspec(selectany)
GUID CAtlModule::m_libid = {0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} };
628 pThis = static_cast<T *>(
this);
629 if (pThis->GetLockCount() == 0)
638 pThis = static_cast<T *>(
this);
639 return pThis->GetClassObject(rclsid,
riid,
ppv);
647 pThis = static_cast<T *>(
this);
648 hResult = pThis->RegisterServer(bRegTypeLib);
657 pThis = static_cast<T *>(
this);
658 hResult = pThis->UnregisterServer(bUnRegTypeLib);
693 T* pThis = static_cast<T*>(
this);
696 if (pThis->ParseCommandLine(lpCommandLine, &
hr))
698 hr = pThis->Run(nShowCmd);
701 T::UninitializeCom();
710 T* pThis = static_cast<T*>(
this);
711 hr = pThis->PreMessageLoop(nShowCmd);
715 pThis->RunMessageLoop();
716 hr = pThis->PostMessageLoop();
745 T* pThis = static_cast<T*>(
this);
761 T* pThis = static_cast<T*>(
this);
762 return pThis->RevokeClassObjects();
813 if (
p != reinterpret_cast<_ATL_OBJMAP_ENTRY *>(-1))
821 objectMapEntry->pfnObjectMain(
true);
838 if (objectMapEntry->
pCF !=
NULL)
841 objectMapEntry->pfnObjectMain(
false);
864 if (objectMapEntry->
pCF ==
NULL)
868 if (objectMapEntry->
pCF ==
NULL)
871 if (objectMapEntry->
pCF !=
NULL)
893 if (objectMapEntry !=
NULL)
899 hResult = objectMapEntry->pfnUpdateRegistry(
TRUE);
918 if (objectMapEntry !=
NULL)
924 hResult = objectMapEntry->pfnUpdateRegistry(
FALSE);
1024 CAtlTransactionManager* m_pTM;
1046 CRegKey(CAtlTransactionManager* pTM)
throw()
1111 dwOptions, samDesired, lpSecAttr, &hKey,
1117 dwOptions, samDesired, lpSecAttr, &hKey,
1179 CHAR bufA[40] = {0};
1208 ULONG* pnChars)
throw()
1255 CHAR bufA[40] = {0};
1283 dwNotifyFilter,
hEvent, bAsync);
1298 LONG lRet =
key.Create(hKeyParent, lpszKeyName);
1301 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1313 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1384 }
while (*pszz !=
TEXT(
'\0'));
1419 if (pszName ==
NULL)
1427 pszName = szNameBuf;
1455 if (pszName != szNameBuf)
1488 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1491 return connectionPoint->Advise(
pUnk, pdw);
1505 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1508 return connectionPoint->Unadvise(
dw);
1518 if (pThis ==
NULL || pEntries ==
NULL)
1526 resultInterface = reinterpret_cast<IUnknown *>(reinterpret_cast<char *>(pThis) + pEntries[0].
dw);
1528 resultInterface->
AddRef();
1533 while (pEntries[
i].pFunc != 0)
1537 if (pEntries[
i].pFunc == reinterpret_cast<_ATL_CREATORARGFUNC *>(1))
1540 resultInterface = reinterpret_cast<IUnknown *>(reinterpret_cast<char *>(pThis) + pEntries[
i].
dw);
1542 resultInterface->
AddRef();
1548 if (hResult ==
S_OK)
1562 if (pWinModule ==
NULL)
1570 if (pWinModule ==
NULL)
1583 pData->m_pThis = pObject;
1603 while (currentEntry !=
NULL)
1607 *previousLink = currentEntry->
m_pNext;
1611 previousLink = ¤tEntry->
m_pNext;
1612 currentEntry = currentEntry->
m_pNext;
1621 size_t index_len = lpszIndex ?
wcslen(lpszIndex) : 0;
1662 *ppTypeLib =
typelib.Detach();
1714 WCHAR reg_path[256] =
L"CLSID\\";
1736 for (
_ATL_OBJMAP_ENTRY ** iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1744 hResult =
entry->pfnUpdateRegistry(
TRUE);
1770 for (
_ATL_OBJMAP_ENTRY **iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1823 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1825 if (!(*iter)->pfnGetClassObject)
1828 hr = (*iter)->pfnGetClassObject((
void*)(*iter)->pfnCreateInstance,
IID_IUnknown, (
void**)&unk);
1851 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1864 #ifndef _ATL_NO_AUTOMATIC_NAMESPACE 1865 using namespace ATL;
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const _ATL_CATMAP_ENTRY *catmap, BOOL reg)
CComCriticalSection m_csWindowCreate
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue)
HINSTANCE GetModuleInstance()
LONG QueryBinaryValue(LPCTSTR pszValueName, void *pValue, ULONG *pnBytes)
HRESULT DllCanUnloadNow()
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
CComMultiThreadModelNoCS ThreadModelNoCS
typedef HRESULT(WINAPI _ATL_CREATORFUNC)(void *pv
CComFakeCriticalSection AutoCriticalSection
static void * Reallocate(_In_opt_ void *ptr, _In_ size_t size)
HRESULT PostMessageLoop()
HRESULT PreMessageLoop(int nShowCmd)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
_AtlCreateWndData * m_pNext
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
HRESULT RegisterClassReqCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT DllRegisterServer(BOOL bRegTypeLib=TRUE)
static ULONG WINAPI Decrement(LPLONG p)
#define HRESULT_FROM_WIN32(x)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
static void * Allocate(_In_ size_t size)
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
#define WideCharToMultiByte
LONG NotifyChangeKeyValue(BOOL bWatchSubtree, DWORD dwNotifyFilter, HANDLE hEvent, BOOL bAsync=TRUE)
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE *pComModule, REFCLSID rclsid, REFIID riid, LPVOID *ppv)
ULONG WINAPI CoAddRefServerProcess(void)
#define ERROR_NO_MORE_ITEMS
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei const GLchar ** path
CComFakeCriticalSection AutoDeleteCriticalSection
void AddCreateWndData(_AtlCreateWndData *pData, void *pObject)
HRESULT WINAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE *module)
_ATL_COM_MODULE70 _ATL_COM_MODULE
CComFakeCriticalSection CriticalSection
HRESULT WINAPI AtlLoadTypeLib(HINSTANCE inst, LPCOLESTR lpszIndex, BSTR *pbstrPath, ITypeLib **ppTypeLib)
_ATL_OBJMAP_ENTRY * m_pObjMap
GLuint GLuint GLsizei count
REFIID LPVOID DWORD_PTR dw
TW_UINT32 TW_UINT16 TW_UINT16 MSG
static void UninitializeCom()
void(WINAPI *pfnObjectMain)(bool bStarting)
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
ULONG WINAPI CoReleaseServerProcess(void)
const GUID IID_IConnectionPointContainer
virtual HRESULT AddCommonRGSReplacements(IRegistrarBase *pRegistrar)
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
static ITypeLib * typelib
LONG SetBinaryValue(LPCTSTR pszValueName, const void *pValue, ULONG nBytes)
_ATL_MODULE70 _ATL_MODULE
GLuint GLuint GLsizei GLenum type
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
DWORD WINAPI GetLastError(VOID)
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
HRESULT UnRegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT WINAPI AtlInternalQueryInterface(void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
static LONG WINAPI SetValue(HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName=NULL)
HRESULT __stdcall AtlUnadvise(IUnknown *pUnkCP, const IID &iid, DWORD dw)
LONG WINAPI RegFlushKey(HKEY hKey)
CComAutoDeleteCriticalSection AutoDeleteCriticalSection
HRESULT WINAPI RegisterClassObject(DWORD dwClsContext, DWORD dwFlags)
CComSingleThreadModel ThreadModelNoCS
#define CLASS_E_CLASSNOTAVAILABLE
CComCritSecLock(TLock &cs, bool bInitialLock=true)
HRESULT WINAPI AtlWinModuleTerm(_ATL_WIN_MODULE *pWinModule, HINSTANCE hInst)
_ATL_OBJMAP_ENTRY30 _ATL_OBJMAP_ENTRY
_ATL_TERMFUNC_ELEM * pNext
HRESULT AddReplacement([in] LPCOLESTR Key, [in] LPCOLESTR item)
CHandle(_In_ HANDLE handle)
HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
void *WINAPI AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE *pWinModule)
static ULONG WINAPI Increment(LPLONG p)
HRESULT Init(_ATL_OBJMAP_ENTRY *p, HINSTANCE, const GUID *plibid)
virtual LONG GetLockCount()
HRESULT CommonInitRegistrar(CRegObject ®istrar, WCHAR *modulePath, DWORD modulePathCount, struct _ATL_REGMAP_ENTRY *pMapEntries)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LONG DeleteSubKey(LPCTSTR lpszSubKey)
static ICatRegister * catreg
LONG WINAPI RegCloseKey(HKEY hKey)
DWORD SECURITY_INFORMATION
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
HRESULT STDMETHODCALLTYPE ResourceRegisterSz(LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
CComFakeCriticalSection CriticalSection
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
size_t __cdecl _tcslen(const _TCHAR *str)
HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
LONG WINAPI RegSetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
BSTR WINAPI SysAllocString(LPCOLESTR str)
_ATL_OBJMAP_ENTRY ** m_ppAutoObjMapLast
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue)
static ULONG WINAPI Decrement(LPLONG p)
HRESULT WINAPI AtlComModuleRegisterClassObjects(_ATL_COM_MODULE *module, DWORD context, DWORD flags)
LONG QueryDWORDValue(LPCTSTR pszValueName, DWORD &dwValue)
DWORD WINAPI GetCurrentThreadId(VOID)
LONG SetKeyValue(LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName=NULL)
HRESULT WINAPI DECLSPEC_HOTPATCH CoRevokeClassObject(DWORD dwRegister)
HRESULT WINAPI RegisterTypeLib(ITypeLib *ptlib, OLECHAR *szFullPath, OLECHAR *szHelpDir)
LONG QueryGUIDValue(LPCTSTR pszValueName, GUID &guidValue)
static void Free(_In_opt_ void *ptr)
LONG QueryValue(LPCTSTR pszValueName, DWORD *pdwType, void *pData, ULONG *pnBytes)
#define REG_OPTION_NON_VOLATILE
HRESULT WINAPI UpdateRegistryFromResource(UINT nResID, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries=NULL)
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue)
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
_AtlCreateWndData * m_pCreateWndList
LONG WINAPI RegGetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, LPDWORD lpcbSecurityDescriptor)
HRESULT WINAPI UpdateRegistryFromResource(LPCTSTR lpszRes, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries=NULL)
void Attach(_In_ HANDLE handle)
HRESULT GetLibAttr([out] TLIBATTR **ppTLibAttr)
GLenum GLuint GLenum GLsizei length
HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE *pWinModule)
void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pWinModule, _AtlCreateWndData *pData, void *pObject)
CRegKey & operator=(CRegKey &key)
#define PostThreadMessage
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
_ATL_OBJMAP_ENTRY ** m_ppAutoObjMapFirst
LONG Open(HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired=KEY_READ|KEY_WRITE)
HRESULT STDMETHODCALLTYPE ResourceUnregisterSz(LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
BOOL WINAPI InlineIsEqualUnknown(REFGUID rguid1)
LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG *pnChars)
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib=TRUE)
typedef void(__stdcall _ATL_TERMFUNC)(DWORD_PTR dw)
LONG QueryMultiStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG *pnChars)
const struct _ATL_CATMAP_ENTRY *() _ATL_CATMAPFUNC()
HRESULT RegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
_ATL_CREATORFUNC * pfnCreateInstance
CAtlWinModule _AtlWinModule
CComAutoCriticalSection AutoCriticalSection
LONG EnumKey(DWORD iIndex, LPTSTR pszName, LPDWORD pnNameLength, FILETIME *pftLastWriteTime=NULL)
virtual HRESULT AddCommonRGSReplacements(IRegistrarBase *)=0
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
LONG GetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd, LPDWORD pnBytes)
#define InterlockedDecrement
static LPCOLESTR GetAppId()
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT *pnRetCode)
_ATL_CATMAPFUNC * pfnGetCategoryMap
void * ExtractCreateWndData()
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
LONG Create(HKEY hKeyParent, LPCTSTR lpszKeyName, LPTSTR lpszClass=REG_NONE, DWORD dwOptions=REG_OPTION_NON_VOLATILE, REGSAM samDesired=KEY_READ|KEY_WRITE, LPSECURITY_ATTRIBUTES lpSecAttr=NULL, LPDWORD lpdwDisposition=NULL)
_ATL_CREATORFUNC * pfnGetClassObject
REFIID LPVOID * ppvObject
static ULONG _GetMultiStringSize(LPCTSTR pszz)
HRESULT WINAPI UnRegisterTypeLib(REFGUID libid, WORD wVerMajor, WORD wVerMinor, LCID lcid, SYSKIND syskind)
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd)
CComMultiThreadModelNoCS ThreadModelNoCS
HRESULT STDMETHODCALLTYPE ResourceUnregister(LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
HRESULT WINAPI AtlComModuleUnregisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
#define ERROR_INVALID_DATA
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
static ULONG WINAPI Decrement(LPLONG p)
HRESULT STDMETHODCALLTYPE AddReplacement(LPCOLESTR key, LPCOLESTR item)
HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE inst, const WCHAR *index)
static ULONG WINAPI Increment(LPLONG p)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister)
BOOL WINAPI GetModuleHandleExW(IN DWORD dwFlags, IN LPCWSTR lpwModuleName OPTIONAL, OUT HMODULE *phModule)
LONG WINAPI RegNotifyChangeKeyValue(HKEY hKey, BOOL bWatchSubtree, DWORD dwNotifyFilter, HANDLE hEvent, BOOL fAsynchronous)
#define _ATL_CATMAP_ENTRY_END
#define InterlockedIncrement
typedef LPCTSTR(WINAPI _ATL_DESCRIPTIONFUNC)()
CComCriticalSection m_csStaticDataInitAndTypeInfo
CComCriticalSection CriticalSection
#define _ATL_CATMAP_ENTRY_IMPLEMENTED
static HRESULT InitializeCom()
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
CHandle & operator=(_Inout_ CHandle &handle)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
LONG RecurseDeleteKey(LPCTSTR lpszKey)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT DllCanUnloadNow()
CComFakeCriticalSection AutoDeleteCriticalSection
void ReleaseTLibAttr([in] TLIBATTR *pTLibAttr)
#define MultiByteToWideChar
HRESULT UnRegisterClassReqCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
LONG QueryQWORDValue(LPCTSTR pszValueName, ULONGLONG &qwValue)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HRESULT STDMETHODCALLTYPE ResourceRegister(LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT __stdcall AtlAdvise(IUnknown *pUnkCP, IUnknown *pUnk, const IID &iid, LPDWORD pdw)
__declspec(selectany) CAtlModule *_pAtlModule
CComMultiThreadModel CComGlobalsThreadModel
_ATL_CREATORARGFUNC * pFunc
CComMultiThreadModel CComObjectThreadModel
_ATL_WIN_MODULE70 _ATL_WIN_MODULE
int WinMain(int nShowCmd)
HRESULT DllRegisterServer(BOOL bRegTypeLib=TRUE)
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
CAtlBaseModule _AtlBaseModule
static LONG _DoDeleteKeyTree(HKEY hParentKey, LPCTSTR lpszKey)
LPVOID WINAPI CoTaskMemRealloc(LPVOID pvOld, SIZE_T size)
CAtlComModule _AtlComModule
HRESULT Run(int nShowCmd=SW_HIDE)
#define HKEY_CLASSES_ROOT
CHandle(_Inout_ CHandle &handle)
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib=TRUE)
LONG DeleteValue(LPCTSTR lpszValue)
CComFakeCriticalSection AutoCriticalSection
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define IsEqualCLSID(rclsid1, rclsid2)
HRESULT(WINAPI *pfnUpdateRegistry)(BOOL bRegister)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
static bool m_bInitFailed
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_ATL_DESCRIPTIONFUNC * pfnGetObjectDescription
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_ATL_TERMFUNC_ELEM * m_pTermFuncs
#define InlineIsEqualGUID(rguid1, rguid2)
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
LONG SetValue(LPCTSTR pszValueName, DWORD dwType, const void *pValue, ULONG nBytes)
HRESULT RevokeClassObjects()
static ULONG WINAPI Increment(LPLONG p)
HRESULT WINAPI RevokeClassObject()
CComCriticalSection m_csObjMap
LONG SetStringValue(LPCTSTR pszValueName, LPCTSTR pszValue, DWORD dwType=REG_SZ)
#define ERROR_INSUFFICIENT_BUFFER