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.... ============================================================================== --- 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/ic... ============================================================================== --- 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/in... ============================================================================== --- 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); }