If EnumDisplaySettings fails GetSystemColorDepth could be anything.
-----Original Message-----
From: ros-diffs-bounces(a)reactos.org [mailto:ros-diffs-bounces@reactos.org] On Behalf Of
dchapyshev(a)svn.reactos.org
Sent: 02 March 2009 12:47
To: ros-diffs(a)reactos.org
Subject: [ros-diffs] [dchapyshev] 39841: - Get system color depth for application list
Author: dchapyshev
Date: Mon Mar  2 15:46:53 2009
New Revision: 39841
URL: 
http://svn.reactos.org/svn/reactos?rev=39841&view=rev
Log:
- Get system color depth for application list
Modified:
    trunk/reactos/base/applications/taskmgr/applpage.c
Modified: trunk/reactos/base/applications/taskmgr/applpage.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/taskmgr/…
==============================================================================
--- trunk/reactos/base/applications/taskmgr/applpage.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/taskmgr/applpage.c [iso-8859-1] Mon Mar  2 15:46:53
2009
@@ -58,6 +58,29 @@
 );
 #endif
+static INT
+GetSystemColorDepth(VOID)
+{
+    DEVMODE pDevMode;
+    INT ColorDepth;
+
+    pDevMode.dmSize = sizeof(DEVMODE);
+    pDevMode.dmDriverExtra = 0;
+    EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &pDevMode);
+
+    switch (pDevMode.dmBitsPerPel)
+    {
+        case 32: ColorDepth = ILC_COLOR32; break;
+        case 24: ColorDepth = ILC_COLOR24; break;
+        case 16: ColorDepth = ILC_COLOR16; break;
+        case  8: ColorDepth = ILC_COLOR8;  break;
+        case  4: ColorDepth = ILC_COLOR4;  break;
+        default: ColorDepth = ILC_COLOR;   break;
+    }
+
+    return ColorDepth;
+}
+
 INT_PTR CALLBACK
 ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 {
@@ -101,8 +124,8 @@
         column.cx = 95;
         (void)ListView_InsertColumn(hApplicationPageListCtrl, 1, &column);    /* Add
the "Status" column */
-        (void)ListView_SetImageList(hApplicationPageListCtrl, ImageList_Create(16, 16,
ILC_COLOR8|ILC_MASK, 0, 1), LVSIL_SMALL);
-        (void)ListView_SetImageList(hApplicationPageListCtrl, ImageList_Create(32, 32,
ILC_COLOR8|ILC_MASK, 0, 1), LVSIL_NORMAL);
+        (void)ListView_SetImageList(hApplicationPageListCtrl, ImageList_Create(16, 16,
GetSystemColorDepth()|ILC_MASK, 0, 1), LVSIL_SMALL);
+        (void)ListView_SetImageList(hApplicationPageListCtrl, ImageList_Create(32, 32,
GetSystemColorDepth()|ILC_MASK, 0, 1), LVSIL_NORMAL);
         UpdateApplicationListControlViewSetting();