[ros-diffs] [jimtabor] 38189: - Properly implement LookupIconIdFromDirectoryEx. - Remove hack for GetDeviceCaps. - This fixes one part of the Win32k Initialization Bug. If this change creates a problem some where else, the problem is not in this change.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Fri Dec 19 23:33:11 CET 2008


Author: jimtabor
Date: Fri Dec 19 16:33:11 2008
New Revision: 38189

URL: http://svn.reactos.org/svn/reactos?rev=38189&view=rev
Log:
- Properly implement LookupIconIdFromDirectoryEx.
- Remove hack for GetDeviceCaps.
- This fixes one part of the Win32k Initialization Bug. If this change creates a problem some where else, the problem is not in this change. 

Modified:
    trunk/reactos/dll/win32/gdi32/objects/dc.c
    trunk/reactos/dll/win32/user32/windows/icon.c
    trunk/reactos/dll/win32/user32/windows/input.c

Modified: trunk/reactos/dll/win32/gdi32/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/dc.c?rev=38189&r1=38188&r2=38189&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/dc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/gdi32/objects/dc.c [iso-8859-1] Fri Dec 19 16:33:11 2008
@@ -505,11 +505,6 @@
   }
   else
   {
-     // HAX!!!!
-     // Due to winlogon process/thread mapping issues we have this hax!
-     // FIXME!!! This is a victim of the Win32k Initialization BUG!!!!!
-     return NtGdiGetDeviceCaps(hDC,i);
-
      if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
         return 0;
      if (!(Dc_Attr->ulDirty_ & DC_PRIMARY_DISPLAY) )

Modified: trunk/reactos/dll/win32/user32/windows/icon.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/icon.c?rev=38189&r1=38188&r2=38189&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/icon.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/icon.c [iso-8859-1] Fri Dec 19 16:33:11 2008
@@ -658,6 +658,9 @@
 {
     GRPCURSORICONDIR *dir = (GRPCURSORICONDIR*)xdir;
     UINT retVal = 0;
+
+    GetConnected();
+
     if(dir && !dir->idReserved && (IMAGE_ICON == dir->idType || IMAGE_CURSOR == dir->idType))
     {
         GRPCURSORICONDIRENTRY *entry = NULL;
@@ -667,11 +670,13 @@
         {
             ColorBits = 1;
         }
+        else if (g_psi->SystemMetrics[SM_SAMEDISPLAYFORMAT] || (cFlag & LR_VGACOLOR) )
+        {
+            ColorBits = 4;
+        }
         else
         {
-            HDC hdc = CreateICW(NULL, NULL, NULL, NULL);
-            ColorBits = GetDeviceCaps(hdc, BITSPIXEL);
-            DeleteDC(hdc);
+            ColorBits = 0;
         }
 
         if(bIcon)

Modified: trunk/reactos/dll/win32/user32/windows/input.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/input.c?rev=38189&r1=38188&r2=38189&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/input.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/input.c [iso-8859-1] Fri Dec 19 16:33:11 2008
@@ -153,6 +153,8 @@
 SHORT WINAPI
 GetAsyncKeyState(int vKey)
 {
+ if (vKey < 0 || vKey > 256)
+    return 0;
  return (SHORT) NtUserGetAsyncKeyState((DWORD) vKey);
 }
 



More information about the Ros-diffs mailing list