IShellIconOverlay::GetOverlayIndex 方法 (shlobj_core.h)

获取系统映像列表中的覆盖索引。

语法

HRESULT GetOverlayIndex(
  [in]      PCUITEMID_CHILD pidl,
  [in, out] int             *pIndex
);

参数

[in] pidl

类型: PCUITEMID_CHILD

指向 ITEMIDLIST 结构的指针,该结构标识要显示其图标的对象。

[in, out] pIndex

类型: int*

指向一个值的指针,该值指示覆盖索引 (系统映像列表中的从 1 开始的) 。 此索引等效于使用 ImageList::SetOverlayImage 函数将覆盖图像添加到专用图像列表时指定的 iOverlay 值。

返回值

类型: HRESULT

此方法可以返回其中一个值。

返回代码 说明
S_OK
已找到覆盖层的索引。
S_FALSE
此文件不存在覆盖。
E_FAIL
PIDL 无效。
E_INVALIDARG
参数无效,例如,如果 pIndexNULL
E_PENDING
调用应用程序传递OI_ASYNC表示计算覆盖索引的操作需要一些时间。

注解

若要检索系统映像列表中的覆盖索引,请调用 SHGetIconOverlayIndex

如果在调用此方法时将 pIndex 设置为指向 OI_ASYNC,Shell 图标覆盖处理程序可能会返回E_PENDING而不是将覆盖索引存储在 pIndex 中。 此返回值指示计算覆盖是一个缓慢的操作,应在后台处理。 当 IShellIconOverlay 实现返回E_PENDING时,它会在没有OI_ASYNC标志的情况下在后台工作线程上调用。 如果在调用 GetOverlayIndex 时不使用 OI_ASYNC,则覆盖处理程序必须在返回之前计算覆盖索引并将值存储在 pIndex 中。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h
DLL Shell32.dll (5.0 或更高版本)

另请参阅

IShellIconOverlay