我试图在自己的WinForm中显示Windows任务栏中的地址工具栏。 我可以获取地址工具栏的CLSID({01E04581-4EEE-11d0-BFE9-00AA005B4383}
),并且可以获得一个对其的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窗体中。
有人以前尝试过这样做,并比我取得了更多进展吗?
IDeskBand
。我相当确定地址和链接工具栏是 DeskBand COM 对象,这就是为什么我转向了IDeskBand
。所以我真正想做的是查询目标 COM 对象,我可以通过查询匹配的 GUID 来实现,然后使用Activator.CreateInstance
实例化它。但是当我尝试在我的 WinForm 中托管 COM 对象时,事情就出问题了。 - deanis