Desktop.ini 中的 IconIndex 值 -101 指向 DLL 中的第二個圖示?

Desktop.ini 中的 IconIndex 值 -101 指向 DLL 中的第二個圖示?

我有一個資料夾,在 Windows 資源管理器中顯示為:
在此輸入影像描述

在此資料夾中,隱藏的desktop.ini 包含以下內容:

[.ShellClassInfo]
[email protected],-12688
IconFile=%SystemRoot%\system32\mydocs.dll
IconIndex=-101

mydocs.dll實際上包含了圖標,其中第二一個是Windows資源管理器用來顯示上述資料夾的圖示。

那麼desktop.ini內容的最後一行不應該是IconIndex=1(假設Windows從0開始計數)而不是嗎IconIndex=-101

我嘗試將-101值解釋為二進制、十六進制、八進制,但沒有一個轉換為代表第二個圖示的數字。

-101那麼,指向第二個圖示的值是如何實現的呢mydocs.dll

答案1

負 IconIndex 指的是資源ID。看這個微軟開發部落格:

在 Windows 95 中,ExtractIcon 函數得到了增強,因此您也可以透過將其負數作為圖示索引傳遞來透過其資源 ID 來指定圖示。

另請參閱微軟文件

在您的情況下,使用的圖示有一個資源 ID:101因此它顯示為-101。檢查我自己的mydocs.dll後,它顯示您顯示的圖示的資源ID為101,第一個圖示(帶有文件的資料夾)的資源ID為100。

相關內容