Correct bug do not enum other color deep that 8,16,24,32 it will create memmory leek...
authorMagnus Olsen <magnus@greatlord.com>
Wed, 25 May 2005 09:14:29 +0000 (09:14 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Wed, 25 May 2005 09:14:29 +0000 (09:14 +0000)
in the current code.

svn path=/trunk/; revision=15493

reactos/lib/cpl/desk/settings.c

index 289b381..cc90892 100644 (file)
@@ -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)
                {