Roy Shea : shell32: Use default system icons if PrivateExtractIconsW in SHGetFileInfoW fails.

Alexandre Julliard julliard at winehq.org
Thu Sep 11 08:00:19 CDT 2008


Module: wine
Branch: master
Commit: 5b6806922aedc00e445f009389b2832c5da690ac
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5b6806922aedc00e445f009389b2832c5da690ac

Author: Roy Shea <royshea at gmail.com>
Date:   Wed Sep 10 14:33:02 2008 -0700

shell32: Use default system icons if PrivateExtractIconsW in SHGetFileInfoW fails.

---

 dlls/shell32/shell32_main.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 9c400e4..a0d3fe7 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -596,18 +596,22 @@ DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
                     }
                     else 
                     {
-                        IconNotYetLoaded=FALSE;
+                        UINT ret;
                         if (flags & SHGFI_SMALLICON)
-                            PrivateExtractIconsW( sTemp,icon_idx,
+                            ret = PrivateExtractIconsW( sTemp,icon_idx,
                                 GetSystemMetrics( SM_CXSMICON ),
                                 GetSystemMetrics( SM_CYSMICON ),
                                 &psfi->hIcon, 0, 1, 0);
                         else
-                            PrivateExtractIconsW( sTemp, icon_idx,
+                            ret = PrivateExtractIconsW( sTemp, icon_idx,
                                 GetSystemMetrics( SM_CXICON),
                                 GetSystemMetrics( SM_CYICON),
                                 &psfi->hIcon, 0, 1, 0);
-                        psfi->iIcon = icon_idx;
+                        if (ret != 0 && ret != 0xFFFFFFFF)
+                        {
+                            IconNotYetLoaded=FALSE;
+                            psfi->iIcon = icon_idx;
+                        }
                     }
                 }
             }




More information about the wine-cvs mailing list