From a650ce110485f77e22aad235b8274989acd0e77a Mon Sep 17 00:00:00 2001
From: Jacek Caban <jacek@codeweavers.com>
Date: Tue, 18 Dec 2012 11:48:37 +0100
Subject: [PATCH] atl100: Added AtlWinModuleInit implementation.

---
 dlls/atl100/atl.c       | 15 +++++++++++++++
 dlls/atl100/atl100.spec |  2 +-
 include/atlbase.h       |  1 +
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c
index c0bc2ae12e4..bd3fbf1a1c6 100644
--- a/dlls/atl100/atl.c
+++ b/dlls/atl100/atl.c
@@ -287,6 +287,21 @@ HRESULT WINAPI AtlLoadTypeLib(HINSTANCE inst, LPCOLESTR lpszIndex,
     return S_OK;
 }
 
+/***********************************************************************
+ *           AtlWinModuleInit                          [atl100.65]
+ */
+HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE *winmod)
+{
+    TRACE("(%p\n", winmod);
+
+    if(winmod->cbSize != sizeof(*winmod))
+        return E_INVALIDARG;
+
+    InitializeCriticalSection(&winmod->m_csWindowCreate);
+    winmod->m_pCreateWndList = NULL;
+    return S_OK;
+}
+
 /***********************************************************************
  *           AtlWinModuleAddCreateWndData              [atl100.43]
  */
diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec
index 6c959d6c379..11cac7d536e 100644
--- a/dlls/atl100/atl100.spec
+++ b/dlls/atl100/atl100.spec
@@ -46,7 +46,7 @@
 62 stub AtlWinModuleRegisterClassExW
 63 stub AtlWinModuleRegisterClassExA
 64 stdcall AtlCallTermFunc(ptr)
-65 stub AtlWinModuleInit
+65 stdcall AtlWinModuleInit(ptr)
 66 stub AtlWinModuleTerm
 67 stub AtlSetPerUserRegistration
 68 stub AtlGetPerUserRegistration
diff --git a/include/atlbase.h b/include/atlbase.h
index 6c29ad9207a..95b1f2a3f46 100644
--- a/include/atlbase.h
+++ b/include/atlbase.h
@@ -221,6 +221,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);
+HRESULT WINAPI AtlWinModuleInit(_ATL_WIN_MODULE*);
 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*);
-- 
GitLab