[ros-diffs] [gedmurphy] 28862: - merge all the setupapi changes between 28816 and 28860 - can someone test these, we're looking for correct devmgmt icons in both the treeview and the properties dialog

gedmurphy at svn.reactos.org gedmurphy at svn.reactos.org
Tue Sep 4 23:53:55 CEST 2007


Author: gedmurphy
Date: Wed Sep  5 01:53:54 2007
New Revision: 28862

URL: http://svn.reactos.org/svn/reactos?rev=28862&view=rev
Log:
- merge all the setupapi changes between 28816 and 28860
- can someone test these, we're looking for correct devmgmt icons in both the treeview and the properties dialog

Modified:
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devclass.c
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devinst.c
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/20.ico
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/23.ico
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/9.ico
    branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devclass.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devclass.c?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
--- branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devclass.c (original)
+++ branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devclass.c Wed Sep  5 01:53:54 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 | ILC_MASK, 100, 10);
         if (!ClassImageListData->ImageList)
             goto cleanup;
 
@@ -1459,14 +1459,25 @@
          * and put their index in the image list in the IconIndexes array */
         for (i = 0; i < list->NumberOfGuids; i++)
         {
+            INT miniIconIndex;
+
             ret = SetupDiLoadClassIcon(
                 &list->Guids[i],
-                &hIcon,
-                NULL);
+                NULL,
+                &miniIconIndex);
             if (ret)
-                list->IconIndexes[i] = ImageList_AddIcon(ClassImageListData->ImageList, hIcon);
+            {
+                hIcon = LoadImage(hInstance, MAKEINTRESOURCE(miniIconIndex), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
+                if (hIcon)
+                {
+                    list->IconIndexes[i] = ImageList_AddIcon(ClassImageListData->ImageList, hIcon);
+                    DestroyIcon(hIcon);
+                }
+                else
+                    list->IconIndexes[i] = -1;
+            }
             else
-                list->IconIndexes[i] = -1; /* Special value to tell that icon is unavailable */
+                list->IconIndexes[i] = -1; /* Special value to indicate that the icon is unavailable */
         }
 
         ret = TRUE;
@@ -1612,7 +1623,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, 32, 32, LR_DEFAULTCOLOR);
+            if (!*LargeIcon)
             {
                 SetLastError(ERROR_INVALID_INDEX);
                 goto cleanup;

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devinst.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devinst.c?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
--- branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devinst.c (original)
+++ branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/devinst.c Wed Sep  5 01:53:54 2007
@@ -2710,7 +2710,7 @@
 {
     struct DeviceInfoSet *list;
     HKEY hEnumKey, hKey = NULL;
-    DWORD rc;
+    DWORD rc, dwSize;
     BOOL ret = FALSE;
 
     TRACE("%p %s %p %lx %p\n",
@@ -2738,7 +2738,7 @@
         struct DeviceInfoElement *deviceInfo = NULL;
         /* Search if device already exists in DeviceInfoSet.
          *    If yes, return the existing element
-         *    If no, create a new element using informations in registry
+         *    If no, create a new element using information in registry
          */
         PLIST_ENTRY ItemList = list->ListHead.Flink;
         while (ItemList != &list->ListHead)
@@ -2757,6 +2757,9 @@
         }
         else
         {
+            GUID ClassGUID;
+            WCHAR szClassGuid[MAX_GUID_STRING_LEN];
+
             /* Open supposed registry key */
             rc = RegOpenKeyExW(
                 list->HKLM,
@@ -2784,11 +2787,25 @@
                 goto cleanup;
             }
 
-            /* FIXME: try to get ClassGUID from registry, instead of
-             * sending GUID_NULL to CreateDeviceInfoElement
-             */
-            if (!CreateDeviceInfoElement(list, DeviceInstanceId, &GUID_NULL, &deviceInfo))
+            ClassGUID = GUID_NULL;
+            dwSize = MAX_GUID_STRING_LEN * sizeof(WCHAR);
+
+            if (RegQueryValueExW(hKey,
+                                 REGSTR_VAL_CLASSGUID,
+                                 NULL,
+                                 NULL,
+                                 (LPBYTE)szClassGuid,
+                                 &dwSize) == ERROR_SUCCESS)
+            {
+                szClassGuid[MAX_GUID_STRING_LEN - 2] = UNICODE_NULL;
+
+                /* Convert a string to a ClassGuid */
+                UuidFromStringW(&szClassGuid[1], &ClassGUID);
+            }
+
+            if (!CreateDeviceInfoElement(list, DeviceInstanceId, &ClassGUID, &deviceInfo))
                 goto cleanup;
+
             InsertTailList(&list->ListHead, &deviceInfo->ListEntry);
 
             ret = TRUE;

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/20.ico
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/20.ico?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
Binary files - no diff available.

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/23.ico
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/23.ico?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
Binary files - no diff available.

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/9.ico
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/9.ico?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
Binary files - no diff available.

Modified: branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt?rev=28862&r1=28861&r2=28862&view=diff
==============================================================================
--- branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt (original)
+++ branches/ros-branch-0_3_3/reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt Wed Sep  5 01:53:54 2007
@@ -13,115 +13,35 @@
 9.ico
 10.ico
 11.ico
-12.ico
-13.ico
-14.ico
-15.ico
-16.ico
-17.ico
 18.ico
 19.ico
-20.ico
 21.ico
 22.ico
 23.ico
 24.ico
 25.ico
 28.ico
-29.ico
-30.ico
-32.ico
-33.ico
-35.ico
-36.ico
-37.ico
-38.ico
-39.ico
+40.ico
 41.ico
-44.ico
-45.ico
-46.ico
-47.ico
-48.ico
+42.ico
+43.ico
+50.ico
+51.ico
+52.ico
+53.ico
 54.ico
-137.ico
-138.ico
-151.ico
-152.ico
-153.ico
-154.ico
-155.ico
-156.ico
-157.ico
-160.ico
+105.ico
+159.ico
 161.ico
-172.ico
-173.ico
-191.ico
-192.ico
-210.ico
-220.ico
-221.ico
-222.ico
-224.ico
-225.ico
-226.ico
-228.ico
-233.ico
-235.ico
-236.ico
-237.ico
-238.ico
-240.ico
-245.ico
-246.ico
-248.ico
-249.ico
-250.ico
-252.ico
-254.ico
-255.ico
-263.ico
-265.ico
-268.ico
-269.ico
-270.ico
-271.ico
-277.ico
-279.ico
-289.ico
-290.ico
-291.ico
-292.ico
-293.ico
-294.ico
-295.ico
-296.ico
-297.ico
-298.ico
-299.ico
-302.ico
-304.ico
-305.ico
-309.ico
-315.ico
-317.ico
-318.ico
-319.ico
-322.ico
-323.ico
-324.ico
-325.ico
-326.ico
-327.ico
-328.ico
-329.ico
-330.ico
-1001.ico
-1004.ico
-8240.ico
-16710.ico
-16715.ico
-16717.ico
-16718.ico
-16721.ico
+500.ico
+501.ico
+502.ico
+5012.ico
+
+The following icons are the property of the VMware, Inc and are 
+released under Creative Commons Attribution-ShareAlike 2.5 License.
+(http://www.chipx86.com/blog/?p=206)
+Please see COPYING for details
+
+20.ico
+23.ico




More information about the Ros-diffs mailing list