C# 如何使用自定义面板扩展Windows资源管理器

C# 如何使用自定义面板扩展Windows资源管理器,c#,windows,shell,windows-explorer,C#,Windows,Shell,Windows Explorer,我想用自定义的底部或右侧面板(如下图)扩展Windows资源管理器 从我所阅读的内容来看,我认为我应该从实现IShellView开始。这是正确的吗?有人能给我一些在.net中如何实现这一点的建议吗 谢谢 您必须实现IDockWindow。结果如下所示: 其中一种情况是: 1) 使用IObjectWithSite支持创建BHO 2) 内部IObjectWithSite.SetSite调用Site.QueryInterface(IServiceProvider,ServiceProvider) 3

我想用自定义的底部或右侧面板(如下图)扩展Windows资源管理器

从我所阅读的内容来看,我认为我应该从实现IShellView开始。这是正确的吗?有人能给我一些在.net中如何实现这一点的建议吗

谢谢


您必须实现IDockWindow。结果如下所示:

其中一种情况是:

1) 使用IObjectWithSite支持创建BHO

2) 内部IObjectWithSite.SetSite调用Site.QueryInterface(IServiceProvider,ServiceProvider)

3) 然后调用ServiceProvider.QueryService(SID\u SShellBrowser、IDockingWindowFrame、DockingWindowFrame)

4) 然后使用实现IDockingWindow和IObjectWithSite的对象调用DockingWindowFrame.AddToolbar

5) 对象调用QueryInterface的IObjectWithSite内部(IDockingWindowsSite,DockingWindowsSite)


您可以在MSDN中找到其他详细信息。

谢谢@RaymondChen。在C++中?有什么提示吗?听起来你想要的是一个浏览器栏,正如Raymond Chen或Xearinox在你之前的问题中指出的那样-创建浏览器栏,不要问重复的问题@RaymondChen:谢谢,但是看起来在Win7()中不再支持探索者吧。还有其他提示吗?非常感谢您的回复@Denis。我有以下代码:
objectwebbrowser;QueryService(ref-guid、ref-riid、out-webBrowser);this.explorer=webBrowser作为InternetExplorer如何更改它以获取资源管理器窗口而不是InternetExplorer?您希望接收哪个接口?我希望获取指向windows资源管理器而不是InternetExplorer的指针。我应该使用
ShellBrowserWindow
?谢谢。我对写这类东西很陌生。你写“获取指向Windows资源管理器的指针”是什么意思?你想做什么?如果你想在资源管理器中添加新的面板,只需使用我在answer.Ok中写的代码。我想我做错了。你能给我一些类似代码的指针吗?