Хотите включить BHO в элементе управления WebBrowser, встроенном в стандартное приложение C # - PullRequest
3 голосов
/ 06 августа 2010

У меня есть стандартное приложение winforms C # с перетаскиваемым на него управлением веб-браузером. У нас также есть C ++ BHO, с которым мы обычно взаимодействуем через COM, когда он работает внутри IE7 или IE8.

Я не вижу способа сообщить элементу управления веб-браузера о загрузке BHO. BHO не показывает никакого GUI или чего-либо еще, он просто слушает http-трафик при использовании из IE.

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

2 голосов
/ 10 августа 2010

BHO - это просто COM-объекты, которые реализуют IObjectWithSite.Вы можете просто создать экземпляр своего BHO, запросить IObjectWithSite и вызвать IObjectWithSite :: SetSite, передав в качестве параметра указатель IWebBrowser2 элемента управления webbrowser.Когда вы завершаете работу, снова вызывайте SetSite, передавая NULL.

Если вы размещаете BHO, написанные другими, вам также необходимо выполнить их требования, некоторые могут требовать, чтобы ваша программа называлась iexplore.exe,некоторые могут потребовать, чтобы у вас была та же иерархия окон, что и у конкретной версии IE, и т. д.

...