37 #define ATLVer1Size FIELD_OFFSET(_ATL_MODULEW, dwAtlBuildVer) 44 TRACE(
"(%p %p %p)\n", pM,
p,
h);
56 WARN(
"Unknown structure version (size %i)\n",
size);
78 TRACE(
"Initializing object %i %p\n",
i,
p[
i].pfnObjectMain);
79 if (
p[
i].pfnObjectMain)
104 TRACE(
"(%p, %s, %p, %p)\n", pM,
debugstr_w(lpszIndex), pbstrPath, ppTypeLib);
149 TRACE(
"Registering object %i\n",
i);
150 if (
obj->pfnGetClassObject)
160 WARN(
"Failed to register object %i: 0x%08x\n",
i, rc);
173 FIXME(
"(%p, %i, %p) stub\n", pM, bUnRegTypeLib, pCLSID);
197 hRes =
obj->pfnUpdateRegistry(
TRUE);
243 TRACE(
"found object %i\n",
i);
244 if (
obj->pfnGetClassObject)
247 hres =
obj->pfnGetClassObject(
obj->pfnCreateInstance,
302 FIXME(
"%p %p %p semi-stub\n",
pm, wci, pProc);
335 TRACE(
"returning 0x%04x\n", atom);
361 FIXME(
"%p %p %p semi-stub\n",
pm, wci, pProc);
398 TRACE(
"returning 0x%04x\n", atom);
409 pData->m_pThis = pvObject;
456 TRACE(
"(%p %s %d %p %p)\n", pM,
debugstr_w(lpszRes), bRegister, pMapEntries, pReg);
467 IClassFactory_AddRef( iface );
501 hres = IRegistrar_QueryInterface(registrar,
riid,
ppv);
502 IRegistrar_Release(registrar);
524 LPCOLESTR wszId,
BOOL do_register,
531 static const WCHAR wszModule[] = {
'M',
'O',
'D',
'U',
'L',
'E',0};
532 static const WCHAR wszRegistry[] = {
'R',
'E',
'G',
'I',
'S',
'T',
'R',
'Y',0};
535 registrar = pRegistrar;
542 IRegistrar_AddReplacement(registrar, wszModule, wszDll);
544 for (pMapEntry = pMapEntries; pMapEntry && pMapEntry->
szKey; pMapEntry++)
545 IRegistrar_AddReplacement(registrar, pMapEntry->
szKey, pMapEntry->
szData);
548 hres = IRegistrar_ResourceRegisterSz(registrar, wszDll, wszId, wszRegistry);
550 hres = IRegistrar_ResourceUnregisterSz(registrar, wszDll, wszId, wszRegistry);
552 if(registrar != pRegistrar)
553 IRegistrar_Release(registrar);
557 static HRESULT do_register_server(
BOOL do_register)
559 static const WCHAR CLSID_RegistrarW[] =
560 {
'C',
'L',
'S',
'I',
'D',
'_',
'R',
'e',
'g',
'i',
's',
't',
'r',
'a',
'r',0};
561 static const WCHAR atl_dllW[] = {
'a',
't',
'l',
'.',
'd',
'l',
'l',0};
592 return do_register_server(
TRUE);
604 return do_register_server(
FALSE);
HRESULT WINAPI AtlModuleRevokeClassObjects(_ATL_MODULEW *pm)
static ULONG WINAPI RegistrarCF_AddRef(IClassFactory *iface)
BOOL WINAPI GetClassInfoExW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _Out_ LPWNDCLASSEXW)
HRESULT WINAPI AtlCreateRegistrar(IRegistrar **ret)
CRITICAL_SECTION m_csWindowCreate
HRESULT __wine_register_resources(HMODULE module) DECLSPEC_HIDDEN
ATOM WINAPI AtlModuleRegisterWndClassInfoW(_ATL_MODULEW *pm, _ATL_WNDCLASSINFOW *wci, WNDPROC *pProc)
WINE_DEFAULT_DEBUG_CHANNEL(atl)
HRESULT WINAPI AtlModuleGetClassObject(_ATL_MODULEW *pm, REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT WINAPI AtlModuleUnregisterServer(_ATL_MODULEW *pm, const CLSID *clsid)
HRESULT WINAPI DllUnregisterServer(void)
_AtlCreateWndData * m_pCreateWndList
WCHAR m_szAutoName[sizeof("ATL:")+sizeof(void *) *2]
static HRESULT WINAPI RegistrarCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppvObject)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
HRESULT WINAPI AtlModuleRegisterTypeLib(_ATL_MODULEW *pm, LPCOLESTR lpszIndex)
HRESULT WINAPI DllCanUnloadNow(void)
HRESULT WINAPI AtlModuleInit(_ATL_MODULEW *pM, _ATL_OBJMAP_ENTRYW *p, HINSTANCE h)
#define CLASS_E_CLASSNOTAVAILABLE
HRESULT WINAPI AtlModuleUpdateRegistryFromResourceD(_ATL_MODULEW *pM, LPCOLESTR lpszRes, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries, IRegistrar *pReg)
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLsizei GLuint * obj
_ATL_TERMFUNC_ELEM * m_pTermFuncs
#define sprintf(buf, format,...)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HRESULT WINAPI AtlModuleLoadTypeLib(_ATL_MODULEW *pM, LPCOLESTR lpszIndex, BSTR *pbstrPath, ITypeLib **ppTypeLib)
union _ATL_MODULEW_TAG::@3512 u
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *ppvObject)
static const IClassFactoryVtbl IRegistrarCFVtbl
static HRESULT WINAPI RegistrarCF_LockServer(IClassFactory *iface, BOOL lock)
HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE inst, const WCHAR *index)
DWORD WINAPI GetCurrentThreadId(VOID)
ATOM WINAPI AtlModuleRegisterWndClassInfoA(_ATL_MODULEA *pm, _ATL_WNDCLASSINFOA *wci, WNDPROC *pProc)
HRESULT WINAPI AtlModuleUnregisterServerEx(_ATL_MODULEW *pM, BOOL bUnRegTypeLib, const CLSID *pCLSID)
CRITICAL_SECTION m_csObjMap
static _ATL_OBJMAP_ENTRYW_V1 * get_objmap_entry(_ATL_MODULEW *mod, unsigned int index)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HINSTANCE m_hInstResource
HRESULT WINAPI AtlModuleRegisterClassObjects(_ATL_MODULEW *pM, DWORD dwClsContext, DWORD dwFlags)
struct _ATL_TERMFUNC_ELEM_TAG * pNext
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
CRITICAL_SECTION m_csTypeInfoHolder
CHAR m_szAutoName[sizeof("ATL:")+sizeof(void *) *2]
PSDBQUERYRESULT_VISTA PVOID * ppData
HRESULT WINAPI AtlUpdateRegistryFromResourceD(HINSTANCE inst, LPCOLESTR res, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries, IRegistrar *pReg)
HRESULT WINAPI AtlModuleRegisterServer(_ATL_MODULEW *pM, BOOL bRegTypeLib, const CLSID *clsid)
HRESULT __wine_unregister_resources(HMODULE module) DECLSPEC_HIDDEN
static ULONG WINAPI RegistrarCF_Release(IClassFactory *iface)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
HRESULT WINAPI AtlLoadTypeLib(HINSTANCE inst, LPCOLESTR lpszIndex, BSTR *pbstrPath, ITypeLib **ppTypeLib)
REFIID LPVOID * ppvObject
ATOM WINAPI RegisterClassExA(_In_ CONST WNDCLASSEXA *)
#define CLASS_E_NOAGGREGATION
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
void *WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister)
BOOL WINAPI GetClassInfoExA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSEXA)
void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void *pvObject)
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
struct _ATL_MODULEW_TAG _ATL_MODULEW
HRESULT WINAPI DllRegisterServer(void)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
_ATL_OBJMAP_ENTRYW * m_pObjMap
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const struct _ATL_CATMAP_ENTRY *catmap, BOOL reg)
static HRESULT WINAPI RegistrarCF_CreateInstance(IClassFactory *iface, LPUNKNOWN pUnkOuter, REFIID riid, void **ppv)
#define MAKEINTRESOURCEW(i)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
const GUID IID_IClassFactory
#define IsEqualCLSID(rclsid1, rclsid2)
static IClassFactory RegistrarCF
#define HeapFree(x, y, z)
HRESULT WINAPI AtlModuleTerm(_ATL_MODULE *pM)