縮圖處理程式
Windows Vista 比舊版 Windows 更能使用檔案特定的縮圖影像。 Windows Vista 會在所有檢視、對話框和提供這些檢視的任何檔類型中使用它們。 其他應用程式也可以取用您的縮圖。 縮圖顯示也已變更。 現在,用戶可選取大小的連續頻譜可供使用,而不是 Windows XP 中提供的圖示和縮圖等離散大小。
注意
您可能會聽到這些縮圖稱為「即時圖示」。
Windows Vista UI 中通常會使用 32 位解析度和 256x256 像素的縮圖。 檔案格式擁有者應該準備好以該大小顯示其縮圖。 它們也應該為縮圖提供非靜態影像,以反映特定檔案的內容。 例如,文本文件的縮圖應該會顯示檔的縮圖版本,包括其文字。
已引進 IThumbnailProvider 介面,讓提供縮圖比過去更容易且更直接,而 IExtractImage 會改用。 請注意,使用 IExtractImage 的現有程式代碼在 Windows Vista 下仍然有效。 不過,[詳細數據] 窗格中不支援 IExtractImage。
本主題討論下列事項:
縮圖程式
處理程式,包括縮圖處理程序,預設會在個別進程中執行。 您可以藉由傳遞 NULL 值,強制處理程式執行同進程,做為呼叫 IShellItem::BindToHandler 的系結內容,如下所示:
IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)
您也可以在登錄中設定 DisableProcessIsolation 專案,以退出宣告不使用進程,如本範例所示。 類別標識符 (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} 是 IThumbnailProvider 實作的 CLSID。
HKEY_CLASSES_ROOT
CLSID
{E357FCCD-A995-4576-B01F-234630154E96}
DisableProcessIsolation = 1
縮圖快取和重設大小
需要縮圖時,Windows 會先檢查影像的縮圖快取。 如果在快取中找不到影像,則會呼叫縮圖擷取器。 當映像上次修改時間晚於快取中複本的時間時,也會呼叫它。
此快取中的縮圖影像會儲存在一組離散大小中。 所有大小都會以像素為單位。
- 32x32
- 96x96
- 256x256
- 1024x1024
注意
這些值可能會變更。 您程式代碼不應該假設一律會使用任何特定大小。
如果影像不是正方形,您就不應該自行填補。 Windows 負責尊重原始外觀比例,並將影像填補成正方形大小。
當要求特定大小的影像時,除非找到完全相符項目,否則 Windows Vista 一律會擷取下一個最大的影像,並將它縮減為所要求的大小。 映射的大小絕不會相應增加,如同舊版 Windows 的情況一樣。
下表提供要求大小與可用大小之間關聯性的一些範例。
您提供的影像大小上限 | 擷取器要求的大小 | 您提供 |
---|---|---|
156x120 | 256x256 | 156x120 (不要墊,保持外觀比例) |
2048x1024 | 256x256 | 256x128 (不要墊,保持長寬比) |
您可以將截止點宣告為登錄中相關聯應用程式之程式識別碼專案的一部分。 在此大小下方,不會使用縮圖。
HKEY_CLASSES_ROOT
.{ProgId}
ThumbnailCutoff
ThumbnailCutoff 專案是下列其中一個REG_DWORD值。
價值 | 近路 | HighDPI 敏感度 |
---|---|---|
0 | 32x32 | 是的 |
1 | 16x16 | 是的 |
2 | 48x48 | 是的 |
3 | 16x16 | 是的 |
每英吋高點 (dpi) 敏感度表示縮圖的圖元尺寸會自動調整為較大的 dpi。 例如,96 dpi的 32x32 影像會是 40x40 的 120 dpi 影像。
如果未指定 ThumbnailCutoff 專案,則預設的截斷為 20x20(不區分 dpi)。
縮圖重迭
縮圖重疊是縮圖右下角顯示的小型影像,可讓開發人員將品牌識別套用至縮圖。 重疊會在登錄中宣告為相關聯應用程式之程式標識碼專案的一部分,如下所示:
HKEY_CLASSES_ROOT
.{ProgId}
TypeOverlay
TypeOverlay 專案包含解譯REG_SZ值,如下所示:
- 如果值是資源參考(內嵌在 DLL 中的 .ico 檔案),例如
ISVComponent.dll,-155
,該影像會當做擴展名為檔案的重疊。 請注意,在此範例中,155 是資源標識符,而且如果 DLL 不存在於標準路徑中(例如 C:/Windows/System32),則需要完整路徑,而不只是 DLL 名稱。 - 如果值是空字串,則不會將重疊套用至影像。
- 如果值不存在,則會使用相關聯應用程式的預設圖示。
您的縮圖重疊應該只透過此機制提供,並由 Windows 套用。 請勿自行套用重疊。
縮圖裝飾
陰影等裝飾會根據使用者目前選取的主題套用至縮圖。 裝飾是由 Windows 提供;不要自己建立它們。 Windows 可以隨時變更特定裝飾的外觀,因此,如果您提供自己的外觀,可能會與系統不同步。 您的縮圖可能會過時或過時。
潛在的裝飾會在登錄中宣告為相關聯應用程式之程式標識符專案的一部分,如下所示:
HKEY_CLASSES_ROOT
.{ProgId}
Treatment
[處理] 專案包含下列其中一個REG_DWORD值:
價值 | 意義 |
---|---|
0 | 無裝飾 |
1 | 陰影 |
2 | 相片框線 |
3 | 影片上衣 |
根據預設,陰影會套用至影像。
註冊縮圖處理程式
縮圖處理程序的註冊是以標準檔案關聯為基礎。
縮圖處理程式殼層延伸模組的 GUID E357FCCD-A995-4576-B01F-234630154E96
。
相關主題