Jacek Caban : atl100: Added AtlWinModuleExtractCreateWndData implementation .
Alexandre Julliard
julliard at winehq.org
Wed Dec 19 14:01:11 CST 2012
Module: wine
Branch: master
Commit: c0456aea76bcd8ce77d7c91dfc95a5ff8670e344
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c0456aea76bcd8ce77d7c91dfc95a5ff8670e344
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Dec 19 14:16:57 2012 +0100
atl100: Added AtlWinModuleExtractCreateWndData implementation.
---
dlls/atl100/atl.c | 28 ++++++++++++++++++++++++++++
dlls/atl100/atl100.spec | 2 +-
include/atlbase.h | 1 +
3 files changed, 30 insertions(+), 1 deletions(-)
diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c
index bd3fbf1..570fe5c 100644
--- a/dlls/atl100/atl.c
+++ b/dlls/atl100/atl.c
@@ -319,6 +319,34 @@ void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pM, _AtlCreateWndData
}
/***********************************************************************
+ * 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]
*/
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE *pm, REFCLSID rclsid, REFIID riid, void **ppv)
diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec
index 11cac7d..0c27070 100644
--- a/dlls/atl100/atl100.spec
+++ b/dlls/atl100/atl100.spec
@@ -27,7 +27,7 @@
41 stdcall AtlAxAttachControl(ptr ptr ptr)
42 stdcall AtlAxWinInit()
43 stdcall AtlWinModuleAddCreateWndData(ptr ptr ptr)
-44 stub AtlWinModuleExtractCreateWndData
+44 stdcall AtlWinModuleExtractCreateWndData(ptr)
45 stub AtlWinModuleRegisterWndClassInfoW
46 stub AtlWinModuleRegisterWndClassInfoA
47 stdcall AtlAxGetControl(long ptr)
diff --git a/include/atlbase.h b/include/atlbase.h
index 95b1f2a..831150d 100644
--- a/include/atlbase.h
+++ b/include/atlbase.h
@@ -223,6 +223,7 @@ HRESULT WINAPI AtlMarshalPtrInProc(IUnknown *pUnk, const IID *iid, IStream **ppS
void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject);
HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE*);
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);
void WINAPI AtlCallTermFunc(_ATL_MODULE*);
void* WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM);
More information about the wine-cvs
mailing list