[ros-diffs] [jimtabor] 56403: - Fix message regressions from 54637.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Tue Apr 24 02:29:09 UTC 2012


Author: jimtabor
Date: Tue Apr 24 02:29:07 2012
New Revision: 56403

URL: http://svn.reactos.org/svn/reactos?rev=56403&view=rev
Log:
- Fix message regressions from 54637.

Modified:
    trunk/reactos/win32ss/user/ntuser/message.c

Modified: trunk/reactos/win32ss/user/ntuser/message.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/message.c?rev=56403&r1=56402&r2=56403&view=diff
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/message.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/message.c [iso-8859-1] Tue Apr 24 02:29:07 2012
@@ -1448,17 +1448,13 @@
                         LPARAM lParam)
 {
     ULONG_PTR Result = 0;
-    if (!co_IntSendMessageWithCallBack( hWnd,
-                                        Msg,
-                                        wParam,
-                                        lParam,
-                                        NULL,
-                                        0,
-                                       &Result))
-    {
-       Result = ((ULONG_PTR)-1);
-    }
-    return Result;
+    return co_IntSendMessageWithCallBack( hWnd,
+                                          Msg,
+                                          wParam,
+                                          lParam,
+                                          NULL,
+                                          0,
+                                         &Result);
 }
 /* MSDN:
    If you send a message in the range below WM_USER to the asynchronous message
@@ -1507,6 +1503,15 @@
         RETURN(FALSE);
     }
 
+    if (Msg & 0x80000000 &&
+        Window->head.pti->MessageQueue == Win32Thread->MessageQueue)
+    {
+       ERR("SMWCB: Internal Message!\n");
+       Result = (ULONG_PTR)handle_internal_message( Window, Msg, wParam, lParam );
+       if (uResult) *uResult = Result;
+       RETURN( TRUE);
+    }
+
     /* See if this message type is present in the table */
     MsgMemoryEntry = FindMsgMemory(Msg);
     if (NULL == MsgMemoryEntry)
@@ -1532,14 +1537,6 @@
             UnpackParam(lParamPacked, Msg, wParam, lParam, FALSE);
             /* Never send messages to exiting threads */
             RETURN(FALSE);
-        }
-
-        if (Msg & 0x80000000)
-        {
-           ERR("SMWCB: Internal Message!\n");
-           Result = (ULONG_PTR)handle_internal_message( Window, Msg, wParam, lParam );
-           if (uResult) *uResult = Result;
-           RETURN( TRUE);
         }
 
         IntCallWndProc( Window, hWnd, Msg, wParam, lParam);
@@ -1784,7 +1781,6 @@
     else
     {
         Ret = co_IntSendMessageNoWait( hWnd, Msg, wParam, lParam);
-        if (-1 == (int) Ret || !Ret) Ret = FALSE;
     }
     return Ret;
 }




More information about the Ros-diffs mailing list