WinHttpGetProxyForUrlEx

指定した URL に対するプロキシデータを取得する。(WinHttpGetProxyForUrlEx)

WinHttpGetProxyForUrlEx hResolver, pcwszUrl, pAutoProxyOptions, pContext

hResolver : [intptr] WinHttpCreateProxyResolver 関数から返される WinHTTP リゾルバーハンドル。
pcwszUrl : [wstr] プロキシ情報を決定する対象の URL を含む、null 終端の Unicode 文字列へのポインタ。
pAutoProxyOptions : [var] 使用する auto-proxy オプションを指定する WINHTTP_AUTOPROXY_OPTIONS 構造体へのポインタ。
pContext : [int] 完了コールバック関数に渡されるコンテキストデータ。

(プラグイン / モジュール : winhttp.dll)

解説

指定した URL に対するプロキシデータを取得する。(WinHttpGetProxyForUrlEx)

[戻り値]
操作の結果を示すステータスコード。
(以下省略)

[備考]
この関数は HTTP リクエストのプロキシ設定を自動構成するための Web Proxy Auto-Discovery (WPAD)
プロトコルを実装する。WPAD プロトコルはプロキシ自動構成 (PAC) ファイルをダウンロードする。PAC ファイルは対象 URL
に対して使用するプロキシサーバーを特定するスクリプトである。PAC ファイルは通常、企業ネットワーク環境で IT
部門によって展開される。PAC ファイルの URL は明示的に指定することも、WinHttpGetProxyForUrlEx
にローカルネットワーク上の PAC ファイルの位置を自動検出させることもできる。WinHttpGetProxyForUrlEx は
ECMAScript ベースの PAC ファイルのみをサポートする。PAC ファイルは URL
ごとに異なるプロキシサーバーを返す可能性があるため、WinHttpGetProxyForUrlEx は URL
ごとに呼び出す必要がある。これは IT 部門が対象 URL (lpcwszUrl パラメータで指定)
をプロキシサーバー配列内の特定のプロキシにマッピング (ハッシュ)
することで、プロキシサーバーの負荷分散を実装できるため有用である。WinHttpGetProxyForUrlEx は
pAutoProxyOptions 構造体の dwFlags メンバーで自動検出が指定されている場合、autoproxy URL と
autoproxy スクリプトをキャッシュする。詳細は Autoproxy Cache
を参照。WinHttpGetProxyForUrlEx は完全に非同期でキャンセル可能な API
を提供するのに対し、WinHttpGetProxyForUrl はそうではない。また、WinHttpGetProxyForUrlEx は
PAC スクリプトから返された完全なプロキシ一覧をアプリケーションに提供し、"DIRECT"
へのフェールオーバーをよりよく扱えるようにし、必要に応じて SOCKS
を理解できるようにする。WinHttpGetProxyForUrlEx は常に非同期で実行され、成功時には即座に
ERROR_IO_PENDING を返す。コールバックは WinHttpOpen が提供する hSession に対して
WinHttpSetStatusCallback を呼び出して設定する。代わりに、WinHttpCreateProxyResolver
が提供する hResolver に対して WinHttpSetStatusCallback
を呼び出して、各呼び出しごとに固有のコールバックを設定できる。WinHttpSetStatusCallback は
WinHttpCreateProxyResolver の前に呼び出さなければならない。WinHttpSetStatusCallback
を呼び出すときは WINHTTP_CALLBACK_FLAG_REQUEST_ERROR |
WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE を使う。コールバックの使い方の詳細は
WINHTTP_STATUS_CALLBACK
を参照。WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE
のステータスでコールバックが返されたら、アプリケーションは WinHttpGetProxyForUrlEx
の呼び出しに使ったリゾルバーハンドルに対して WinHttpGetProxyResult を呼び出して、その呼び出しの結果を受け取れる。
ERROR_IO_PENDING
を返した後に呼び出しが失敗した場合は、WINHTTP_CALLBACK_STATUS_REQUEST_ERROR
のコールバックが発行される。この関数は常にプロセス外で実行される。

情報

プラグイン / モジュールwinhttp.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の winhttp.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_winhttp_gen2.hs