Я пытаюсь сделать то же самое. Я прочитал около 5 статей codeproject (кстати, они довольно старые), но не смог правильно понять часть взаимодействия с COM. Возможно, потому что я не могу программировать на C ++.
Но потом я нашел эту страницу http://www.pinvoke.net/default.aspx/Interfaces/IDocHostUIHandler.html, которая кажется многообещающей. Он содержит интерфейс c #, который заявляет, что предоставляет желаемую функциональность. Однако я все еще не мог заставить это работать полностью, поэтому я был бы благодарен, если бы кто-то еще мог поспособствовать этому ответу.
Поскольку я не знаю, насколько вы знакомы с c # (кстати, я в значительной степени нуб), я опубликую некоторые дополнительные шаги здесь, используя VS2008. Добавьте файл Microsoft.mshtml в качестве ссылки на ваш проект, создайте новый интерфейс c # и поверх интерфейса добавьте 3 дополнительных оператора «using».
using System.Windows;
using System.Runtime.InteropServices;
using mshtml;
И вставьте код определения интерфейса. Затем заставьте контейнер WebBrowser реализовать этот интерфейс и все методы. Это то, как далеко я дошел до сих пор. Я все еще ищу способ перенаправить события браузера в контейнер.