Я пытаюсь отобразить панель инструментов "Адреса" на панели задач Windows в моей собственной WinForm. Я могу получить CLSID адреса toobar ({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-форме.
Кто-нибудь пытался это сделать раньше и получил больше, чем я?