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