Alexandre Julliard : winmm: Use PeekMessageW instead of UserYield.

Alexandre Julliard julliard at winehq.org
Fri Nov 13 09:37:01 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Nov 12 21:52:55 2009 +0100

winmm: Use PeekMessageW instead of UserYield.

---

 dlls/winmm/mci.c |   23 ++++-------------------
 1 files changed, 4 insertions(+), 19 deletions(-)

diff --git a/dlls/winmm/mci.c b/dlls/winmm/mci.c
index 82b1de1..9198f87 100644
--- a/dlls/winmm/mci.c
+++ b/dlls/winmm/mci.c
@@ -2131,37 +2131,21 @@ UINT WINAPI mciGetDeviceIDW(LPCWSTR lpwstrName)
     return MCI_GetDriverFromString(lpwstrName); 
 }
 
-/******************************************************************
- *		MyUserYield
- *
- * Internal wrapper to call USER.UserYield16 (in fact through a Wine only export from USER32).
- */
-static void MyUserYield(void)
-{
-    HMODULE mod = GetModuleHandleA( "user32.dll" );
-    if (mod)
-    {
-        FARPROC proc = GetProcAddress( mod, "UserYield16" );
-        if (proc) proc();
-    }
-}
-
 /**************************************************************************
  * 				MCI_DefYieldProc	       	[internal]
  */
 static UINT WINAPI MCI_DefYieldProc(MCIDEVICEID wDevID, DWORD data)
 {
     INT16	ret;
+    MSG		msg;
 
     TRACE("(0x%04x, 0x%08x)\n", wDevID, data);
 
     if ((HIWORD(data) != 0 && HWND_16(GetActiveWindow()) != HIWORD(data)) ||
 	(GetAsyncKeyState(LOWORD(data)) & 1) == 0) {
-	MyUserYield();
+        PeekMessageW(&msg, 0, 0, 0, PM_REMOVE | PM_QS_SENDMESSAGE);
 	ret = 0;
     } else {
-	MSG		msg;
-
 	msg.hwnd = HWND_32(HIWORD(data));
 	while (!PeekMessageW(&msg, msg.hwnd, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE));
 	ret = -1;
@@ -2263,7 +2247,8 @@ UINT WINAPI mciDriverYield(MCIDEVICEID uDeviceID)
     TRACE("(%04x)\n", uDeviceID);
 
     if (!(wmd = MCI_GetDriver(uDeviceID)) || !wmd->lpfnYieldProc) {
-	MyUserYield();
+        MSG msg;
+        PeekMessageW(&msg, 0, 0, 0, PM_REMOVE | PM_QS_SENDMESSAGE);
     } else {
 	ret = wmd->lpfnYieldProc(uDeviceID, wmd->dwYieldData);
     }




More information about the wine-cvs mailing list