Jacek Caban : atl100: Added AtlWaitWithMessageLoop implementation.
Alexandre Julliard
julliard at winehq.org
Thu Jan 10 13:36:12 CST 2013
Module: wine
Branch: master
Commit: 0c67e653c0265803c3abd3bcb4bdb1316a9b70d1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0c67e653c0265803c3abd3bcb4bdb1316a9b70d1
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Jan 10 13:27:05 2013 +0100
atl100: Added AtlWaitWithMessageLoop implementation.
---
dlls/atl/atl.spec | 2 +-
dlls/atl100/atl.c | 28 ++++++++++++++++++++++++++++
dlls/atl100/atl100.spec | 2 +-
dlls/atl80/atl80.spec | 2 +-
include/atlbase.h | 1 +
5 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/dlls/atl/atl.spec b/dlls/atl/atl.spec
index 47ed135..cb071f5 100644
--- a/dlls/atl/atl.spec
+++ b/dlls/atl/atl.spec
@@ -16,7 +16,7 @@
21 stdcall AtlModuleTerm(ptr)
22 stdcall AtlModuleUnregisterServer(ptr ptr)
23 stdcall AtlModuleUpdateRegistryFromResourceD(ptr wstr long ptr ptr)
-24 stub AtlWaitWithMessageLoop
+24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop
25 stub AtlSetErrorInfo
26 stdcall AtlCreateTargetDC(long ptr) atl100.AtlCreateTargetDC
27 stdcall AtlHiMetricToPixel(ptr ptr) atl100.AtlHiMetricToPixel
diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c
index 61477ae..099513a 100644
--- a/dlls/atl100/atl.c
+++ b/dlls/atl100/atl.c
@@ -518,6 +518,34 @@ HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const struct _AT
}
/***********************************************************************
+ * AtlWaitWithMessageLoop [atl100.24]
+ */
+BOOL WINAPI AtlWaitWithMessageLoop(HANDLE handle)
+{
+ MSG msg;
+ DWORD res;
+
+ TRACE("(%p)\n", handle);
+
+ while(1) {
+ res = MsgWaitForMultipleObjects(1, &handle, FALSE, INFINITE, QS_ALLINPUT);
+ switch(res) {
+ case WAIT_OBJECT_0:
+ return TRUE;
+ case WAIT_OBJECT_0+1:
+ if(GetMessageW(&msg, NULL, 0, 0) < 0)
+ return FALSE;
+
+ TranslateMessage(&msg);
+ DispatchMessageW(&msg);
+ break;
+ default:
+ return FALSE;
+ }
+ }
+}
+
+/***********************************************************************
* AtlGetVersion [atl100.@]
*/
DWORD WINAPI AtlGetVersion(void *pReserved)
diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec
index 0c27070..b30b839 100644
--- a/dlls/atl100/atl100.spec
+++ b/dlls/atl100/atl100.spec
@@ -8,7 +8,7 @@
20 stub AtlComModuleRevokeClassObjects
22 stub AtlComModuleUnregisterServer
23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr)
-24 stub AtlWaitWithMessageLoop
+24 stdcall AtlWaitWithMessageLoop(long)
25 stub AtlSetErrorInfo
26 stdcall AtlCreateTargetDC(long ptr)
27 stdcall AtlHiMetricToPixel(ptr ptr)
diff --git a/dlls/atl80/atl80.spec b/dlls/atl80/atl80.spec
index 5c5967e..7719257 100644
--- a/dlls/atl80/atl80.spec
+++ b/dlls/atl80/atl80.spec
@@ -10,7 +10,7 @@
20 stub AtlComModuleRevokeClassObjects
22 stub AtlComModuleUnregisterServer
23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD
-24 stub AtlWaitWithMessageLoop
+24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop
25 stub AtlSetErrorInfo
26 stdcall AtlCreateTargetDC(long ptr) atl100.AtlCreateTargetDC
27 stdcall AtlHiMetricToPixel(ptr ptr) atl100.AtlHiMetricToPixel
diff --git a/include/atlbase.h b/include/atlbase.h
index 39c3741..d0dd96c 100644
--- a/include/atlbase.h
+++ b/include/atlbase.h
@@ -255,5 +255,6 @@ HRESULT WINAPI AtlLoadTypeLib(HINSTANCE,LPCOLESTR,BSTR*,ITypeLib**);
HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE,LPCOLESTR);
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID,const struct _ATL_CATMAP_ENTRY*,BOOL);
HRESULT WINAPI AtlComModuleGetClassObject(_ATL_COM_MODULE*,REFCLSID,REFIID,void**);
+BOOL WINAPI AtlWaitWithMessageLoop(HANDLE);
#endif /* __WINE_ATLBASE_H__ */
More information about the wine-cvs
mailing list