diff --git a/reactos/lib/cpl/desk/settings.c b/reactos/lib/cpl/desk/settings.c index 289b381fb12..cc908925757 100644 --- a/reactos/lib/cpl/desk/settings.c +++ b/reactos/lib/cpl/desk/settings.c @@ -88,7 +88,7 @@ GetPossibleSettings(IN LPTSTR DeviceName, OUT DWORD* pSettingsCount, OUT PSETTIN PSETTINGS_ENTRY Settings = NULL; HDC hDC; PSETTINGS_ENTRY Current; - DWORD bpp, xres, yres; + DWORD bpp, xres, yres, checkbpp; /* Get current settings */ *CurrentSettings = NULL; @@ -105,13 +105,16 @@ GetPossibleSettings(IN LPTSTR DeviceName, OUT DWORD* pSettingsCount, OUT PSETTIN while (EnumDisplaySettingsEx(DeviceName, iMode, &devmode, dwFlags)) { + if (devmode.dmBitsPerPel==8 || devmode.dmBitsPerPel==16 || devmode.dmBitsPerPel==24 || devmode.dmBitsPerPel==32) checkbpp=1; + else checkbpp=0; + if (devmode.dmPelsWidth < 640 || - devmode.dmPelsHeight < 480) + devmode.dmPelsHeight < 480 || checkbpp == 0) { iMode++; continue; } - + Current = HeapAlloc(GetProcessHeap(), 0, sizeof(SETTINGS_ENTRY)); if (Current != NULL) {