IThumbnailCache 介面 (thumbcache.h)
公開跨應用程式共用之系統縮圖快取的方法。
繼承
IThumbnailCache介面繼承自IUnknown介面。 IThumbnailCache 也有下列類型的成員:
方法
IThumbnailCache介面具有這些方法。
IThumbnailCache::GetThumbnail 取得指定 Shell 專案的快取縮圖。 |
IThumbnailCache::GetThumbnailByID 根據縮圖快取的識別碼,從縮圖快取取得縮圖。 |
備註
縮圖快取 API 的設計目的是要為應用程式提供統一方法來擷取和快取縮圖。 在 Windows XP 中,縮圖快取是以個別資料夾為基礎完成,而且快取會在每個資料夾內的 Thumbs.db 檔案中維護。 雖然此方法提供空間位置,但它不支援跨資料夾的預覽和查詢。 Windows Vista 中的縮圖快取藉由提供全域快取來解決這項缺點。
若要快取縮圖,應用程式必須先取得 IShellItem ,代表將取得縮圖的專案,然後將 IShellItem 傳遞至 對 IThumbnailCache::GetThumbnailCache::GetThumbnail 的呼叫。 如果旗標參數為 IThumbnailCache::GetThumbnail 包含旗標WTS_EXTRACT,而且尚未快取縮圖,則會擷取縮圖並放在快取中。 如果設定旗標WTS_FORCEEXTRACTION,則會忽略快取,而且一律會擷取新的縮圖。 如需傳遞至IThumbnailCache::GetThumbnail 的旗標的詳細資訊,請參閱 IThumbnailCache::GetThumbnail 主題。
如果縮圖尚未在快取中,則會使用已在作業系統上註冊之 IExtractImage 或 IThumbnailProvider 的現有 (實作,自動從原始程式檔擷) 取該縮圖。 您的應用程式不需要提供縮圖擷取器的實作。
當 IThumbnailCache::GetThumbnail傳回時,其pThumbnailID參數會收到包含縮圖唯一識別碼的WTS_THUMBNAILID結構。 如果儲存此識別碼,就可以傳遞至 IThumbnailCache::GetThumbnailByID 以擷取快取的縮圖。 或者,可以使用WTS_CACHEONLY旗標集呼叫 IThumbnailCache::GetThumbnail 。 在此情況下,只有在已經快取縮圖時,才會傳回縮圖。 使用 IThumbnailCache::GetThumbnail 而不是 IThumbnailCache::GetThumbnailByID的缺點是仍必須提供 IShellItem 。
多個執行緒可用來存取縮圖快取以改善效能。 IThumbnailCache::GetThumbnail 可以在具有WTS_INCACHEONLY或WTS_FASTEXTRACT旗標集的較高優先順序執行緒上呼叫,以便立即擷取快取的縮圖。 然後,如果影像不在快取中,或WTS_LOWQUALITY表示快取的影像不是理想的品質,則可以使用較低優先順序的執行緒來呼叫 IThumbnailCache::GetThumbnail 並設定WTS_EXTRACT旗標,以便擷取縮圖。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | thumbcache.h |