【问题标题】:multiple icon overlay handlers in one dll一个 dll 中的多个图标覆盖处理程序
【发布时间】:2015-04-22 16:01:51
【问题描述】:

我想创建多个图标覆盖处理程序,以便根据文件的状态更改文件的覆盖图标。我正在寻找一种在同一个 dll 中实现所有处理程序的方法。根据GetOverlayInfo 文档,每次调用此函数时,我都必须返回相同的图标。那么当调用 GetOverlayInfo 时,我应该在我的多处理程序 dll 中返回什么图标?如何根据文件的状态提供不同的图标?

(我浏览了TortoiseOverlays项目的源码,每次调用GetOverlayInfo的时候好像会根据状态返回不同的图标,怎么回事?)

【问题讨论】:

  • GetOverlayInfo() 仅注册您要使用的叠加层,它被添加到系统图像列表中,之后无法更改。使用 IsMemberOf() 使覆盖对特定文件具有选择性。 CShellExt::GetOverlayInfo() 函数对于 TortoiseOverlays 注册的九个不同的 shell 扩展是通用的,这就是为什么你会看到它返回不同的图标。

标签: windows icons shell-extensions


【解决方案1】:

您必须在单个 dll 中创建多个具有不同 CLSID 的处理程序。每个处理程序将只返回一个图标。这是唯一的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多