WinINet アプリケーションがプロキシ ポリシーを変更するとき、永続値を書き込むことと、既存の利用者にそれを再検討させることは別々の操作です。変更するスコープに合った WinINet オプションを使用します。

オプション文書化された目的
INTERNET_OPTION_SETTINGS_CHANGED, 39レジストリ設定が変更されたことをシステムに通知し、後続の InternetConnect 呼び出しで検証されるようにする
INTERNET_OPTION_REFRESH, 37該当する InternetOpen ハンドルのプロキシ データを読み直す
INTERNET_OPTION_PROXY_SETTINGS_CHANGED, 95プロキシ設定が変更されたことを WinINet インスタンスに通知する

これらのオプションは InternetSetOption を介して使用します。ハンドルとバッファの要件は、選択したオプションに属します。たとえば、プロキシ設定の通知に関するドキュメントでは、利用可能なすべてのインスタンスに警告するときに null バッファとバッファ長ゼロを記述しています。

設定の更新、選択したハンドル、通知を実装内でまとめて扱います。各ブール値の結果を確認し、呼び出しが失敗したときは Windows のエラーを取得します。すべての戻り値を無視するヘルパーでは、変更やその通知が成功したかどうかを判断できません。

これは WinINet の動作です。無関係な WinHTTP セッションやアプリケーションの明示的なプロキシ オブジェクトを再構成するものではありません。確立済みの TCP 接続を別の中間者へ移動するものでもありません。適用されたルートを確認するときは、新しく作成された該当する接続を評価します。別のアプリケーションがまだ古いルートを使用している場合は、その構成の取得元、スタック、アカウントを特定します。

関連記事