我正在尝试使用C ++扩展Windows资源管理器(而不是IE),并添加一个自定义面板,应该长这样:
这里有一个类似的问题(使用C#):
这个问题是关于C#的,已经有了答案。
但是我认为答案有点太简略了,让我无法理解,以下是我所了解到的内容:
- 我需要实现一个BHO对象
- BHO对象应该实现IObjectWithSite和IDockingWindow接口
- 在SetSite方法中,调用QueryInterface来获取服务提供程序的指针,然后调用QueryService来获取停靠窗口框架的指针,最后调用AddToolBar添加自定义窗口。 这就是我迷失的地方
我的问题是:
- 我应该在什么时候创建我的自定义窗口?在对象初始化期间吗?
- 我认为在创建我的窗口之前,我应该获取父窗口的句柄(在我的情况下,我认为它应该是Windows资源管理器的句柄),我可以在哪里获取这个句柄?使用停靠窗口框架的指针吗?
- 我应该如何注册我的dll?我阅读了一些预览处理程序的示例代码,我们必须正确注册dll,才能被系统调用,对吗?
我已经尝试了几天来复制类似问题的解决方案,但到目前为止没有成功。
我真的很新于BHO和所有这些东西,请帮助我解决这个问题,谢谢。