自動構成ファイルを使用しない検出
プロキシ自動構成ファイルがローカル ネットワークにデプロイされていない場合、 WinHttpGetProxyForUrl はプロキシ サーバーを見つけることができません。 WinHttpGetProxyForUrl が失敗した場合、ランタイム環境に応じて実行可能なプロキシ構成を取得するためのいくつかのフォールバック戦略が考えられます。 これには、ユーザー インターフェイスを使用したプロキシ設定の要求、WinHTTP "ProxyCfg.exe" ユーティリティを使用したレジストリへのプロキシ構成の保存、または WinHttpGetIEProxyConfigForCurrentUser を使用して、プロキシ サーバーが Internet Explorer の設定に一覧表示されているかどうかを確認する必要があります。
クライアントには ISP 経由などのインターネット直接接続があり、プロキシ サーバーは必要ないため、プロキシ自動構成ファイルがない可能性があります。
一方、プロキシ サーバーが必要な場合もありますが、ローカル ネットワークが WPAD をサポートしていない可能性があります。 この場合、プロキシ構成はユーザーから取得するか、クライアント コンピューターのどこかで見つかる必要があります。
COM+ や ASP アプリケーションなどの中間層サーバー環境で実行されている WinHTTP ベースのアプリケーションは、"ProxyCfg.exe" ユーティリティを使用して、レジストリで既定のプロキシ構成を設定するサーバー管理者に依存する必要があります。 この既定の構成情報は、WinHttpGetDefaultProxyConfiguration 関数を使用するか、WinHttpOpen 呼び出しで WINHTTP_ACCESS_TYPE_PRECONFIG フラグを指定するだけで取得できます。
一方、クライアント デスクトップ コンピューターで実行されている WinHTTP アプリケーションでは、Internet Explorer のプロキシ設定を調べることもできます。 WinHttpGetIEProxyConfigForCurrentUser は、呼び出し元が指定した WINHTTP_CURRENT_USER_IE_PROXY_CONFIG 構造体に、現在のアクティブな接続 (ダイヤルアップ、VPN、または LAN) の現在のユーザーの Internet Explorer プロキシ設定を入力します。 この構成は、自動検出が使用されていることを示している場合や、プロキシ自動構成ファイルの URL を指定したり、実際に使用するプロキシ サーバーを指定したり、3 つの組み合わせを指定したりできます。 この情報に PAC URL またはプロキシ サーバーが含まれている場合は、WinHTTP アプリケーションでそれらの使用を試すことができます。
WinHttpGetProxyForUrl 関数と WinHttpGetIEProxyConfigForCurrentUser 関数を使用するサンプルは、プラットフォーム ソフトウェア開発キット (SDK) WinHTTP サンプルにあります。