代理策略更改后通知 WinINet
选择与 WinINet 设置范围相匹配的通知或刷新操作,然后检查其返回值。
当 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 连接移到其他中介。检查已应用的路径时,应评估新建的相关连接。如果其他应用程序仍在使用旧路径,请查明其配置来源、协议栈和账户。