34 #pragma warning(disable:4355) 41 #ifdef _ATL_DISABLE_NO_VTABLE 44 #define ATL_NO_VTABLE __declspec(novtable) 47 #ifndef ATL_DEPRECATED 48 #define ATL_DEPRECATED __declspec(deprecated) 68 #define _ATL_CATMAP_ENTRY_END 0 69 #define _ATL_CATMAP_ENTRY_IMPLEMENTED 1 70 #define _ATL_CATMAP_ENTRY_REQUIRED 2 138 #define _ATL_SIMPLEMAPENTRY ((ATL::_ATL_CREATORARGFUNC *)1) 195 template<
class TLock>
228 hResult =
m_cs.Lock();
241 hResult =
m_cs.Unlock();
327 ((
unsigned long *)&rguid1)[0] == 0 &&
328 ((
unsigned long *)&rguid1)[1] == 0 &&
329 ((
unsigned long *)&rguid1)[2] == 0x000000C0 &&
330 ((
unsigned long *)&rguid1)[3] == 0x46000000);
390 #if defined(_ATL_FREE_THREADED) 395 #elif defined(_ATL_APARTMENT_THREADED) 400 #elif defined(_ATL_SINGLE_THREADED) 406 #error No threading model 446 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
457 if (bRegister !=
FALSE)
471 hResult =
CommonInitRegistrar(registrar, modulePath,
sizeof(modulePath) /
sizeof(modulePath[0]), pMapEntries);
475 if (bRegister !=
FALSE)
490 hInstance = _AtlBaseModule.GetModuleInstance();
492 if (dwFLen == modulePathCount)
494 else if (dwFLen == 0)
497 if (pMapEntries !=
NULL)
525 __declspec(selectany)
GUID CAtlModule::m_libid = {0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} };
619 pThis = static_cast<T *>(
this);
620 if (pThis->GetLockCount() == 0)
629 pThis = static_cast<T *>(
this);
630 return pThis->GetClassObject(rclsid,
riid,
ppv);
638 pThis = static_cast<T *>(
this);
639 hResult = pThis->RegisterServer(bRegTypeLib);
648 pThis = static_cast<T *>(
this);
649 hResult = pThis->UnregisterServer(bUnRegTypeLib);
684 T* pThis = static_cast<T*>(
this);
687 if (pThis->ParseCommandLine(lpCommandLine, &
hr))
689 hr = pThis->Run(nShowCmd);
692 T::UninitializeCom();
701 T* pThis = static_cast<T*>(
this);
702 hr = pThis->PreMessageLoop(nShowCmd);
706 pThis->RunMessageLoop();
707 hr = pThis->PostMessageLoop();
736 T* pThis = static_cast<T*>(
this);
752 T* pThis = static_cast<T*>(
this);
753 return pThis->RevokeClassObjects();
804 if (
p != reinterpret_cast<_ATL_OBJMAP_ENTRY *>(-1))
812 objectMapEntry->pfnObjectMain(
true);
829 if (objectMapEntry->
pCF !=
NULL)
832 objectMapEntry->pfnObjectMain(
false);
855 if (objectMapEntry->
pCF ==
NULL)
859 if (objectMapEntry->
pCF ==
NULL)
862 if (objectMapEntry->
pCF !=
NULL)
884 if (objectMapEntry !=
NULL)
890 hResult = objectMapEntry->pfnUpdateRegistry(
TRUE);
909 if (objectMapEntry !=
NULL)
915 hResult = objectMapEntry->pfnUpdateRegistry(
FALSE);
1016 CAtlTransactionManager* m_pTM;
1038 CRegKey(CAtlTransactionManager* pTM)
throw()
1171 CHAR bufA[40] = {0};
1200 ULONG* pnChars)
throw()
1247 CHAR bufA[40] = {0};
1275 dwNotifyFilter,
hEvent, bAsync);
1290 LONG lRet =
key.Create(hKeyParent, lpszKeyName);
1293 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1305 lRet =
key.SetStringValue(lpszValueName, lpszValue);
1376 }
while (*pszz !=
TEXT(
'\0'));
1412 if (pszName ==
NULL)
1420 pszName = szNameBuf;
1448 if (pszName != szNameBuf)
1481 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1484 return connectionPoint->Advise(
pUnk, pdw);
1498 hResult =
container->FindConnectionPoint(iid, &connectionPoint);
1501 return connectionPoint->Unadvise(
dw);
1511 if (pThis ==
NULL || pEntries ==
NULL)
1519 resultInterface = reinterpret_cast<IUnknown *>(reinterpret_cast<char *>(pThis) + pEntries[0].
dw);
1521 resultInterface->
AddRef();
1526 while (pEntries[
i].pFunc != 0)
1530 if (pEntries[
i].pFunc == reinterpret_cast<_ATL_CREATORARGFUNC *>(1))
1533 resultInterface = reinterpret_cast<IUnknown *>(reinterpret_cast<char *>(pThis) + pEntries[
i].
dw);
1535 resultInterface->
AddRef();
1541 if (hResult ==
S_OK)
1555 if (pWinModule ==
NULL)
1563 if (pWinModule ==
NULL)
1596 while (currentEntry !=
NULL)
1600 *previousLink = currentEntry->
m_pNext;
1604 previousLink = ¤tEntry->
m_pNext;
1605 currentEntry = currentEntry->
m_pNext;
1614 size_t index_len = lpszIndex ?
wcslen(lpszIndex) : 0;
1655 *ppTypeLib =
typelib.Detach();
1707 WCHAR reg_path[256] =
L"CLSID\\";
1729 for (
_ATL_OBJMAP_ENTRY ** iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1737 hResult =
entry->pfnUpdateRegistry(
TRUE);
1763 for (
_ATL_OBJMAP_ENTRY **iter =
mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++)
1816 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1818 if (!(*iter)->pfnGetClassObject)
1821 hr = (*iter)->pfnGetClassObject((
void*)(*iter)->pfnCreateInstance,
IID_IUnknown, (
void**)&unk);
1844 for (iter =
module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++)
1857 #ifndef _ATL_NO_AUTOMATIC_NAMESPACE 1858 using namespace ATL;
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const _ATL_CATMAP_ENTRY *catmap, BOOL reg)
CComCriticalSection m_csWindowCreate
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue)
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
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
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
REFIID LPVOID DWORD_PTR dw
GLuint GLuint GLsizei count
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
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
DWORD WINAPI GetLastError(VOID)
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)
GLenum GLuint GLenum GLsizei const GLchar * buf
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)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
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
GLenum GLuint GLenum GLsizei length
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)
HRESULT WINAPI RegisterTypeLib(ITypeLib *ptlib, const WCHAR *szFullPath, const WCHAR *szHelpDir)
_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)
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)
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
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
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
#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)
static LONG _DoDeleteKeyTree(HKEY hParentKey, LPCTSTR lpszKey)
LPVOID WINAPI CoTaskMemRealloc(LPVOID pvOld, SIZE_T size)
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
GLuint GLuint GLsizei GLenum type
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