This patch fixes the problem reported running SmartForms in bug 575 (http://bugs.codeweavers.com/show_bug.cgi?id=575). It also gets LogicWorks running (and probably any other 16-bit app that uses the SmartHeap memory management library). It turns out, SmartForms does not need NotifyRegister implemented to run (so far, at least). The problem is that when WaitMessage16 was called, it did not yield control to the other 16-bit threads. This patch fixes this problem in WaitMessage16. Modified Files: wine/dlls/user/user.exe.spec wine/dlls/user/msg16.c Change Log: Separated WaitMessage16 from WaitMessage and modified it to yield control to other 16-bit threads. License: LGPL X11 Josh Thielen
Index: wine/dlls/user/user.exe.spec =================================================================== RCS file: /home/wine/wine/dlls/user/user.exe.spec,v retrieving revision 1.1 diff -u -r1.1 user.exe.spec --- wine/dlls/user/user.exe.spec 26 Mar 2002 19:56:06 -0000 1.1 +++ wine/dlls/user/user.exe.spec 22 Jun 2002 03:50:01 -0000 @@ -116,7 +116,7 @@ 109 pascal16 PeekMessage(ptr word word word word) PeekMessage16 110 pascal16 PostMessage(word word word long) PostMessage16 111 pascal SendMessage(word word word long) SendMessage16 -112 pascal16 WaitMessage() WaitMessage +112 pascal16 WaitMessage() WaitMessage16 113 pascal16 TranslateMessage(ptr) TranslateMessage16 114 pascal DispatchMessage(ptr) DispatchMessage16 115 pascal16 ReplyMessage(long) ReplyMessage16 Index: wine/dlls/user/msg16.c =================================================================== RCS file: /home/wine/wine/dlls/user/msg16.c,v retrieving revision 1.8 diff -u -r1.8 msg16.c --- wine/dlls/user/msg16.c 9 Mar 2002 23:44:30 -0000 1.8 +++ wine/dlls/user/msg16.c 22 Jun 2002 03:50:02 -0000 @@ -229,6 +229,19 @@ return GetMessage32_16( (MSG32_16 *)msg, hwnd, first, last, FALSE ); } +/*********************************************************************** + * WaitMessage (USER.112) + */ +void WINAPI WaitMessage16() +{ + MSG16 msg; + + while(!PeekMessage16(&msg, 0, 0, 0, PM_NOREMOVE)) + { + ; + } + return; +} /*********************************************************************** * TranslateMessage32 (USER.821)