将覆盖图标设置为运行资源管理器而不重启

时间:2015-01-14 09:39:50

标签: visual-c++ overlay explorer shell-extensions

我想根据某些状态更改文件的叠加图标。 如果文件状态得到更改,叠加图标应该更改。 例如:如果文件被锁定,则与锁定相关的叠加图标应设置为&如果发布,则应设置不同的叠加图标。

1 个答案:

答案 0 :(得分:0)

设置叠加图标需要实现IShellIconOverlayIdentifier interface

registry中为COM dll注册编写注册表项,并为覆盖图标标识符注册另外registry次要求,请参阅下文:

Key:"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\TestShellIconOverlayIdentifiers"
with default value [CLSID_of_registered_DLL]

在此之后,一些功能需要在注册时调用以在已经运行的资源管理器实例的系统内存中插入覆盖图标,我在下面的帖子中找到了答案。  How can I programmatically refresh Windows Explorer?

请参阅TortoiseCVS - ShellUtils.cpp

上的"bool RebuildIcons()"功能