Хост IDeskBand в форме Windows

Я пытаюсь отобразить панель инструментов Address с панели задач Windows в моем собственный WinForm. Я могу получить 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 , но панель инструментов Address не является элементом управления ActiveX. Я пробовал вызывать

(deskband as IOleObjectWithSite).SetSite(various interfaces);

или

(deskband as IDockingWindow).ShowDW(true);

, а также различные другие интерфейсы и их методы, но ничто из того, что я делаю, ни к чему не приводит. Я был бы вне себя от радости, если бы смог увидеть эту панель инструментов где угодно. Но я не могу преодолеть разрыв между наличием ссылки IDeskBand и ее подключением к моей Windows Form.

Кто-нибудь пытался это сделать раньше и продвинулся дальше, чем я?

12
задан casperOne 4 November 2011 в 20:40
поделиться