First implementation of the Advanced Template Library, with just a few
functions implemented.
This commit is contained in:
parent
680e200c75
commit
4bd374fa07
|
@ -1508,6 +1508,7 @@ dlls/Makefile
|
||||||
dlls/advapi32/Makefile
|
dlls/advapi32/Makefile
|
||||||
dlls/advapi32/tests/Makefile
|
dlls/advapi32/tests/Makefile
|
||||||
dlls/amstream/Makefile
|
dlls/amstream/Makefile
|
||||||
|
dlls/atl/Makefile
|
||||||
dlls/avicap32/Makefile
|
dlls/avicap32/Makefile
|
||||||
dlls/avifil32/Makefile
|
dlls/avifil32/Makefile
|
||||||
dlls/cabinet/Makefile
|
dlls/cabinet/Makefile
|
||||||
|
|
|
@ -18,6 +18,7 @@ EXTRADIRS = @GLU32FILES@ @GLUT32FILES@ @OPENGLFILES@ @XFILES@
|
||||||
BASEDIRS = \
|
BASEDIRS = \
|
||||||
advapi32 \
|
advapi32 \
|
||||||
amstream \
|
amstream \
|
||||||
|
atl \
|
||||||
avicap32 \
|
avicap32 \
|
||||||
avifil32 \
|
avifil32 \
|
||||||
cabinet \
|
cabinet \
|
||||||
|
@ -237,6 +238,7 @@ SYMLINKS_SO = \
|
||||||
@WIN16_FILES@ \
|
@WIN16_FILES@ \
|
||||||
advapi32.dll.so \
|
advapi32.dll.so \
|
||||||
amstream.dll.so \
|
amstream.dll.so \
|
||||||
|
atl.dll.so \
|
||||||
avicap32.dll.so \
|
avicap32.dll.so \
|
||||||
avifil32.dll.so \
|
avifil32.dll.so \
|
||||||
cabinet.dll.so \
|
cabinet.dll.so \
|
||||||
|
@ -400,6 +402,9 @@ advapi32.dll.so: advapi32/advapi32.dll.so
|
||||||
amstream.dll.so: amstream/amstream.dll.so
|
amstream.dll.so: amstream/amstream.dll.so
|
||||||
$(RM) $@ && $(LN_S) amstream/amstream.dll.so $@
|
$(RM) $@ && $(LN_S) amstream/amstream.dll.so $@
|
||||||
|
|
||||||
|
atl.dll.so: atl/atl.dll.so
|
||||||
|
$(RM) $@ && $(LN_S) atl/atl.dll.so $@
|
||||||
|
|
||||||
avicap32.dll.so: avicap32/avicap32.dll.so
|
avicap32.dll.so: avicap32/avicap32.dll.so
|
||||||
$(RM) $@ && $(LN_S) avicap32/avicap32.dll.so $@
|
$(RM) $@ && $(LN_S) avicap32/avicap32.dll.so $@
|
||||||
|
|
||||||
|
@ -945,6 +950,7 @@ libuuid.a: uuid/libuuid.a
|
||||||
IMPORT_LIBS = \
|
IMPORT_LIBS = \
|
||||||
libadvapi32 \
|
libadvapi32 \
|
||||||
libamstream \
|
libamstream \
|
||||||
|
libatl \
|
||||||
libavicap32 \
|
libavicap32 \
|
||||||
libavifil32 \
|
libavifil32 \
|
||||||
libcabinet \
|
libcabinet \
|
||||||
|
@ -1084,6 +1090,11 @@ libamstream.def: amstream/amstream.spec.def
|
||||||
libamstream.a: amstream/amstream.spec.def
|
libamstream.a: amstream/amstream.spec.def
|
||||||
$(DLLTOOL) -k -l $@ -d amstream/amstream.spec.def
|
$(DLLTOOL) -k -l $@ -d amstream/amstream.spec.def
|
||||||
|
|
||||||
|
libatl.def: atl/atl.spec.def
|
||||||
|
$(RM) $@ && $(LN_S) atl/atl.spec.def $@
|
||||||
|
libatl.a: atl/atl.spec.def
|
||||||
|
$(DLLTOOL) -k -l $@ -d atl/atl.spec.def
|
||||||
|
|
||||||
libavicap32.def: avicap32/avicap32.spec.def
|
libavicap32.def: avicap32/avicap32.spec.def
|
||||||
$(RM) $@ && $(LN_S) avicap32/avicap32.spec.def $@
|
$(RM) $@ && $(LN_S) avicap32/avicap32.spec.def $@
|
||||||
libavicap32.a: avicap32/avicap32.spec.def
|
libavicap32.a: avicap32/avicap32.spec.def
|
||||||
|
@ -1681,6 +1692,7 @@ libx11drv.a: x11drv/x11drv.spec.def
|
||||||
|
|
||||||
advapi32/advapi32.spec.def: $(WINEBUILD)
|
advapi32/advapi32.spec.def: $(WINEBUILD)
|
||||||
amstream/amstream.spec.def: $(WINEBUILD)
|
amstream/amstream.spec.def: $(WINEBUILD)
|
||||||
|
atl/atl.spec.def: $(WINEBUILD)
|
||||||
avicap32/avicap32.spec.def: $(WINEBUILD)
|
avicap32/avicap32.spec.def: $(WINEBUILD)
|
||||||
avifil32/avifil32.spec.def: $(WINEBUILD)
|
avifil32/avifil32.spec.def: $(WINEBUILD)
|
||||||
cabinet/cabinet.spec.def: $(WINEBUILD)
|
cabinet/cabinet.spec.def: $(WINEBUILD)
|
||||||
|
@ -1808,6 +1820,7 @@ $(INSTALLSUBDIRS:%=%/__install__): $(ALL_IMPORT_LIBS)
|
||||||
|
|
||||||
advapi32/advapi32.dll.so: advapi32
|
advapi32/advapi32.dll.so: advapi32
|
||||||
amstream/amstream.dll.so: amstream
|
amstream/amstream.dll.so: amstream
|
||||||
|
atl/atl.dll.so: atl
|
||||||
avicap32/avicap32.dll.so: avicap32
|
avicap32/avicap32.dll.so: avicap32
|
||||||
avifil32/avifil32.dll.so: avifil32
|
avifil32/avifil32.dll.so: avifil32
|
||||||
cabinet/cabinet.dll.so: cabinet
|
cabinet/cabinet.dll.so: cabinet
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Makefile
|
||||||
|
atl.dll.dbg.c
|
||||||
|
atl.spec.def
|
|
@ -0,0 +1,14 @@
|
||||||
|
TOPSRCDIR = @top_srcdir@
|
||||||
|
TOPOBJDIR = ../..
|
||||||
|
SRCDIR = @srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
MODULE = atl.dll
|
||||||
|
IMPORTS = ole32 kernel32
|
||||||
|
EXTRALIBS = -luuid
|
||||||
|
|
||||||
|
C_SRCS = \
|
||||||
|
atl_main.c
|
||||||
|
|
||||||
|
@MAKE_DLL_RULES@
|
||||||
|
|
||||||
|
### Dependencies:
|
|
@ -0,0 +1,52 @@
|
||||||
|
1 stub DllCanUnloadNow
|
||||||
|
2 stub DllGetClassObject
|
||||||
|
3 stub DllRegisterServer
|
||||||
|
4 stub DllUnregisterServer
|
||||||
|
10 stub AtlAdvise
|
||||||
|
11 stub AtlUnadvise
|
||||||
|
12 stub AtlFreeMarshalStream
|
||||||
|
13 stub AtlMarshalPtrInProc
|
||||||
|
14 stub AtlUnmarshalPtr
|
||||||
|
15 stub AtlModuleGetClassObject
|
||||||
|
16 stdcall AtlModuleInit(ptr long long)
|
||||||
|
17 stdcall AtlModuleRegisterClassObjects(ptr long long)
|
||||||
|
18 stub AtlModuleRegisterServer
|
||||||
|
19 stub AtlModuleRegisterTypeLib
|
||||||
|
20 stub AtlModuleRevokeClassObjects
|
||||||
|
21 stub AtlModuleTerm
|
||||||
|
22 stub AtlModuleUnregisterServer
|
||||||
|
23 stub AtlModuleUpdateRegistryFromResourceD
|
||||||
|
24 stub AtlWaitWithMessageLoop
|
||||||
|
25 stub AtlSetErrorInfo
|
||||||
|
26 stub AtlCreateTargetDC
|
||||||
|
27 stub AtlHiMetricToPixel
|
||||||
|
28 stub AtlPixelToHiMetric
|
||||||
|
29 stub AtlDevModeW2A
|
||||||
|
30 stub AtlComPtrAssign
|
||||||
|
31 stub AtlComQIPtrAssign
|
||||||
|
32 stdcall AtlInternalQueryInterface(ptr ptr ptr ptr)
|
||||||
|
34 stub AtlGetVersion
|
||||||
|
35 stub AtlAxDialogBoxW
|
||||||
|
36 stub AtlAxDialogBoxA
|
||||||
|
37 stub AtlAxCreateDialogW
|
||||||
|
38 stub AtlAxCreateDialogA
|
||||||
|
39 stub AtlAxCreateControl
|
||||||
|
40 stub AtlAxCreateControlEx
|
||||||
|
41 stub AtlAxAttachControl
|
||||||
|
42 stub AtlAxWinInit
|
||||||
|
43 stub AtlModuleAddCreateWndData
|
||||||
|
44 stub AtlModuleExtractCreateWndData
|
||||||
|
45 stub AtlModuleRegisterWndClassInfoW
|
||||||
|
46 stub AtlModuleRegisterWndClassInfoA
|
||||||
|
47 stub AtlAxGetControl
|
||||||
|
48 stub AtlAxGetHost
|
||||||
|
49 stub AtlRegisterClassCategoriesHelper
|
||||||
|
50 stub AtlIPersistStreamInit_Load
|
||||||
|
51 stub AtlIPersistStreamInit_Save
|
||||||
|
52 stub AtlIPersistPropertyBag_Load
|
||||||
|
53 stub AtlIPersistPropertyBag_Save
|
||||||
|
54 stub AtlGetObjectSourceInterface
|
||||||
|
55 stub AtlModuleUnRegisterTypeLib
|
||||||
|
56 stub AtlModuleLoadTypeLib
|
||||||
|
57 stub AtlModuleUnregisterServerEx
|
||||||
|
58 stub AtlModuleAddTermFunc
|
|
@ -0,0 +1,146 @@
|
||||||
|
/*
|
||||||
|
* Implementation of Active Template Library (atl.dll)
|
||||||
|
*
|
||||||
|
* Copyright 2004 Aric Stewart for CodeWeavers
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "windef.h"
|
||||||
|
#include "winbase.h"
|
||||||
|
#include "winerror.h"
|
||||||
|
#include "winuser.h"
|
||||||
|
#include "wine/debug.h"
|
||||||
|
#include "objbase.h"
|
||||||
|
#include "objidl.h"
|
||||||
|
#include "ole2.h"
|
||||||
|
#include "atlbase.h"
|
||||||
|
|
||||||
|
WINE_DEFAULT_DEBUG_CHANNEL(atl);
|
||||||
|
|
||||||
|
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
|
{
|
||||||
|
TRACE("(0x%p, %ld, %p)\n",hinstDLL,fdwReason,lpvReserved);
|
||||||
|
|
||||||
|
if (fdwReason == DLL_PROCESS_ATTACH) DisableThreadLibraryCalls(hinstDLL);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI AtlModuleInit(_ATL_MODULEA* pM, _ATL_OBJMAP_ENTRYA* p, HINSTANCE h)
|
||||||
|
{
|
||||||
|
INT i;
|
||||||
|
|
||||||
|
FIXME("SEMI-STUB (%p %p %p)\n",pM,p,h);
|
||||||
|
|
||||||
|
memset(pM,0,sizeof(_ATL_MODULEA));
|
||||||
|
pM->cbSize = sizeof(_ATL_MODULEA);
|
||||||
|
pM->m_hInst = h;
|
||||||
|
pM->m_hInstResource = h;
|
||||||
|
pM->m_hInstTypeLib = h;
|
||||||
|
pM->m_pObjMap = p;
|
||||||
|
pM->m_hHeap = GetProcessHeap();
|
||||||
|
|
||||||
|
/* call mains */
|
||||||
|
i = 0;
|
||||||
|
while (pM->m_pObjMap[i].pclsid != NULL)
|
||||||
|
{
|
||||||
|
TRACE("Initializing object %i\n",i);
|
||||||
|
p[i].pfnObjectMain(TRUE);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI AtlModuleRegisterClassObjects(_ATL_MODULEA *pM, DWORD dwClsContext,
|
||||||
|
DWORD dwFlags)
|
||||||
|
{
|
||||||
|
HRESULT hRes = S_OK;
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
TRACE("(%p %li %li)\n",pM, dwClsContext, dwFlags);
|
||||||
|
|
||||||
|
if (pM == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
while(pM->m_pObjMap[i].pclsid != NULL)
|
||||||
|
{
|
||||||
|
IUnknown* pUnknown;
|
||||||
|
_ATL_OBJMAP_ENTRYA *obj = &(pM->m_pObjMap[i]);
|
||||||
|
HRESULT rc;
|
||||||
|
|
||||||
|
TRACE("Registering object %i\n",i);
|
||||||
|
if (obj->pfnGetClassObject)
|
||||||
|
{
|
||||||
|
rc = obj->pfnGetClassObject(obj->pfnCreateInstance, &IID_IUnknown,
|
||||||
|
(LPVOID*)&pUnknown);
|
||||||
|
if (SUCCEEDED (rc) )
|
||||||
|
{
|
||||||
|
CoRegisterClassObject(obj->pclsid, pUnknown, dwClsContext,
|
||||||
|
dwFlags, &obj->dwRegister);
|
||||||
|
if (pUnknown)
|
||||||
|
IUnknown_Release(pUnknown);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return hRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI AtlInternalQueryInterface(LPVOID this, const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, LPVOID* ppvObject)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
HRESULT rc = E_NOINTERFACE;
|
||||||
|
TRACE("(%p, %p, %p, %p)\n",this, pEntries, iid, ppvObject);
|
||||||
|
|
||||||
|
if (IsEqualGUID(iid,&IID_IUnknown))
|
||||||
|
{
|
||||||
|
TRACE("Returning IUnknown\n");
|
||||||
|
*ppvObject = this;
|
||||||
|
IUnknown_AddRef((IUnknown*)this);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (pEntries[i].pFunc != 0)
|
||||||
|
{
|
||||||
|
TRACE("Trying entry %i (%p %li %p)\n",i,pEntries[i].piid,
|
||||||
|
pEntries[i].dw, pEntries[i].pFunc);
|
||||||
|
|
||||||
|
if (IsEqualGUID(iid,pEntries[i].piid))
|
||||||
|
{
|
||||||
|
TRACE("MATCH\n");
|
||||||
|
if (pEntries[i].pFunc == (_ATL_CREATORARGFUNC*)1)
|
||||||
|
{
|
||||||
|
TRACE("Offset\n");
|
||||||
|
*ppvObject = ((LPSTR)this+pEntries[i].dw);
|
||||||
|
IUnknown_AddRef((IUnknown*)this);
|
||||||
|
rc = S_OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TRACE("Function\n");
|
||||||
|
rc = pEntries[i].pFunc(this, iid, ppvObject,0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
TRACE("Done returning (0x%lx)\n",rc);
|
||||||
|
return rc;
|
||||||
|
}
|
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* Implementation of the Active Template Library (atl.dll)
|
||||||
|
*
|
||||||
|
* Copyright 2004 Aric Stewart for CodeWeavers
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef HRESULT (WINAPI _ATL_CREATORFUNC)(void* pv, REFIID riid, LPVOID* ppv);
|
||||||
|
typedef HRESULT (WINAPI _ATL_CREATORARGFUNC)(void* pv, REFIID riid, LPVOID* ppv, DWORD dw);
|
||||||
|
typedef HRESULT (WINAPI _ATL_MODULEFUNC)(DWORD dw);
|
||||||
|
typedef LPCSTR (WINAPI _ATL_DESCRIPTIONFUNCA)();
|
||||||
|
typedef LPCWSTR (WINAPI _ATL_DESCRIPTIONFUNCW)();
|
||||||
|
typedef const struct _ATL_CATMAP_ENTRY* (_ATL_CATMAPFUNC)();
|
||||||
|
typedef void (WINAPI _ATL_TERMFUNC)(DWORD dw);
|
||||||
|
|
||||||
|
typedef struct _ATL_OBJMAP_ENTRYA_TAG
|
||||||
|
{
|
||||||
|
const CLSID* pclsid;
|
||||||
|
HRESULT (WINAPI *pfnUpdateRegistry)(BOOL bRegister);
|
||||||
|
_ATL_CREATORFUNC* pfnGetClassObject;
|
||||||
|
_ATL_CREATORFUNC* pfnCreateInstance;
|
||||||
|
IUnknown* pCF;
|
||||||
|
DWORD dwRegister;
|
||||||
|
_ATL_DESCRIPTIONFUNCA* pfnGetObjectDescription;
|
||||||
|
_ATL_CATMAPFUNC* pfnGetCategoryMap;
|
||||||
|
void (WINAPI *pfnObjectMain)(BOOL bStarting);
|
||||||
|
}_ATL_OBJMAP_ENTRYA;
|
||||||
|
|
||||||
|
typedef struct _ATL_OBJMAP_ENTRYW_TAG
|
||||||
|
{
|
||||||
|
const CLSID* pclsid;
|
||||||
|
HRESULT (WINAPI *pfnUpdateRegistry)(BOOL bRegister);
|
||||||
|
_ATL_CREATORFUNC* pfnGetClassObject;
|
||||||
|
_ATL_CREATORFUNC* pfnCreateInstance;
|
||||||
|
IUnknown* pCF;
|
||||||
|
DWORD dwRegister;
|
||||||
|
_ATL_DESCRIPTIONFUNCW* pfnGetObjectDescription;
|
||||||
|
_ATL_CATMAPFUNC* pfnGetCategoryMap;
|
||||||
|
void (WINAPI *pfnObjectMain)(BOOL bStarting);
|
||||||
|
} _ATL_OBJMAP_ENTRYW;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _ATL_TERMFUNC_ELEM_TAG
|
||||||
|
{
|
||||||
|
_ATL_TERMFUNC* pFunc;
|
||||||
|
DWORD dw;
|
||||||
|
struct _ATL_TERMFUNC_ELEM_TAG* pNext;
|
||||||
|
} _ATL_TERMFUNC_ELEM;
|
||||||
|
|
||||||
|
typedef struct _AtlCreateWndData_TAG
|
||||||
|
{
|
||||||
|
void* m_pThis;
|
||||||
|
DWORD m_dwThreadID;
|
||||||
|
struct _AtlCreateWndData_TAG* m_pNext;
|
||||||
|
} _AtlCreateWndData;
|
||||||
|
|
||||||
|
typedef struct _ATL_MODULEA_TAG
|
||||||
|
{
|
||||||
|
UINT cbSize;
|
||||||
|
HINSTANCE m_hInst;
|
||||||
|
HINSTANCE m_hInstResource;
|
||||||
|
HINSTANCE m_hInstTypeLib;
|
||||||
|
_ATL_OBJMAP_ENTRYA* m_pObjMap;
|
||||||
|
LONG m_nLockCnt;
|
||||||
|
HANDLE m_hHeap;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
CRITICAL_SECTION m_csTypeInfoHolder;
|
||||||
|
CRITICAL_SECTION m_csStaticDataInit;
|
||||||
|
} u;
|
||||||
|
CRITICAL_SECTION m_csWindowCreate;
|
||||||
|
CRITICAL_SECTION m_csObjMap;
|
||||||
|
|
||||||
|
DWORD dwAtlBuildVer;
|
||||||
|
_AtlCreateWndData* m_pCreateWndList;
|
||||||
|
BOOL m_bDestroyHeap;
|
||||||
|
GUID* pguidVer;
|
||||||
|
DWORD m_dwHeaps;
|
||||||
|
HANDLE* m_phHeaps;
|
||||||
|
int m_nHeap;
|
||||||
|
_ATL_TERMFUNC_ELEM* m_pTermFuncs;
|
||||||
|
} _ATL_MODULEA;
|
||||||
|
|
||||||
|
typedef struct _ATL_MODULEW_TAG
|
||||||
|
{
|
||||||
|
UINT cbSize;
|
||||||
|
HINSTANCE m_hInst;
|
||||||
|
HINSTANCE m_hInstResource;
|
||||||
|
HINSTANCE m_hInstTypeLib;
|
||||||
|
_ATL_OBJMAP_ENTRYW* m_pObjMap;
|
||||||
|
LONG m_nLockCnt;
|
||||||
|
HANDLE m_hHeap;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
CRITICAL_SECTION m_csTypeInfoHolder;
|
||||||
|
CRITICAL_SECTION m_csStaticDataInit;
|
||||||
|
} u;
|
||||||
|
CRITICAL_SECTION m_csWindowCreate;
|
||||||
|
CRITICAL_SECTION m_csObjMap;
|
||||||
|
|
||||||
|
DWORD dwAtlBuildVer;
|
||||||
|
_AtlCreateWndData* m_pCreateWndList;
|
||||||
|
BOOL m_bDestroyHeap;
|
||||||
|
GUID* pguidVer;
|
||||||
|
DWORD m_dwHeaps;
|
||||||
|
HANDLE* m_phHeaps;
|
||||||
|
int m_nHeap;
|
||||||
|
_ATL_TERMFUNC_ELEM* m_pTermFuncs;
|
||||||
|
} _ATL_MODULEW;
|
||||||
|
|
||||||
|
typedef struct _ATL_INTMAP_ENTRY_TAG
|
||||||
|
{
|
||||||
|
const IID* piid;
|
||||||
|
DWORD dw;
|
||||||
|
_ATL_CREATORARGFUNC* pFunc;
|
||||||
|
} _ATL_INTMAP_ENTRY;
|
||||||
|
|
||||||
|
HRESULT WINAPI AtlModuleInit(_ATL_MODULEA* pM, _ATL_OBJMAP_ENTRYA* p, HINSTANCE h);
|
||||||
|
HRESULT WINAPI AtlModuleRegisterClassObjects(_ATL_MODULEA* pM, DWORD dwClsContext, DWORD dwFlags);
|
||||||
|
HRESULT WINAPI AtlModuleTerm(_ATL_MODULEA* pM);
|
||||||
|
HRESULT WINAPI AtlInternalQueryInterface(LPVOID pThis,
|
||||||
|
const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, LPVOID* ppvObject);
|
Loading…
Reference in New Issue