atl: Implement AtlComPtrAssign.
According to MSDN AtlModuleInit should initialize the modules critical sections.
This commit is contained in:
parent
4d05f2444a
commit
9da8128e4f
|
@ -22,7 +22,7 @@
|
||||||
27 stub AtlHiMetricToPixel
|
27 stub AtlHiMetricToPixel
|
||||||
28 stub AtlPixelToHiMetric
|
28 stub AtlPixelToHiMetric
|
||||||
29 stub AtlDevModeW2A
|
29 stub AtlDevModeW2A
|
||||||
30 stub AtlComPtrAssign
|
30 stdcall AtlComPtrAssign(ptr ptr)
|
||||||
31 stub AtlComQIPtrAssign
|
31 stub AtlComQIPtrAssign
|
||||||
32 stdcall AtlInternalQueryInterface(ptr ptr ptr ptr)
|
32 stdcall AtlInternalQueryInterface(ptr ptr ptr ptr)
|
||||||
34 stub AtlGetVersion
|
34 stub AtlGetVersion
|
||||||
|
|
|
@ -73,6 +73,10 @@ HRESULT WINAPI AtlModuleInit(_ATL_MODULEA* pM, _ATL_OBJMAP_ENTRYA* p, HINSTANCE
|
||||||
pM->m_pObjMap = p;
|
pM->m_pObjMap = p;
|
||||||
pM->m_hHeap = GetProcessHeap();
|
pM->m_hHeap = GetProcessHeap();
|
||||||
|
|
||||||
|
InitializeCriticalSection(&pM->u.m_csTypeInfoHolder);
|
||||||
|
InitializeCriticalSection(&pM->m_csWindowCreate);
|
||||||
|
InitializeCriticalSection(&pM->m_csObjMap);
|
||||||
|
|
||||||
/* call mains */
|
/* call mains */
|
||||||
i = 0;
|
i = 0;
|
||||||
if (pM->m_pObjMap != NULL && size > ATLVer1Size)
|
if (pM->m_pObjMap != NULL && size > ATLVer1Size)
|
||||||
|
@ -181,6 +185,17 @@ BOOL WINAPI AtlAxWinInit(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
IUnknown* WINAPI AtlComPtrAssign(IUnknown** pp, IUnknown *p)
|
||||||
|
{
|
||||||
|
TRACE("(%p %p)\n", pp, p);
|
||||||
|
|
||||||
|
if (p) IUnknown_AddRef(p);
|
||||||
|
if (*pp) IUnknown_Release(*pp);
|
||||||
|
*pp = p;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
HRESULT WINAPI AtlInternalQueryInterface(LPVOID this, const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, LPVOID* ppvObject)
|
HRESULT WINAPI AtlInternalQueryInterface(LPVOID this, const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, LPVOID* ppvObject)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
Loading…
Reference in New Issue