没办法的,只能用多个IShellIconOverlayIdentifier实现,每个对应一个图标。可以放在一个dll中。SVN这样的程序也是用多个IShellIconOverlayIdentifier实现的,可以去看一下注册表中的SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers,每项都对应一个。另外,图标覆盖是有总数限制的,超出限制个数的就无效了,优先使用刚才那个注册表项前面的。
调试欢乐多
1.Explorer是根据注册表顺序加载的,如果两个icon覆盖对应一个文件,会只加载第一个;
2.即使调整GetPriority中的优先级,还是加载第一个,图标不变化如果您有类似经验加我QQ:285077416,谢谢您了;
第三个参数的值(索引值)可以用case语句给出
每次覆盖图标要重启explorer