📄 shell32_ros.diff
字号:
Index: shell32_main.c
===================================================================
--- shell32_main.c (revision 26448)
+++ shell32_main.c (working copy)
@@ -509,23 +509,59 @@
/* get the iconlocation */ if (SUCCEEDED(hr) && (flags & SHGFI_ICONLOCATION )) {- UINT uDummy,uFlags;+ if (!(flags & SHGFI_USEFILEATTRIBUTES))+ {+ UINT uDummy,uFlags; - hr = IShellFolder_GetUIObjectOf(psfParent, 0, 1,- (LPCITEMIDLIST*)&pidlLast, &IID_IExtractIconA,- &uDummy, (LPVOID*)&pei);- if (SUCCEEDED(hr))+ hr = IShellFolder_GetUIObjectOf(psfParent, 0, 1,+ (LPCITEMIDLIST*)&pidlLast, &IID_IExtractIconA,+ &uDummy, (LPVOID*)&pei);+ if (SUCCEEDED(hr))+ {+ hr = IExtractIconW_GetIconLocation(pei, uGilFlags,+ szLocation, MAX_PATH, &iIndex, &uFlags);+ psfi->iIcon = iIndex;++ if (!(uFlags & GIL_NOTFILENAME))+ lstrcpyW (psfi->szDisplayName, szLocation);+ else+ ret = FALSE;++ IExtractIconA_Release(pei);+ }+ }+ else {- hr = IExtractIconW_GetIconLocation(pei, uGilFlags,- szLocation, MAX_PATH, &iIndex, &uFlags);- psfi->iIcon = iIndex;-- if (!(uFlags & GIL_NOTFILENAME))- lstrcpyW (psfi->szDisplayName, szLocation);+ if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)+ {+ strcpyW(psfi->szDisplayName, swShell32Name);+ psfi->iIcon = SIC_GetIconIndex(swShell32Name, -IDI_SHELL_FOLDER, 0);+ } else- ret = FALSE;+ {+ WCHAR sTemp [MAX_PATH];+ WCHAR * szExt;+ DWORD dwNr=0;+ static const WCHAR p1W[] = {'%','1',0}; - IExtractIconA_Release(pei);+ lstrcpynW(sTemp, szFullPath, MAX_PATH);++ psfi->iIcon = 0;+ szExt = (LPWSTR) PathFindExtensionW(sTemp);+ if ( szExt &&+ HCR_MapTypeToValueW(szExt, sTemp, MAX_PATH, TRUE) &&+ HCR_GetDefaultIconW(sTemp, sTemp, MAX_PATH, &dwNr))+ {+ if (!lstrcmpW(p1W,sTemp)) /* icon is in the file */+ strcpyW(psfi->szDisplayName, szFullPath);+ else+ strcpyW(psfi->szDisplayName, sTemp);++ psfi->iIcon = SIC_GetIconIndex(psfi->szDisplayName, dwNr, 0);+ if (psfi->iIcon == -1)+ psfi->iIcon = 0;+ }+ } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -