[PATCH 6/6] shell32: Add SHIL_JUMBO list

Nikolay Sivov nsivov at codeweavers.com
Wed Mar 21 01:27:16 CDT 2018


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/shell32/iconcache.c       | 10 +++++-----
 dlls/shell32/tests/shelllink.c |  4 +---
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c
index f26ff0e49d..d55bde9bd7 100644
--- a/dlls/shell32/iconcache.c
+++ b/dlls/shell32/iconcache.c
@@ -61,7 +61,7 @@ typedef struct
 
 static HDPA sic_hdpa;
 static INIT_ONCE sic_init_once = INIT_ONCE_STATIC_INIT;
-static HIMAGELIST shell_imagelists[SHIL_SYSSMALL+1];
+static HIMAGELIST shell_imagelists[SHIL_LAST+1];
 
 static CRITICAL_SECTION SHELL32_SicCS;
 static CRITICAL_SECTION_DEBUG critsect_debug =
@@ -454,6 +454,7 @@ static BOOL WINAPI SIC_Initialize( INIT_ONCE *once, void *param, void **context
     sizes[SHIL_EXTRALARGE].cy = (GetSystemMetrics( SM_CYICON ) * 3) / 2;
     sizes[SHIL_SYSSMALL].cx = GetSystemMetrics( SM_CXSMICON );
     sizes[SHIL_SYSSMALL].cy = GetSystemMetrics( SM_CYSMICON );
+    sizes[SHIL_JUMBO].cx = sizes[SHIL_JUMBO].cy = 256;
 
     TRACE("large %dx%d small %dx%d\n", sizes[SHIL_LARGE].cx, sizes[SHIL_LARGE].cy, sizes[SHIL_SMALL].cx, sizes[SHIL_SMALL].cy);
 
@@ -1039,11 +1040,10 @@ HRESULT WINAPI SHGetStockIconInfo(SHSTOCKICONID id, UINT flags, SHSTOCKICONINFO
  */
 HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
 {
-    if (iImageList < 0 || iImageList > SHIL_SYSSMALL)
-    {
-        FIXME("Unsupported image list %i requested\n", iImageList);
+    TRACE("(%d, %s, %p)\n", iImageList, debugstr_guid(riid), ppv);
+
+    if (iImageList < 0 || iImageList > SHIL_LAST)
         return E_FAIL;
-    }
 
     InitOnceExecuteOnce( &sic_init_once, SIC_Initialize, NULL, NULL );
     return HIMAGELIST_QueryInterface(shell_imagelists[iImageList], riid, ppv);
diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c
index 2486c96984..1e07090dc4 100644
--- a/dlls/shell32/tests/shelllink.c
+++ b/dlls/shell32/tests/shelllink.c
@@ -1417,9 +1417,7 @@ static void test_SHGetImageList(void)
     for (i = 0; i <= SHIL_LAST; i++)
     {
         hr = SHGetImageList( i, &IID_IImageList, (void **)&list );
-        todo_wine_if(i == SHIL_JUMBO)
-            ok( hr == S_OK ||
-                broken( i == SHIL_JUMBO && hr == E_INVALIDARG ), /* XP and 2003 */
+        ok( hr == S_OK || broken( i == SHIL_JUMBO && hr == E_INVALIDARG ), /* XP and 2003 */
                 "%d: got %08x\n", i, hr );
         if (FAILED(hr)) continue;
         IImageList_GetIconSize( list, &width, &height );
-- 
2.16.2




More information about the wine-devel mailing list