Shell Overlay Icon并不总是出现在Win 7中

时间:2011-06-06 22:58:38

标签: c++ com windows-shell

我编写了一个shell扩展,它实现了IShellIconOverlayIdentifier接口,以便在资源管理器中为图标添加叠加层。在32位WinXP机器上,一切运行良好。当我为64位Win7构建它时,叠加层只出现在资源管理器的侧边栏中,而不是其他地方。

奇怪的是,当我有IsMemberOf函数输出传递给它的文件名时,我可以看到每个文件都从主资源管理器窗口和桌面传递给它,并且该函数返回一个值,指示应该存在叠加层。然而,没有任何表现。有没有人遇到过这样的事情?我不确定我是否遗漏了注册表中的内容或者是什么。

提前致谢!

2 个答案:

答案 0 :(得分:1)

叠加图标的最大数量可能会限制在15以下。我知道有三个叠加保留用于系统使用。检查以下注册路径:

HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ ShellIconOverlayIdentifiers

我确定你会注意到叠加图标处理程序的放置位置。

答案 1 :(得分:0)

我似乎已经解决了这个问题。我知道系统有16个覆盖的硬限制,并且它位于11号位置,我已经读过它是覆盖窗口使用开始之上的限制,导致了这种奇怪的行为。