我試圖從我自己的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