IThumbnailCache::GetThumbnail 方法 (thumbcache.h)

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

语法

HRESULT GetThumbnail(
  [in]            IShellItem      *pShellItem,
  [in]            UINT            cxyRequestedThumbSize,
  [in]            WTS_FLAGS       flags,
  [out, optional] ISharedBitmap   **ppvThumb,
  [out, optional] WTS_CACHEFLAGS  *pOutFlags,
  [out, optional] WTS_THUMBNAILID *pThumbnailID
);

参数

[in] pShellItem

类型: IShellItem*

指向要检索其缩略图的 Shell 项的指针。

[in] cxyRequestedThumbSize

类型: UINT

请求的缩略图大小(以像素为单位)。 最大值为 1024。

[in] flags

类型: WTS_FLAGS

WTS_FLAGS 枚举中的值的组合。 有关规则和可能的组合列表,请参阅“备注”部分。

[out, optional] ppvThumb

类型: ISharedBitmap**

当此方法成功返回时,接收用于访问缩略图的 对象的 ISharedBitmap 指针的地址。 此参数可以为 NULL

[out, optional] pOutFlags

类型: WTS_CACHEFLAGS*

指向一个值的指针,当此方法成功返回时,从 WTS_CACHEFLAGS 枚举接收以下标志的组合。

WTS_DEFAULT (0x00000000)

0x00000000。

WTS_LOWQUALITY (0x00000001)

0x00000001。 当返回的位图尺寸小于 cxyRequestedThumbSize 时设置。

WTS_CACHED (0x00000002)

0x00000002。 当返回的图像位于缓存中时设置。

[out, optional] pThumbnailID

类型: WTS_THUMBNAILID*

指向一个值的指针,当此方法成功返回时,该值接收返回的缩略图的唯一 ID。 此参数可以为 NULL,在这种情况下,缩略图 ID 将被丢弃。

返回值

类型: HRESULT

如果成功,则返回S_OK,否则返回标准 COM 错误值,包括以下内容:

返回代码 说明
E_INVALIDARG
参数无效。
WTS_E_FAILEDEXTRACTION
Shell 项不支持缩略图提取。 例如,.exe 或.lnk项。
WTS_E_EXTRACTIONTIMEDOUT
提取所花费的时间超过了允许的最长时间。 提取未完成。
WTS_E_SURROGATEUNAVAILABLE
代理进程不能用于提取过程。
WTS_E_FASTEXTRACTIONNOTSUPPORTED
已设置WTS_FASTEXTRACT标志,但快速提取不可用。

注解

如果提取缩略图,除非指定了WTS_EXTRACTDONOTCACHE,否则将缓存缩略图。

以下组合对 flags 参数有效。

WTS_INCACHEONLY
WTS_FASTEXTRACT
WTS_EXTRACT
WTS_EXTRACT |WTS_SLOWRECLAIM
WTS_FORCEEXTRACTION
WTS_FORCEEXTRACTION |WTS_SLOWRECLAIM
WTS_EXTRACTDONOTCACHE
 

GetImage 还使用此缓存,并提供一种更简单的方法来检索缩略图。 但是, GetImage 更通用,它将检索图标作为回退。

要求

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

另请参阅

IShellItemImageFactory::GetImage

IThumbnailCache