From db537889576fa8ada2cfa6aa3dc9f46ea1080b08 Mon Sep 17 00:00:00 2001 From: David Quintana Date: Tue, 16 Dec 2014 18:21:48 +0000 Subject: [PATCH] [SHELL32] * Use PrivateExtractIconsW instead of PrivateExtractIconExW to obtain the icons for caching. Fixes small shell icons using large icons scaled down instead of the proper 16px icons. Patch by Ismael Ferreras Morezuelas (swyter). CORE-8404 #resolve #comment Commited in r65683. Thanks. svn path=/trunk/; revision=65683 --- reactos/dll/win32/shell32/iconcache.cpp | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/reactos/dll/win32/shell32/iconcache.cpp b/reactos/dll/win32/shell32/iconcache.cpp index 573dd4b6f8d..fffed83eb76 100644 --- a/reactos/dll/win32/shell32/iconcache.cpp +++ b/reactos/dll/win32/shell32/iconcache.cpp @@ -392,23 +392,9 @@ static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags) HICON hiconLarge=0; HICON hiconSmall=0; UINT ret; - static UINT (WINAPI*PrivateExtractIconExW)(LPCWSTR,int,HICON*,HICON*,UINT) = NULL; - if (!PrivateExtractIconExW) - { - HMODULE hUser32 = GetModuleHandleA("user32"); - PrivateExtractIconExW = (UINT(WINAPI*)(LPCWSTR,int,HICON*,HICON*,UINT)) GetProcAddress(hUser32, "PrivateExtractIconExW"); - } - - if (PrivateExtractIconExW) - { - PrivateExtractIconExW(sSourceFile, dwSourceIndex, &hiconLarge, &hiconSmall, 1); - } - else - { - PrivateExtractIconsW(sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, NULL, 1, 0); - PrivateExtractIconsW(sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, NULL, 1, 0); - } + PrivateExtractIconsW(sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, NULL, 1, LR_COPYFROMRESOURCE); + PrivateExtractIconsW(sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, NULL, 1, LR_COPYFROMRESOURCE); if ( !hiconLarge || !hiconSmall) {