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
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
已找到覆盖层的索引。 |
|
此文件不存在覆盖。 |
|
PIDL 无效。 |
|
参数无效,例如,如果 pIndex 为 NULL。 |
|
调用应用程序传递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 或更高版本) |