Когда приложение WinINet меняет политику прокси, запись постоянного значения и принуждение существующего потребителя пересмотреть его — две отдельные операции. Используйте параметр WinINet, соответствующий изменяемой области.

ПараметрДокументированное назначение
INTERNET_OPTION_SETTINGS_CHANGED, 39Уведомляет систему об изменении параметров реестра, чтобы они были проверены при следующем вызове InternetConnect
INTERNET_OPTION_REFRESH, 37Повторно читает данные прокси для соответствующего дескриптора InternetOpen
INTERNET_OPTION_PROXY_SETTINGS_CHANGED, 95Уведомляет экземпляры WinINet об изменении параметров прокси

Эти параметры используются через InternetSetOption. Требования к дескриптору и буферу относятся к выбранному параметру. Например, документация уведомления о параметрах прокси описывает пустой буфер и нулевую длину буфера, когда оповещаются все доступные экземпляры.

Держите обновление параметров, выбранный дескриптор и уведомление вместе в реализации. Проверяйте каждый логический результат и получайте ошибку Windows при неудачном вызове. Вспомогательная функция, игнорирующая любое возвращаемое значение, не может установить, удалось ли изменение или его уведомление.

Это поведение WinINet. Оно не перенастраивает несвязанный сеанс WinHTTP или явный прокси-объект приложения. Оно также не переносит установленное TCP-соединение к другому посреднику. Оценивайте только что созданное подходящее соединение при проверке применённого маршрута. Если другое приложение по-прежнему использует старый маршрут, определите источник его конфигурации, стек и учётную запись.

Похожие статьи