Patch to get SmartForms running (fixes bug 575?)

Joshua Thielen thielen at netprince.net
Sat Jun 22 00:01:46 CDT 2002


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


-------------- next part --------------
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)


More information about the wine-patches mailing list