我正在尝试使用C ++中的自定义面板扩展whindows explorer(NOT IE),它应该如下所示:
这是我发现的类似问题(在C#中): Similar question
问题是C#,已经得到了答案。
但我自己发现答案对我来说有点太简短了,这就是我得到的:
我的问题是:
我试图重现类似问题几天所说的话,但现在没有运气。
我对BHO和所有这些事情都很陌生,请帮助我解决这个问题,谢谢。
答案 0 :(得分:1)
对于这样的Explorer扩展,我创建了2个对象。首先实现BHO(IDispatch和IObjectWithSite)。第二个实现IObjectWithSite,IOleWindow,IDockingWindow,IInputObject和IOleCommandTarget。
1)显示窗口的逻辑取决于你想要实现的目标。
2)你可以进入Second.SetSite的父窗口:
Site.QueryInterface(IDockingWindowSite, FDockingWindowSite);
FDockingWindowSite.GetWindow(FParent);
3)只需将您的BHO注册为标准BHO。
我花了很长时间来创建和调试此类扩展。如果你不是这个领域的专家再想一想 - 你真的需要这个功能吗?但如果你真的认为自己需要,那么首先尝试创建并注册简单的BHO。只有当BHO正常工作时才添加IDockingWindow实现。