2010-08-05 7 views
3

J'ai une application C# winforms standard avec un contrôle webbrowser traîné sur elle. Nous avons aussi un BHO C++ avec lequel nous interagissons généralement via COM quand il fonctionne dans IE7 ou IE8.Vous voulez activer BHO dans un contrôle WebBrowser intégré dans une application C# standard

Je ne vois aucun moyen de dire à la commande webbrowser de charger le BHO. Le BHO ne montre aucune interface graphique ou quoi que ce soit, il écoute juste le trafic http lorsqu'il est utilisé à partir de IE.

Toute aide serait grandement appréciée. Merci.

Répondre

2

Les BHO sont simplement des objets COM qui implémentent IObjectWithSite. Vous pouvez simplement créer une instance de votre BHO, interroger IObjectWithSite et appeler IObjectWithSite :: SetSite, en passant le pointeur IWebBrowser2 du contrôle webbrowser en tant que paramètre. Lorsque vous fermez, appelez SetSite à nouveau, en passant NULL. Si vous hébergez des BHO écrits par d'autres dont vous avez besoin pour satisfaire leurs exigences, certains peuvent exiger que votre programme soit nommé "iexplore.exe", certains peuvent nécessiter que vous ayez la même hiérarchie de fenêtres qu'une version particulière de IE, etc

+0

Merci Sheng, je vais essayer. – Shane