⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shell32_ros.diff

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 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 + -