我试图从我自己的WinForm中的Windows任务栏显示地址工具栏。我可以得到地址的CLSID toobar({01E04581-4EEE-11d0-BFE9-00AA005B4383}
),我可以得到一个IDeskBand
的引用。但是......那什么?Windows窗体中的主机IDeskBand
Guid bandCLSID = new Guid("{01E04581-4EEE-11d0-BFE9-00AA005B4383}");
Type bandType = Type.GetTypeFromCLSID(bandCLSID);
IDeskBand deskband = (IDeskBand)Activator.CreateInstance(bandType);
我已经试过在AxHost
收留了它,但地址栏是不是一个ActiveX控件。我已经打过电话
(deskband as IOleObjectWithSite).SetSite(various interfaces);
或
(deskband as IDockingWindow).ShowDW(true);
以及其他各种接口和他们的方法,但没有我似乎得到我的任何地方。如果我真的能够看到那个工具栏出现在任何地方,我会很高兴。但我似乎无法弥合将IDeskBand
引用并将其插入到我的Windows窗体之间的差距。
有没有人试过这个,比我有更多的尝试?
您能否通过地址工具栏deskBand提供您需要哪些功能的更多信息?从Windows 7开始,这个接口已被弃用,所以它在未来的Windows版本中可能不会被支持。 –
我希望能够将地址桌面带和其他桌面带(如链接或甚至自定义桌面)放入我的WinForm中,并使它们在任务栏上显示。 – deanis
所以也许它不是我想要实现的'IDeskBand'。我很确定地址和链接工具栏是DeskBand COM对象,这就是我跳转到IDeskBand的原因。所以我真正想要做的是查询目标COM对象,我可以通过它来获得匹配的Guid,实例化它,我使用'Activator.CreateInstance'完成。当我尝试跳转到在我的WinForm中托管COM对象时,事情正在崩溃。 – deanis