Я пытаюсь установить прокси только для текущего экземпляра 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
.
IЕсть ли способ получить доступ к свойству HWND
этого объекта AxIWebBrowser2
, используя C #?