[ros-diffs] [cwittich] 28037: fix broken condition in CallWindowProc

cwittich at svn.reactos.org cwittich at svn.reactos.org
Mon Jul 30 10:44:53 CEST 2007


Author: cwittich
Date: Mon Jul 30 12:44:52 2007
New Revision: 28037

URL: http://svn.reactos.org/svn/reactos?rev=28037&view=rev
Log:
fix broken condition in CallWindowProc

Modified:
    trunk/reactos/dll/win32/user32/windows/message.c

Modified: trunk/reactos/dll/win32/user32/windows/message.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/message.c?rev=28037&r1=28036&r2=28037&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/message.c (original)
+++ trunk/reactos/dll/win32/user32/windows/message.c Mon Jul 30 12:44:52 2007
@@ -1239,16 +1239,19 @@
   if (lpPrevWndFunc == NULL)
     lpPrevWndFunc = (WNDPROC)NtUserGetWindowLong(hWnd, GWLP_WNDPROC, TRUE);
 
-  if (!IsCallProcHandle(lpPrevWndFunc) ||
-      !NtUserDereferenceWndProcHandle((HANDLE)lpPrevWndFunc,
+  if (!IsCallProcHandle(lpPrevWndFunc))
+    return IntCallWindowProcA(TRUE, lpPrevWndFunc, hWnd, Msg, wParam, lParam);
+  else
+    {
+       if (NtUserDereferenceWndProcHandle((HANDLE)lpPrevWndFunc,
                                       &wpInfo))
-    {
-      return IntCallWindowProcA(TRUE, lpPrevWndFunc, hWnd, Msg, wParam, lParam);
-    }
-  else
-    {
-      return IntCallWindowProcA(!wpInfo.IsUnicode, wpInfo.WindowProc,
-                                hWnd, Msg, wParam, lParam);
+         return IntCallWindowProcA(!wpInfo.IsUnicode, wpInfo.WindowProc,
+                                  hWnd, Msg, wParam, lParam);
+       else
+       {
+         DPRINT("CallWindowProcA: can not dereference WndProcHandle\n");
+         return 0;
+       }
     }
 }
 
@@ -1269,17 +1272,20 @@
   if (lpPrevWndFunc == NULL)
     lpPrevWndFunc = (WNDPROC)NtUserGetWindowLong(hWnd, GWLP_WNDPROC, FALSE);
 
-  if (!IsCallProcHandle(lpPrevWndFunc) ||
-      !NtUserDereferenceWndProcHandle((HANDLE)lpPrevWndFunc,
+  if (!IsCallProcHandle(lpPrevWndFunc))
+    return IntCallWindowProcW(FALSE, lpPrevWndFunc, hWnd, Msg, wParam, lParam);
+  else
+  {
+    if (NtUserDereferenceWndProcHandle((HANDLE)lpPrevWndFunc,
                                       &wpInfo))
-    {
-      return IntCallWindowProcW(FALSE, lpPrevWndFunc, hWnd, Msg, wParam, lParam);
-    }
-  else
-    {
       return IntCallWindowProcW(!wpInfo.IsUnicode, wpInfo.WindowProc,
                                 hWnd, Msg, wParam, lParam);
-    }
+       else
+       {
+         DPRINT("CallWindowProcW: can not dereference WndProcHandle\n");
+         return 0;
+       }
+  }
 }
 
 




More information about the Ros-diffs mailing list