user32: DefMDIChildProc sends WM_MDINEXT with active child handle.

Dylan Smith dylan.ah.smith at gmail.com
Tue Jul 20 16:54:15 CDT 2010


A NULL handle is documented as meaning the active child, but some
applications expect the actual handle to be sent to them.

I tested the behaviour using a modified winefile that subclasses the mdi
client window to print the value DefMDIChildProc sends.
---
 dlls/user32/mdi.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c
index 631d477..d382eb7 100644
--- a/dlls/user32/mdi.c
+++ b/dlls/user32/mdi.c
@@ -1494,10 +1494,10 @@ LRESULT WINAPI DefMDIChildProcW( HWND hwnd, UINT message,
                 return SendMessageW( GetParent(client), message, wParam, lParam);
             break;
         case SC_NEXTWINDOW:
-            SendMessageW( client, WM_MDINEXT, 0, 0);
+            SendMessageW( client, WM_MDINEXT, (WPARAM)ci->hwndActiveChild, 0);
             return 0;
         case SC_PREVWINDOW:
-            SendMessageW( client, WM_MDINEXT, 0, 1);
+            SendMessageW( client, WM_MDINEXT, (WPARAM)ci->hwndActiveChild, 1);
             return 0;
         }
         break;
-- 
1.7.0.4



More information about the wine-patches mailing list