Module: wine Branch: master Commit: 0a0b2ff01983e040285028d3ec2987b75214d285 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0a0b2ff01983e040285028d3ec...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Dec 10 12:27:47 2012 +0100
atl100: Added AtlCallTermFunc implementation (based on AtlModuleTerm).
---
dlls/atl100/atl.c | 19 +++++++++++++++++++ dlls/atl100/atl100.spec | 2 +- dlls/atl80/atl80.spec | 2 +- include/atlbase.h | 1 + 4 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c index 69a6e9e..dd08867 100644 --- a/dlls/atl100/atl.c +++ b/dlls/atl100/atl.c @@ -246,6 +246,25 @@ HRESULT WINAPI AtlModuleAddTermFunc(_ATL_MODULE *pM, _ATL_TERMFUNC *pFunc, DWORD }
/*********************************************************************** + * AtlCallTermFunc [atl100.@] + */ +void WINAPI AtlCallTermFunc(_ATL_MODULE *pM) +{ + _ATL_TERMFUNC_ELEM *iter = pM->m_pTermFuncs, *tmp; + + TRACE("(%p)\n", pM); + + while(iter) { + iter->pFunc(iter->dw); + tmp = iter; + iter = iter->pNext; + HeapFree(GetProcessHeap(), 0, tmp); + } + + pM->m_pTermFuncs = NULL; +} + +/*********************************************************************** * AtlGetVersion [atl100.@] */ DWORD WINAPI AtlGetVersion(void *pReserved) diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec index 7ba8154..47e3c56 100644 --- a/dlls/atl100/atl100.spec +++ b/dlls/atl100/atl100.spec @@ -45,7 +45,7 @@ 61 stdcall AtlCreateRegistrar(ptr) 62 stub AtlWinModuleRegisterClassExW 63 stub AtlWinModuleRegisterClassExA -64 stub AtlCallTermFunc +64 stdcall AtlCallTermFunc(ptr) 65 stub AtlWinModuleInit 66 stub AtlWinModuleTerm 67 stub AtlSetPerUserRegistration diff --git a/dlls/atl80/atl80.spec b/dlls/atl80/atl80.spec index c674ed2..6756776 100644 --- a/dlls/atl80/atl80.spec +++ b/dlls/atl80/atl80.spec @@ -51,6 +51,6 @@ 61 stdcall AtlCreateRegistrar(ptr) atl100.AtlCreateRegistrar 62 stub AltWinModuleRegisterClassExW 63 stub AltWinModuleRegisterClassExA -64 stub AltCallTermFunc +64 stdcall AltCallTermFunc(ptr) atl100.AltCallTermFunc 65 stub AltWinModuleInit 66 stub AltWinModuleTerm diff --git a/include/atlbase.h b/include/atlbase.h index fbf1479..1e48f58 100644 --- a/include/atlbase.h +++ b/include/atlbase.h @@ -196,6 +196,7 @@ HRESULT WINAPI AtlInternalQueryInterface(void* pThis, const _ATL_INTMAP_ENTRY* p HRESULT WINAPI AtlMarshalPtrInProc(IUnknown *pUnk, const IID *iid, IStream **ppStream); void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject); HRESULT WINAPI AtlModuleAddTermFunc(_ATL_MODULE *pM, _ATL_TERMFUNC *pFunc, DWORD_PTR dw); +void WINAPI AtlCallTermFunc(_ATL_MODULE*); void* WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM); HRESULT WINAPI AtlModuleInit(_ATL_MODULEW* pM, _ATL_OBJMAP_ENTRYW* p, HINSTANCE h); HRESULT WINAPI AtlModuleLoadTypeLib(_ATL_MODULEW *pM, LPCOLESTR lpszIndex, BSTR *pbstrPath, ITypeLib **ppTypeLib);