Module: wine Branch: master Commit: 147dbf63cdf9f3731ba1c0d30efc57a300bb559c URL: http://source.winehq.org/git/wine.git/?a=commit;h=147dbf63cdf9f3731ba1c0d30e...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Dec 12 14:56:11 2012 +0100
atl100: Added AtlWinModuleAddCreateWndData implementation (based on AtlModuleAddCreateWndData).
---
dlls/atl100/atl.c | 16 ++++++++++++++++ dlls/atl100/atl100.spec | 2 +- include/atlbase.h | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletions(-)
diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c index 7e273b7..bbea756 100644 --- a/dlls/atl100/atl.c +++ b/dlls/atl100/atl.c @@ -288,6 +288,22 @@ HRESULT WINAPI AtlLoadTypeLib(HINSTANCE inst, LPCOLESTR lpszIndex, }
/*********************************************************************** + * AtlWinModuleAddCreateWndData [atl100.43] + */ +void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE *pM, _AtlCreateWndData *pData, void *pvObject) +{ + TRACE("(%p, %p, %p)\n", pM, pData, pvObject); + + pData->m_pThis = pvObject; + pData->m_dwThreadID = GetCurrentThreadId(); + + EnterCriticalSection(&pM->m_csWindowCreate); + pData->m_pNext = pM->m_pCreateWndList; + pM->m_pCreateWndList = pData; + LeaveCriticalSection(&pM->m_csWindowCreate); +} + +/*********************************************************************** * AtlGetVersion [atl100.@] */ DWORD WINAPI AtlGetVersion(void *pReserved) diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec index ec8a858..2204187 100644 --- a/dlls/atl100/atl100.spec +++ b/dlls/atl100/atl100.spec @@ -26,7 +26,7 @@ 40 stdcall AtlAxCreateControlEx(ptr ptr ptr ptr ptr ptr ptr) 41 stdcall AtlAxAttachControl(ptr ptr ptr) 42 stdcall AtlAxWinInit() -43 stub AtlWinModuleAddCreateWndData +43 stdcall AtlWinModuleAddCreateWndData(ptr ptr ptr) 44 stub AtlWinModuleExtractCreateWndData 45 stub AtlWinModuleRegisterWndClassInfoW 46 stub AtlWinModuleRegisterWndClassInfoA diff --git a/include/atlbase.h b/include/atlbase.h index ce62474..140a227 100644 --- a/include/atlbase.h +++ b/include/atlbase.h @@ -160,6 +160,13 @@ typedef struct _ATL_MODULEW_TAG _ATL_TERMFUNC_ELEM* m_pTermFuncs; } _ATL_MODULEW;
+typedef struct +{ + void *m_aT; + int m_nSize; + int m_nAllocSize; +} CSimpleArray; + typedef struct _ATL_MODULE70 { UINT cbSize; @@ -168,10 +175,20 @@ typedef struct _ATL_MODULE70 CComCriticalSection m_csStaticDataInitAndTypeInfo; } _ATL_MODULE70;
+typedef struct _ATL_WIN_MODULE70 +{ + UINT cbSize; + CComCriticalSection m_csWindowCreate; + _AtlCreateWndData *m_pCreateWndList; + CSimpleArray /* <ATOM> */ m_rgWindowClassAtoms; +} _ATL_WIN_MODULE70; + #if _ATL_VER >= _ATL_VER_70 typedef _ATL_MODULE70 _ATL_MODULE; +typedef _ATL_WIN_MODULE70 _ATL_WIN_MODULE; #else typedef _ATL_MODULEW _ATL_MODULE; +typedef _ATL_MODULEW _ATL_WIN_MODULE; #endif
typedef struct _ATL_INTMAP_ENTRY_TAG @@ -195,6 +212,7 @@ HRESULT WINAPI AtlFreeMarshalStream(IStream *pStream); HRESULT WINAPI AtlInternalQueryInterface(void* pThis, const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, void** ppvObject); HRESULT WINAPI AtlMarshalPtrInProc(IUnknown *pUnk, const IID *iid, IStream **ppStream); void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject); +void WINAPI AtlWinModuleAddCreateWndData(_ATL_WIN_MODULE*,_AtlCreateWndData*,void*); HRESULT WINAPI AtlModuleAddTermFunc(_ATL_MODULE *pM, _ATL_TERMFUNC *pFunc, DWORD_PTR dw); void WINAPI AtlCallTermFunc(_ATL_MODULE*); void* WINAPI AtlModuleExtractCreateWndData(_ATL_MODULEW *pM);