35#pragma warning(disable:4355)
42#ifdef _ATL_DISABLE_NO_VTABLE
45#define ATL_NO_VTABLE __declspec(novtable)
49#define ATL_DEPRECATED __declspec(deprecated)
64#if !defined(_WINDLL) && !defined(_USRDLL)
65 static_assert(!isDll,
"_WINDLL or _USRDLL must be defined when 'CAtlDllModuleT<T>' is used");
67 static_assert(isDll,
"_WINDLL or _USRDLL must be defined when 'CAtlExeModuleT<T>' is used");
78#define _ATL_CATMAP_ENTRY_END 0
79#define _ATL_CATMAP_ENTRY_IMPLEMENTED 1
80#define _ATL_CATMAP_ENTRY_REQUIRED 2
148#define _ATL_SIMPLEMAPENTRY ((ATL::_ATL_CREATORARGFUNC *)1)
189#pragma section("ATL$__a", read, write)
190#pragma section("ATL$__z", read, write)
191#pragma section("ATL$__m", read, write)
192#define _ATLALLOC(x) __declspec(allocate(x))
195#define OBJECT_ENTRY_PRAGMA(class) __pragma(comment(linker, "/include:___pobjMap_" #class));
196#elif defined(_M_IA64) || defined(_M_AMD64) || (_M_ARM) || defined(_M_ARM64)
197#define OBJECT_ENTRY_PRAGMA(class) __pragma(comment(linker, "/include:__pobjMap_" #class));
199#error Your platform is not supported.
202#elif defined(__GNUC__)
210#define _ATLALLOC(x) __attribute__((section(x)))
211#define OBJECT_ENTRY_PRAGMA(class) static int __pobjMap_hack_##class = hack_for_gcc(&__pobjMap_##class);
214#error Your compiler is not supported.
278 hResult =
m_cs.Lock();
291 hResult =
m_cs.Unlock();
377 ((
unsigned long *)&rguid1)[0] == 0 &&
378 ((
unsigned long *)&rguid1)[1] == 0 &&
379 ((
unsigned long *)&rguid1)[2] == 0x000000C0 &&
380 ((
unsigned long *)&rguid1)[3] == 0x46000000);
440#if defined(_ATL_FREE_THREADED)
445#elif defined(_ATL_APARTMENT_THREADED)
450#elif defined(_ATL_SINGLE_THREADED)
456#error No threading model
496 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
507 if (bRegister !=
FALSE)
521 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
525 if (bRegister !=
FALSE)
540 hInstance = _AtlBaseModule.GetModuleInstance();
542 if (dwFLen == modulePathCount)
544 else if (dwFLen == 0)
547 if (pMapEntries !=
NULL)
575__declspec(selectany)
GUID CAtlModule::m_libid = {0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} };
658 (*iter)->pfnObjectMain(bStarting);
699 pThis =
static_cast<T *
>(
this);
700 if (pThis->GetLockCount() == 0)
709 pThis =
static_cast<T *
>(
this);
710 return pThis->GetClassObject(rclsid,
riid,
ppv);
718 pThis =
static_cast<T *
>(
this);
719 hResult = pThis->RegisterServer(bRegTypeLib);
728 pThis =
static_cast<T *
>(
this);
729 hResult = pThis->UnregisterServer(bUnRegTypeLib);
768 T* pThis =
static_cast<T*
>(
this);
771 if (pThis->ParseCommandLine(lpCommandLine, &
hr))
773 hr = pThis->Run(nShowCmd);
776 T::UninitializeCom();
785 T* pThis =
static_cast<T*
>(
this);
786 hr = pThis->PreMessageLoop(nShowCmd);
790 pThis->RunMessageLoop();
791 hr = pThis->PostMessageLoop();
820 T* pThis =
static_cast<T*
>(
this);
836 T* pThis =
static_cast<T*
>(
this);
837 return pThis->RevokeClassObjects();
852#if defined(_ATL_FREE_THREADED)
857 return ::CoInitializeEx(
NULL, coInit);
901 objectMapEntry->pfnObjectMain(
true);
910 (*iter)->pfnObjectMain(
true);
925 if (objectMapEntry->
pCF !=
NULL)
928 objectMapEntry->pfnObjectMain(
false);
936 (*iter)->pfnObjectMain(
false);
958 if (objectMapEntry->
pCF ==
NULL)
962 if (objectMapEntry->
pCF ==
NULL)
965 if (objectMapEntry->
pCF !=
NULL)
986 if (objectMapEntry !=
NULL)
992 hResult = objectMapEntry->pfnUpdateRegistry(
TRUE);
1011 if (objectMapEntry !=
NULL)
1017 hResult = objectMapEntry->pfnUpdateRegistry(
FALSE);
1098 return ::CoTaskMemAlloc(
size);
1103 return ::CoTaskMemRealloc(
ptr,
size);
1118 CAtlTransactionManager* m_pTM;
1140 CRegKey(CAtlTransactionManager* pTM)
noexcept
1161 return ::RegCloseKey(
hKey);
1262 CHAR bufA[40] = {0};
1291 ULONG* pnChars)
noexcept
1307 return ::RegSetValueEx(
m_hKey, pszValueName, 0, dwType, (
const BYTE*)
pValue, nBytes);
1338 CHAR bufA[40] = {0};
1366 dwNotifyFilter,
hEvent, bAsync);
1381 LONG lRet =
key.Create(hKeyParent, lpszKeyName);
1384 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1396 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1404 return ::RegDeleteValue(
m_hKey, lpszValue);
1411 return ::RegDeleteKey(
m_hKey, lpszSubKey);
1471 }
while (*pszz !=
TEXT(
'\0'));
1507 if (pszName ==
NULL)
1515 pszName = szNameBuf;
1543 if (pszName != szNameBuf)
1576 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1579 return connectionPoint->Advise(
pUnk, pdw);
1593 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1596 return connectionPoint->Unadvise(
dw);
1606 if (pThis ==
NULL || pEntries ==
NULL)
1614 resultInterface =
reinterpret_cast<IUnknown *
>(
reinterpret_cast<char *
>(pThis) + pEntries[0].
dw);
1616 resultInterface->
AddRef();
1621 while (pEntries[
i].pFunc != 0)
1625 if (pEntries[
i].pFunc ==
reinterpret_cast<_ATL_CREATORARGFUNC *
>(1))
1628 resultInterface =
reinterpret_cast<IUnknown *
>(
reinterpret_cast<char *
>(pThis) + pEntries[
i].
dw);
1630 resultInterface->
AddRef();
1636 if (hResult ==
S_OK)
1650 if (pWinModule ==
NULL)
1658 if (pWinModule ==
NULL)
1691 while (currentEntry !=
NULL)
1695 *previousLink = currentEntry->
m_pNext;
1699 previousLink = ¤tEntry->
m_pNext;
1700 currentEntry = currentEntry->
m_pNext;
1709 size_t index_len = lpszIndex ?
wcslen(lpszIndex) : 0;
1750 *ppTypeLib =
typelib.Detach();
1802 WCHAR reg_path[256] =
L"CLSID\\";
1824 for (
_ATL_OBJMAP_ENTRY ** iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1832 hResult =
entry->pfnUpdateRegistry(
TRUE);
1858 for (
_ATL_OBJMAP_ENTRY **iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1911 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1917 if (!
ptr->pfnGetClassObject)
1943 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1964 for (
_ATL_OBJMAP_ENTRY **iter =
pm->m_ppAutoObjMapFirst; iter < pm->m_ppAutoObjMapLast; iter++)
1994#ifndef _ATL_NO_AUTOMATIC_NAMESPACE
std::map< E_MODULE, HMODULE > mod
#define InterlockedIncrement
#define InterlockedDecrement
static bool m_bInitFailed
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
void ExecuteObjectMain(bool bStarting)
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib=TRUE)
HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT DllRegisterServer(BOOL bRegTypeLib=TRUE)
HRESULT DllCanUnloadNow()
HRESULT Run(int nShowCmd=SW_HIDE)
HRESULT PreMessageLoop(int nShowCmd)
int WinMain(int nShowCmd)
HRESULT PostMessageLoop()
HRESULT RevokeClassObjects()
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags)
static HRESULT InitializeCom()
static void UninitializeCom()
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT *pnRetCode)
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
virtual HRESULT AddCommonRGSReplacements(IRegistrarBase *pRegistrar)
static LPCOLESTR GetAppId()
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
HRESULT WINAPI UpdateRegistryFromResource(UINT nResID, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries=NULL)
HRESULT WINAPI UpdateRegistryFromResource(LPCTSTR lpszRes, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries=NULL)
virtual LONG GetLockCount()
virtual HRESULT AddCommonRGSReplacements(IRegistrarBase *)=0
HRESULT CommonInitRegistrar(CRegObject ®istrar, WCHAR *modulePath, DWORD modulePathCount, struct _ATL_REGMAP_ENTRY *pMapEntries)
void AddCreateWndData(_AtlCreateWndData *pData, void *pObject)
void * ExtractCreateWndData()
static void * Allocate(_In_ size_t size)
static void * Reallocate(_In_opt_ void *ptr, _In_ size_t size)
static void Free(_In_opt_ void *ptr)
CComCritSecLock(TLock &cs, bool bInitialLock=true)
HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT RegisterServer(BOOL bRegTypeLib=FALSE, const CLSID *pCLSID=NULL)
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib=TRUE)
HRESULT Init(_ATL_OBJMAP_ENTRY *p, HINSTANCE, const GUID *plibid)
HRESULT DllCanUnloadNow()
HRESULT DllRegisterServer(BOOL bRegTypeLib=TRUE)
_ATL_OBJMAP_ENTRY * m_pObjMap
HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID *pCLSID=NULL)
HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
CComFakeCriticalSection AutoCriticalSection
CComMultiThreadModelNoCS ThreadModelNoCS
static ULONG WINAPI Increment(LPLONG p)
static ULONG WINAPI Decrement(LPLONG p)
CComFakeCriticalSection CriticalSection
CComFakeCriticalSection AutoDeleteCriticalSection
static ULONG WINAPI Decrement(LPLONG p)
static ULONG WINAPI Increment(LPLONG p)
CComCriticalSection CriticalSection
CComAutoDeleteCriticalSection AutoDeleteCriticalSection
CComMultiThreadModelNoCS ThreadModelNoCS
CComAutoCriticalSection AutoCriticalSection
CComSingleThreadModel ThreadModelNoCS
CComFakeCriticalSection CriticalSection
static ULONG WINAPI Decrement(LPLONG p)
static ULONG WINAPI Increment(LPLONG p)
CComFakeCriticalSection AutoCriticalSection
CComFakeCriticalSection AutoDeleteCriticalSection
CHandle & operator=(_Inout_ CHandle &handle)
CHandle(_Inout_ CHandle &handle)
CHandle(_In_ HANDLE handle)
void Attach(_In_ HANDLE handle)
LONG Open(HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired=KEY_READ|KEY_WRITE) noexcept
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) noexcept
static LONG _DoDeleteKeyTree(HKEY hParentKey, LPCTSTR lpszKey)
LONG SetStringValue(LPCTSTR pszValueName, LPCTSTR pszValue, DWORD dwType=REG_SZ) noexcept
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) noexcept
LONG QueryValue(LPCTSTR pszValueName, DWORD *pdwType, void *pData, ULONG *pnBytes) noexcept
LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG *pnChars) noexcept
CRegKey(HKEY hKey) noexcept
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) noexcept
static LONG WINAPI SetValue(HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName=NULL)
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) noexcept
LONG QueryMultiStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG *pnChars) noexcept
LONG QueryDWORDValue(LPCTSTR pszValueName, DWORD &dwValue) noexcept
static ULONG _GetMultiStringSize(LPCTSTR pszz)
LONG DeleteSubKey(LPCTSTR lpszSubKey) noexcept
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) noexcept
LONG SetBinaryValue(LPCTSTR pszValueName, const void *pValue, ULONG nBytes) noexcept
CRegKey(CRegKey &key) noexcept
LONG QueryGUIDValue(LPCTSTR pszValueName, GUID &guidValue) noexcept
LONG SetKeyValue(LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName=NULL) noexcept
LONG NotifyChangeKeyValue(BOOL bWatchSubtree, DWORD dwNotifyFilter, HANDLE hEvent, BOOL bAsync=TRUE) noexcept
LONG QueryQWORDValue(LPCTSTR pszValueName, ULONGLONG &qwValue) noexcept
CRegKey & operator=(CRegKey &key) noexcept
LONG EnumKey(DWORD iIndex, LPTSTR pszName, LPDWORD pnNameLength, FILETIME *pftLastWriteTime=NULL) noexcept
LONG QueryBinaryValue(LPCTSTR pszValueName, void *pValue, ULONG *pnBytes) noexcept
LONG GetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd, LPDWORD pnBytes) noexcept
LONG RecurseDeleteKey(LPCTSTR lpszKey) noexcept
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) noexcept
LONG DeleteValue(LPCTSTR lpszValue) noexcept
LONG SetValue(LPCTSTR pszValueName, DWORD dwType, const void *pValue, ULONG nBytes) noexcept
void Attach(HKEY hKey) noexcept
HRESULT STDMETHODCALLTYPE ResourceUnregisterSz(LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
HRESULT STDMETHODCALLTYPE ResourceRegisterSz(LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
HRESULT STDMETHODCALLTYPE ResourceUnregister(LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
HRESULT STDMETHODCALLTYPE AddReplacement(LPCOLESTR key, LPCOLESTR item)
HRESULT STDMETHODCALLTYPE ResourceRegister(LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
#define ERROR_INSUFFICIENT_BUFFER
LONG WINAPI RegFlushKey(HKEY hKey)
LONG WINAPI RegGetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, LPDWORD lpcbSecurityDescriptor)
LONG WINAPI RegSetKeySecurity(HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegNotifyChangeKeyValue(HKEY hKey, BOOL bWatchSubtree, DWORD dwNotifyFilter, HANDLE hEvent, BOOL fAsynchronous)
static ICatRegister * catreg
#define ERROR_NO_MORE_ITEMS
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
BOOL WINAPI GetModuleHandleExW(IN DWORD dwFlags, IN LPCWSTR lpwModuleName OPTIONAL, OUT HMODULE *phModule)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister)
ULONG WINAPI CoAddRefServerProcess(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoRevokeClassObject(DWORD dwRegister)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
ULONG WINAPI CoReleaseServerProcess(void)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI RegisterTypeLib(ITypeLib *ptlib, const WCHAR *szFullPath, const WCHAR *szHelpDir)
HRESULT WINAPI UnRegisterTypeLib(REFGUID libid, WORD wVerMajor, WORD wVerMinor, LCID lcid, SYSKIND syskind)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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
VOID WINAPI CoTaskMemFree(LPVOID ptr)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define _ATL_CATMAP_ENTRY_END
#define _ATL_CATMAP_ENTRY_IMPLEMENTED
HRESULT RegisterClassReqCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT RegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT UnRegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT UnRegisterClassReqCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT AddReplacement([in] LPCOLESTR Key, [in] LPCOLESTR item)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
nsresult QueryInterface(nsIIDRef riid, void **result)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
DWORD SECURITY_INFORMATION
__declspec(selectany) CAtlModule *_pAtlModule
_ATL_COM_MODULE70 _ATL_COM_MODULE
_ATL_MODULE70 _ATL_MODULE
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE *pComModule, REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT __stdcall AtlUnadvise(IUnknown *pUnkCP, const IID &iid, DWORD dw)
HRESULT __stdcall AtlAdvise(IUnknown *pUnkCP, IUnknown *pUnk, const IID &iid, LPDWORD pdw)
HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE inst, const WCHAR *index)
void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pWinModule, _AtlCreateWndData *pData, void *pObject)
_ATL_OBJMAP_ENTRY30 _ATL_OBJMAP_ENTRY
HRESULT WINAPI AtlInternalQueryInterface(void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
HRESULT WINAPI AtlComModuleRegisterClassObjects(_ATL_COM_MODULE *module, DWORD context, DWORD flags)
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
CComMultiThreadModel CComGlobalsThreadModel
HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE *pWinModule)
void *WINAPI AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE *pWinModule)
REFIID LPVOID DWORD_PTR dw
_ATL_WIN_MODULE70 _ATL_WIN_MODULE
HRESULT WINAPI AtlComModuleUnregisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
const struct _ATL_CATMAP_ENTRY *() _ATL_CATMAPFUNC()
CComMultiThreadModel CComObjectThreadModel
HRESULT WINAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE *module)
HRESULT WINAPI AtlLoadTypeLib(HINSTANCE inst, LPCOLESTR lpszIndex, BSTR *pbstrPath, ITypeLib **ppTypeLib)
HRESULT WINAPI AtlWinModuleTerm(_ATL_WIN_MODULE *pWinModule, HINSTANCE hInst)
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const _ATL_CATMAP_ENTRY *catmap, BOOL reg)
BOOL WINAPI InlineIsEqualUnknown(REFGUID rguid1)
#define REG_OPTION_NON_VOLATILE
@ COINIT_APARTMENTTHREADED
BSTR WINAPI SysAllocString(LPCOLESTR str)
const GUID IID_IConnectionPointContainer
#define IsEqualGUID(rguid1, rguid2)
#define InlineIsEqualGUID(rguid1, rguid2)
#define IsEqualCLSID(rclsid1, rclsid2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_ATL_OBJMAP_ENTRY ** m_ppAutoObjMapLast
_ATL_OBJMAP_ENTRY ** m_ppAutoObjMapFirst
CComCriticalSection m_csObjMap
_ATL_CREATORARGFUNC * pFunc
CComCriticalSection m_csStaticDataInitAndTypeInfo
_ATL_TERMFUNC_ELEM * m_pTermFuncs
_ATL_CREATORFUNC * pfnGetClassObject
HRESULT WINAPI RegisterClassObject(DWORD dwClsContext, DWORD dwFlags)
_ATL_DESCRIPTIONFUNC * pfnGetObjectDescription
_ATL_CATMAPFUNC * pfnGetCategoryMap
HRESULT(WINAPI *pfnUpdateRegistry)(BOOL bRegister)
_ATL_CREATORFUNC * pfnCreateInstance
void(WINAPI *pfnObjectMain)(bool bStarting)
HRESULT WINAPI RevokeClassObject()
_ATL_TERMFUNC_ELEM * pNext
CComCriticalSection m_csWindowCreate
_AtlCreateWndData * m_pCreateWndList
_AtlCreateWndData * m_pNext
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
TW_UINT32 TW_UINT16 TW_UINT16 MSG
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetCurrentThreadId(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define HRESULT_FROM_WIN32(x)
#define CLASS_E_CLASSNOTAVAILABLE
#define ERROR_INVALID_DATA
#define HKEY_CLASSES_ROOT
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define PostThreadMessage