WinHttpSetTimeouts

HTTP トランザクションに関わるタイムアウトを設定する。

WinHttpSetTimeouts hInternet, nResolveTimeout, nConnectTimeout, nSendTimeout, nReceiveTimeout

hInternet : [intptr] WinHttpOpen または WinHttpOpenRequest から返される HINTERNET ハンドル。
nResolveTimeout : [int] 名前解決に使うタイムアウト値 (ミリ秒単位) を指定する整数型の値。解決がこのタイムアウト値より長くかかった場合、処理はキャンセルされる。初期値は 0 で、タイムアウトしない (無限) ことを意味する。Windows Vista および Windows XP: NAME_RESOLUTION_TIMEOUT で DNS タイムアウトを指定すると、リクエストごとに 1 スレッドのオーバーヘッドが発生する。
nConnectTimeout : [int] サーバー接続要求に使うタイムアウト値 (ミリ秒単位) を指定する整数型の値。接続要求がこのタイムアウト値より長くかかった場合、リクエストはキャンセルされる。初期値は 60,000 (60 秒)。TCP/IP は、このパラメータの値に関わらず、3 段階の SYN/ACK 交換中のソケットセットアップ時にタイムアウトすることがある。
nSendTimeout : [int] リクエストの送信に使うタイムアウト値 (ミリ秒単位) を指定する整数型の値。リクエスト送信がこのタイムアウト値より長くかかった場合、送信はキャンセルされる。初期値は 30,000 (30 秒)。
nReceiveTimeout : [int] リクエストに対するレスポンス受信に使うタイムアウト値 (ミリ秒単位) を指定する整数型の値。レスポンスがこのタイムアウト値より長くかかった場合、リクエストはキャンセルされる。初期値は 30,000 (30 秒)。

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

解説

HTTP トランザクションに関わるタイムアウトを設定する。

[戻り値]
成功した場合は TRUE を、失敗した場合は FALSE を返す。拡張エラー情報は GetLastError
で取得する。返されるエラーコードには次のものがある。
(以下省略)

[備考]
WinHTTP が非同期モード (WinHttpOpen で WINHTTP_FLAG_ASYNC が設定されている状態)
で使われる場合でも、この関数は同期的に動作する。戻り値は成功または失敗を示す。拡張エラー情報は GetLastError で取得する。0
または -1 の値は、タイムアウトを無期限待機に設定する。0 より大きい値はタイムアウト値をミリ秒単位で設定する。たとえば 30,000
はタイムアウトを 30 秒に設定する。-1 以外の負の値はすべて関数を ERROR_INVALID_PARAMETER
で失敗させる。重要: WinHttpSetOption と WINHTTP_OPTION_RECEIVE_TIMEOUT
を使って小さなタイムアウトを設定すると、dwReceiveTimeout
パラメータで設定した値を上書きしてしまい、レスポンスが想定より早く終了することがある。これを避けるには、WINHTTP_OPTION_RECEIVE_TIMEOUT
オプションで dwReceiveTimeout より小さな値を設定しないこと。注: Windows XP および Windows 2000
については WinHTTP の開始ページの Run-Time Requirements セクションを参照。

情報

プラグイン / モジュール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