Commit in reactos on MAIN
lib/user32/windows/defwnd.c+2-21.124 -> 1.125
subsys/win32k/objects/cursoricon.c+11-71.51 -> 1.52
+13-9
2 modified files
- Fixed handling of WM_GETICON message.
- Don't allow destroying icons of foreign processes.

reactos/lib/user32/windows
defwnd.c 1.124 -> 1.125
diff -u -r1.124 -r1.125
--- defwnd.c	22 Feb 2004 23:40:58 -0000	1.124
+++ defwnd.c	29 Mar 2004 06:38:50 -0000	1.125
@@ -1,4 +1,4 @@
-/* $Id: defwnd.c,v 1.124 2004/02/22 23:40:58 gvg Exp $
+/* $Id: defwnd.c,v 1.125 2004/03/29 06:38:50 navaraf Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS user32.dll
@@ -1384,7 +1384,7 @@
 
         case WM_GETICON:
         {
-            INT Index = (wParam != 0) ? GCL_HICON : GCL_HICONSM;
+            INT Index = (wParam == ICON_BIG) ? GCL_HICON : GCL_HICONSM;
             return (GetClassLongW(hWnd, Index));
         }
 

reactos/subsys/win32k/objects
cursoricon.c 1.51 -> 1.52
diff -u -r1.51 -r1.52
--- cursoricon.c	15 Mar 2004 20:21:51 -0000	1.51
+++ cursoricon.c	29 Mar 2004 06:38:50 -0000	1.52
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: cursoricon.c,v 1.51 2004/03/15 20:21:51 navaraf Exp $ */
+/* $Id: cursoricon.c,v 1.52 2004/03/29 06:38:50 navaraf Exp $ */
 
 #undef WIN32_LEAN_AND_MEAN
 
@@ -368,7 +368,12 @@
     return FALSE;
   }
   
-  if(WinStaObject->SystemCursor.CurrentCursorObject == Object)
+  if (Object->Process != PsGetWin32Process())
+  {
+    return FALSE;
+  }
+
+  if (WinStaObject->SystemCursor.CurrentCursorObject == Object)
   {
     /* Hide the cursor if we're destroying the current cursor */
     IntSetCursor(WinStaObject, NULL, TRUE);
@@ -376,17 +381,14 @@
   
   bmpMask = Object->IconInfo.hbmMask;
   bmpColor = Object->IconInfo.hbmColor;
-  
-  
-  if(Object->Process && RemoveFromProcess)
+
+  if (Object->Process && RemoveFromProcess)
   {
     IntLockProcessCursorIcons(Object->Process);
     RemoveEntryList(&Object->ListEntry);
     IntUnLockProcessCursorIcons(Object->Process);
   }
   
-  ObmDereferenceObject(Object);
-  
   Ret = NT_SUCCESS(ObmCloseHandle(HandleTable, Handle));
   
   /* delete bitmaps */
@@ -394,6 +396,8 @@
     NtGdiDeleteObject(bmpMask);
   if(bmpColor)
     NtGdiDeleteObject(bmpColor);
+
+/*  ObmDereferenceObject(Object);*/
   
   return Ret;
 }
CVSspam 0.2.8