IThumbnailCache 接口 (thumbcache.h)

公开跨应用程序共享的系统缩略图缓存的方法。

继承

IThumbnailCache 接口继承自 IUnknown 接口。 IThumbnailCache 还具有以下类型的成员:

方法

IThumbnailCache 接口具有以下方法。

 
IThumbnailCache::GetThumbnail

获取给定 Shell 项的缓存缩略图。
IThumbnailCache::GetThumbnailByID

根据给定的 ID,从缩略图缓存中获取缩略图。

注解

缩略图缓存 API 旨在为应用程序提供统一的方法来检索和缓存缩略图。 在 Windows XP 中,缩略图缓存基于每个文件夹完成,缓存保存在每个文件夹中的 Thumbs.db 文件中。 虽然此方法提供空间位置,但它不支持跨文件夹的预览和查询。 Windows Vista 中的缩略图缓存通过提供全局缓存来解决这一缺点。

若要缓存缩略图,应用程序必须首先获取表示要为其获取缩略图的项的 IShellItem ,然后将 IShellItem 传递给对 IThumbnailCache::GetThumbnail 的调用。 如果 IThumbnailCache::GetThumbnail 的 flags 参数包含标志WTS_EXTRACT,并且缩略图尚未缓存,则会提取缩略图并将其放置在缓存中。 如果设置了标志WTS_FORCEEXTRACTION,则忽略缓存并始终提取新的缩略图。 有关传递给 IThumbnailCache::GetThumbnail 的标志的更多详细信息 ,请参阅 IThumbnailCache::GetThumbnail 主题。

如果缓存中尚不存在缩略图,将使用现有实现 (操作系统上注册的 IExtractImageIThumbnailProvider) 自动从源文件中提取缩略图。 应用程序不必提供缩略图提取程序的实现。

IThumbnailCache::GetThumbnail 返回时,其 pThumbnailID 参数接收包含缩略图的唯一 ID 的 WTS_THUMBNAILID 结构。 如果保存此 ID,则可以将其传递到 IThumbnailCache::GetThumbnailByID 以检索缓存的缩略图。 或者,可以使用设置WTS_CACHEONLY标志调用 IThumbnailCache::GetThumbnail 。 在这种情况下,仅当缩略图已缓存时,才会返回缩略图。 使用 IThumbnailCache::GetThumbnail 而不是 IThumbnailCache::GetThumbnailByID 的缺点是仍必须提供 IShellItem

可以使用多个线程来访问缩略图缓存以提高性能。 可以在设置了 WTS_INCACHEONLY 或 WTS_FASTEXTRACT 标志的较高优先级线程上调用 IThumbnailCache::GetThumbnail,以便立即检索缓存的缩略图。 然后,如果图像不在缓存中,或者WTS_LOWQUALITY指示缓存的图像质量不理想,则可以使用较低优先级的线程调用 IThumbnailCache::GetThumbnail 并设置WTS_EXTRACT标志,以便提取缩略图。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 thumbcache.h