| /* | |
| * 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 AtlModuleUnregisterServerEx(_ATL_MODULEA* pM, BOOL bUnRegTypeLib, const CLSID* pCLSID); | |
| HRESULT WINAPI AtlModuleTerm(_ATL_MODULEA* pM); | |
| HRESULT WINAPI AtlInternalQueryInterface(LPVOID pThis, | |
| const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, LPVOID* ppvObject); |