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