2011-11-04 92 views
0

在我的项目中,我需要为文件系统中选定的文件和文件夹实现图标叠加。当你右键单击文件/文件夹并选择上下文菜单时,文件/文件夹的图标必须覆盖与一个小图标。Shell图标扩展编程

我新的Windows外壳程序,并没有足够的时间来做[R & d

回答

0

嗯,我知道它的晚来回答你的问题,但是这可能会提供一些线索给他人,甚至你,如果安:我现在还不知道。

通常,在上下文菜单和图标叠加处理程序之间需要一些共享媒体/结构。

你可以让map/hash包含文件/文件夹的路径,这些文件/文件夹需要在图标叠加处理程序中有叠加图标。处理程序每​​次都要求shell搜索路径,并从IShellIconOverlayIdentifier :: IsMemberOf返回S_OK,否则返回S_FALSE。

现在,您需要找到一种通信方式,因此当您的上下文菜单命令被触发时,它应该将文件/文件夹的路径发送到图标覆盖处理程序中的列表线程,在此线程将地图中的路径插入处理程序用来确定是否将图标放在请求的文件/文件夹上。

不要忘记在此共享地图上实施合适的锁定。

另一个问题是,如果您需要图标在Windows重新启动后仍然保持可用,您可以定期将映射内容转储到磁盘文件,并在每次启动shell时重新填充它。