-set last error (invalid handle) in cases where handle is NULL also
authorGunnar Dalsnes <hardon@online.no>
Mon, 19 Sep 2005 00:02:39 +0000 (00:02 +0000)
committerGunnar Dalsnes <hardon@online.no>
Mon, 19 Sep 2005 00:02:39 +0000 (00:02 +0000)
-remove GvG's workaround

svn path=/trunk/; revision=17924

reactos/subsys/win32k/ntuser/accelerator.c
reactos/subsys/win32k/ntuser/cursoricon.c
reactos/subsys/win32k/ntuser/hook.c
reactos/subsys/win32k/ntuser/hotkey.c
reactos/subsys/win32k/ntuser/menu.c
reactos/subsys/win32k/ntuser/monitor.c
reactos/subsys/win32k/ntuser/window.c

index a39bfb7..138a135 100644 (file)
@@ -74,18 +74,20 @@ PACCELERATOR_TABLE FASTCALL UserGetAccelObject(HACCEL hAccel)
 {
    PACCELERATOR_TABLE Accel;
    
-   if (!hAccel) return NULL;
-   
-   Accel= UserGetObject(&gHandleTable, hAccel,  otAccel);
-
-   if (Accel)
+   if (!hAccel)
    {
-      ASSERT(USER_BODY_TO_HEADER(Accel)->RefCount >= 0);
+      SetLastWin32Error(ERROR_INVALID_ACCEL_HANDLE);
+      return NULL;
    }
-   else
+   
+   Accel= UserGetObject(&gHandleTable, hAccel,  otAccel);
+   if (!Accel)
    {
       SetLastWin32Error(ERROR_INVALID_ACCEL_HANDLE);
+      return NULL;
    }
+   
+   ASSERT(USER_BODY_TO_HEADER(Accel)->RefCount >= 0);
 
    return Accel;
 }
index bfcfd5b..c4c843c 100644 (file)
@@ -77,7 +77,11 @@ PCURICON_OBJECT FASTCALL UserGetCurIconObject(HCURSOR hCurIcon)
 {
    PCURICON_OBJECT CurIcon;
    
-   if (!hCurIcon) return NULL;
+   if (!hCurIcon)
+   {
+      SetLastWin32Error(ERROR_INVALID_CURSOR_HANDLE);
+      return NULL;
+   }
    
    CurIcon = (PCURICON_OBJECT)UserGetObject(&gHandleTable, hCurIcon, otCursorIcon);
    if (!CurIcon)
index 79b8185..5948ae6 100644 (file)
@@ -59,21 +59,28 @@ IntAllocHookTable(void)
 }
 
 
-PHOOK FASTCALL IntGetHookObject(HHOOK hWnd)
+PHOOK FASTCALL IntGetHookObject(HHOOK hHook)
 {
-
-   PHOOK Window = (PHOOK)UserGetObject(&gHandleTable, hWnd, otHook);
-   if (!Window)
+   PHOOK Hook;
+   
+   if (!hHook)
+   {
+      SetLastWin32Error(ERROR_INVALID_HOOK_HANDLE);
+      return NULL;
+   }
+   
+   Hook = (PHOOK)UserGetObject(&gHandleTable, hHook, otHook);
+   if (!Hook)
    {
       SetLastWin32Error(ERROR_INVALID_HOOK_HANDLE);
       return NULL;
    }
 
-   ASSERT(USER_BODY_TO_HEADER(Window)->RefCount >= 0);
+   ASSERT(USER_BODY_TO_HEADER(Hook)->RefCount >= 0);
 
-   USER_BODY_TO_HEADER(Window)->RefCount++;
+   USER_BODY_TO_HEADER(Hook)->RefCount++;
 
-   return Window;
+   return Hook;
 }
 
 
index c27cf6c..915c5de 100644 (file)
@@ -154,6 +154,10 @@ IsHotKey (UINT fsModifiers, UINT vk)
 }
 
 
+
+/* SYSCALLS *****************************************************************/
+
+
 BOOL STDCALL
 NtUserRegisterHotKey(HWND hWnd,
                      int id,
index 8c21329..8abfaef 100644 (file)
@@ -115,7 +115,15 @@ CleanupMenuImpl(VOID)
 
 PMENU_OBJECT FASTCALL UserGetMenuObject(HMENU hMenu)
 {
-   PMENU_OBJECT Menu = (PMENU_OBJECT)UserGetObject(&gHandleTable, hMenu, otMenu);
+   PMENU_OBJECT Menu;
+   
+   if (!hMenu)
+   {
+      SetLastWin32Error(ERROR_INVALID_MENU_HANDLE);
+      return NULL;
+   }
+   
+   Menu = (PMENU_OBJECT)UserGetObject(&gHandleTable, hMenu, otMenu);
    if (!Menu)
    {
       SetLastWin32Error(ERROR_INVALID_MENU_HANDLE);
index 6ae7b6f..10f9828 100644 (file)
@@ -124,7 +124,16 @@ static
 PMONITOR_OBJECT FASTCALL
 UserGetMonitorObject(IN HMONITOR hMonitor)
 {
-   PMONITOR_OBJECT Monitor = (PMONITOR_OBJECT)UserGetObject(&gHandleTable, hMonitor, otMonitor);
+   PMONITOR_OBJECT Monitor;
+   
+   if (!hMonitor)
+   {
+      SetLastWin32Error(ERROR_INVALID_MONITOR_HANDLE);
+      return NULL;
+   }
+   
+   
+   Monitor = (PMONITOR_OBJECT)UserGetObject(&gHandleTable, hMonitor, otMonitor);
    if (!Monitor)
    {
       SetLastWin32Error(ERROR_INVALID_MONITOR_HANDLE);
index 84eba35..ce6445c 100644 (file)
@@ -97,7 +97,11 @@ PWINDOW_OBJECT FASTCALL UserGetWindowObject(HWND hWnd)
 {
    PWINDOW_OBJECT Window;
    
-   if (!hWnd) return NULL;
+   if (!hWnd)
+   { 
+      SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);
+      return NULL;
+   }
    
    Window = (PWINDOW_OBJECT)UserGetObject(&gHandleTable, hWnd, otWindow);
    if (!Window || 0 != (Window->Status & WINDOWSTATUS_DESTROYED))
@@ -3233,7 +3237,6 @@ UserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi)
 
    if (!(Window = UserGetWindowObject(hWnd)))
    {
-      SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);
       return 0;
    }