Author: gedmurphy
Date: Mon Sep  3 18:51:06 2007
New Revision: 28816
URL: 
http://svn.reactos.org/svn/reactos?rev=28816&view=rev
Log:
- load icon resources using LoadImage. ExtractIcon loads sequential numbers, not resource
numbers.
- fixes the device image list
Modified:
    trunk/reactos/dll/win32/setupapi/devclass.c
Modified: trunk/reactos/dll/win32/setupapi/devclass.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/devclas…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devclass.c (original)
+++ trunk/reactos/dll/win32/setupapi/devclass.c Mon Sep  3 18:51:06 2007
@@ -1449,7 +1449,7 @@
         /* Prepare a HIMAGELIST */
         InitCommonControls();
-        ClassImageListData->ImageList = ImageList_Create(16, 16, ILC_COLOR, 100, 10);
+        ClassImageListData->ImageList = ImageList_Create(16, 16, ILC_COLOR32, 100,
10);
         if (!ClassImageListData->ImageList)
             goto cleanup;
@@ -1464,7 +1464,10 @@
                 &hIcon,
                 NULL);
             if (ret)
+            {
                 list->IconIndexes[i] =
ImageList_AddIcon(ClassImageListData->ImageList, hIcon);
+                DestroyIcon(hIcon);
+            }
             else
                 list->IconIndexes[i] = -1; /* Special value to tell that icon is
unavailable */
         }
@@ -1612,7 +1615,8 @@
         TRACE("Icon index %d, dll name %s\n", iconIndex, debugstr_w(DllName));
         if (LargeIcon)
         {
-            if (1 != ExtractIconEx(DllName, iconIndex, LargeIcon, NULL, 1))
+            *LargeIcon = LoadImage(hInstance, MAKEINTRESOURCE(iconIndex), IMAGE_ICON, 16,
16, LR_DEFAULTCOLOR);
+            if (!*LargeIcon)
             {
                 SetLastError(ERROR_INVALID_INDEX);
                 goto cleanup;