Я пытаюсь установить прокси только для текущего экземпляра WebBrowserControl. Документация ужасна, но я считаю, что если я вызову wininet.dll InternetSetOption, передав дескриптор IntPtr внутреннему браузеру, используемому WebBrowserControl, в качестве первого параметра, тогда метод повлияет только на текущий экземпляр (и я могу установить прокси, используя этот метод http://msdn.microsoft.com/en-us/library/aa385114(v=VS.85).aspx). Однако WebBrowserControl не предоставляет никаких средств для доступа к этому дескриптору. Я часами гуглил и искал SO, и кажется, что это было бы очень полезно для многих людей, но никто еще не понял этого!
WebBrowserControl имеет свойство под названием AxIWebBrowser2, которое является COM-объектом, для которого мне нужен дескриптор. Интерфейс, который MS использует для этого, называется UnsafeNativeMethods.IWebBrowser2 и имеет свойство HWND, которое, как мне кажется, мне нужно. Однако UnsafeNativeMethods.IWebBrowser2 помечен как internal. Используя отражение в WebBrowserControl, я могу получить значение частного свойства AxIWebBrowser2, но тип на нем отображается как System.__ComObject. Я не могу преобразовать этот System.__ComObject в IWebBrowser2, потому что он является внутренним для сборки Windows.Forms.
Есть ли способ получить доступ к свойству HWND этого объекта AxIWebBrowser2 с помощью С#?