IShellIconOverlay 接口 (shlobj_core.h)

公开命名空间扩展用于为其包含的对象指定图标覆盖的方法。

继承

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

方法

IShellIconOverlay 接口包含以下方法。

 
IShellIconOverlay::GetOverlayIconIndex

获取系统映像列表中图标覆盖的索引。
IShellIconOverlay::GetOverlayIndex

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

注解

图标覆盖是放置在代表 Shell 对象的图标左下角的小图像。 它们通常用于向图标添加一些额外信息。 常用的图标覆盖是指示文件或文件夹图标表示快捷方式的小箭头。

图标覆盖是系统映像列表的一部分。 它们有两个标识符。 一个是一个基于 1 的覆盖索引,用于标识相对于图像列表中的其他覆盖的覆盖。 另一个是标识实际图像的图像索引。 这两个索引等效于在使用 ImageList::SetOverlayImage 将图标覆盖添加到专用图像列表时分别分配给 iOverlayiImage 参数的值。

在显示对象的图标之前,Shell 会调用关联文件夹的 IShellIconOverlay 接口来查询对象的图标是否应具有覆盖。 通常,它调用 IShellIconOverlay::GetOverlayIndex 来请求覆盖层的覆盖索引。 在某些情况下,Shell 可能会调用 IShellIconOverlay::GetOverlayIconIndex 来请求覆盖层的图像索引。 若要指定图标覆盖,方法必须返回请求的索引。 否则,返回S_FALSE。

若要指定图标覆盖,这两种方法必须首先通过调用 SHGetIconOverlayIndex 检索系统映像列表中的覆盖层索引。 首次调用 SHGetIconOverlayIndex 时,Shell 使用覆盖文件的文件名和索引将图像添加到系统映像列表。 在系统映像列表中显示覆盖层后,Shell 只需使用文件名和索引作为标识符。 还可以使用 SHGetIconOverlayIndex 检索多个标准系统覆盖的覆盖索引。 IShellIconOverlay::GetOverlayIndex 只是将覆盖索引返回到 Shell。 IShellIconOverlay::GetOverlayIconIndex 必须使用 INDEXTOOVERLAYMASK 宏将覆盖索引转换为等效的图像索引。

系统可支持的不同图标覆盖处理程序的数量受系统映像列表中图标覆盖的可用空间量的限制。 目前为图标覆盖分配了 15 个槽,其中一些由系统保留。 因此,仅当没有令人满意的替代项时,才应指定图标覆盖。

此接口由命名空间扩展实现,这些扩展需要为其对象指定图标覆盖。

应用程序通常不使用此接口。

要求

   
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h