[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