【发布时间】:2015-04-22 16:01:51
【问题描述】:
我想创建多个图标覆盖处理程序,以便根据文件的状态更改文件的覆盖图标。我正在寻找一种在同一个 dll 中实现所有处理程序的方法。根据GetOverlayInfo 文档,每次调用此函数时,我都必须返回相同的图标。那么当调用 GetOverlayInfo 时,我应该在我的多处理程序 dll 中返回什么图标?如何根据文件的状态提供不同的图标?
(我浏览了TortoiseOverlays项目的源码,每次调用GetOverlayInfo的时候好像会根据状态返回不同的图标,怎么回事?)
【问题讨论】:
-
GetOverlayInfo() 仅注册您要使用的叠加层,它被添加到系统图像列表中,之后无法更改。使用 IsMemberOf() 使覆盖对特定文件具有选择性。 CShellExt::GetOverlayInfo() 函数对于 TortoiseOverlays 注册的九个不同的 shell 扩展是通用的,这就是为什么你会看到它返回不同的图标。
标签: windows icons shell-extensions