2011-04-28 56 views
4

嗨,我是新的shell扩展。 我阅读http://www.codeproject.com/KB/shell/overlayicon.aspx 文章,并且能够在名称中包含字符串“sample”的文件上显示覆盖图标。 现在我的问题是,我有一个应用程序,根据文件状态显示不同文件的不同叠加,如上传,上传,没有上传等。 请帮我如何设置特定路径中的特定文件/文件夹的叠加层在系统中。 谢谢根据状态在不同的文件上叠加图标

回答

2

只是应用你在那篇文章中学到的东西。你现在想做的事情几乎是一回事。 shell调用你的处理程序并要求重叠图标。您的代码检查项目的状态,并返回正确的覆盖图标。如果你不拥有这个物品,你告诉外壳根本不要画覆盖层。

您可以在MSDN上阅读有关Creating Icon Overlay Handlers的更多信息。

或者,作为David suggests hereRichard suggests here,你可以浏览TortoiseSVN的源代码(因为它是在GPL下),看看他们是怎么做的,如果你喜欢通过例子来学习。

但请记住,外壳强加a hard limit on the number of overlay icons可以注册。目前,该数字为15.如果您的应用程序尝试注册过多,或者您的用户安装了其他已注册覆盖的应用程序(如TortoiseSVN),则会遇到问题。您可能想要认真重新考虑这是否真的是显示信息的适当方式。

+0

感谢科迪格雷。我尝试然后会请求帮助 – Asghar 2011-04-28 11:32:08

+0

这是代码,请告诉我如何在这里更改条件,如我从shell获得文件路径,如果路径mathches那么这应该返回OK'IFACEMETHODIMP CFileIconOverlayExt :: IsMemberOf( LPCWSTR pwszPath, \t \t \t \t \t \t \t \t \t \t \t DWORD dwAttrib) { \t \t 如果(wcsstr(pwszPath,L “样品”)!= 0) \t \t \t \t返回S_OK; \t \t else \t \t return S_FALSE; }' – Asghar 2011-04-28 13:30:41

相关问题