Jacek Caban : atl100: Added AtlWinModuleAddCreateWndData implementation ( based on AtlModuleAddCreateWndData).

Alexandre Julliard julliard at winehq.org
Wed Dec 12 15:14:55 CST 2012


Module: wine
Branch: master
Commit: 147dbf63cdf9f3731ba1c0d30efc57a300bb559c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=147dbf63cdf9f3731ba1c0d30efc57a300bb559c

Author: Jacek Caban <jacek at 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);




More information about the wine-cvs mailing list