atl100: Added AtlWinModuleExtractCreateWndData implementation.

This commit is contained in:
Jacek Caban 2012-12-19 14:16:57 +01:00 committed by Alexandre Julliard
parent 8ca7a068f4
commit c0456aea76
3 changed files with 30 additions and 1 deletions

View File

@ -318,6 +318,34 @@ void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pM, _AtlCreateWndData
LeaveCriticalSection(&pM->m_csWindowCreate); LeaveCriticalSection(&pM->m_csWindowCreate);
} }
/***********************************************************************
* AtlWinModuleExtractCreateWndData [atl100.44]
*/
void* WINAPI AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE *winmod)
{
_AtlCreateWndData *iter, *prev = NULL;
DWORD thread_id;
TRACE("(%p)\n", winmod);
thread_id = GetCurrentThreadId();
EnterCriticalSection(&winmod->m_csWindowCreate);
for(iter = winmod->m_pCreateWndList; iter && iter->m_dwThreadID != thread_id; iter = iter->m_pNext)
prev = iter;
if(iter) {
if(prev)
prev->m_pNext = iter->m_pNext;
else
winmod->m_pCreateWndList = iter->m_pNext;
}
LeaveCriticalSection(&winmod->m_csWindowCreate);
return iter ? iter->m_pThis : NULL;
}
/*********************************************************************** /***********************************************************************
* AtlComModuleGetClassObject [atl100.15] * AtlComModuleGetClassObject [atl100.15]
*/ */

View File

@ -27,7 +27,7 @@
41 stdcall AtlAxAttachControl(ptr ptr ptr) 41 stdcall AtlAxAttachControl(ptr ptr ptr)
42 stdcall AtlAxWinInit() 42 stdcall AtlAxWinInit()
43 stdcall AtlWinModuleAddCreateWndData(ptr ptr ptr) 43 stdcall AtlWinModuleAddCreateWndData(ptr ptr ptr)
44 stub AtlWinModuleExtractCreateWndData 44 stdcall AtlWinModuleExtractCreateWndData(ptr)
45 stub AtlWinModuleRegisterWndClassInfoW 45 stub AtlWinModuleRegisterWndClassInfoW
46 stub AtlWinModuleRegisterWndClassInfoA 46 stub AtlWinModuleRegisterWndClassInfoA
47 stdcall AtlAxGetControl(long ptr) 47 stdcall AtlAxGetControl(long ptr)

View File

@ -223,6 +223,7 @@ HRESULT WINAPI AtlMarshalPtrInProc(IUnknown *pUnk, const IID *iid, IStream **ppS
void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject); void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject);
HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE*); HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE*);
void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE*,_AtlCreateWndData*,void*); void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE*,_AtlCreateWndData*,void*);
void* WINAPI AtlWinModuleExtractCreateWndData(_ATL_WIN_MODULE*);
HRESULT WINAPI AtlModuleAddTermFunc(_ATL_MODULE *pM, _ATL_TERMFUNC *pFunc, DWORD_PTR dw); HRESULT WINAPI AtlModuleAddTermFunc(_ATL_MODULE *pM, _ATL_TERMFUNC *pFunc, DWORD_PTR dw);
void WINAPI AtlCallTermFunc(_ATL_MODULE*); void WINAPI AtlCallTermFunc(_ATL_MODULE*);
void* WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM); void* WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM);