HttpAddRequestHeadersW

1 つ以上の HTTP リクエストヘッダーを HTTP リクエストハンドルに追加する。(HttpAddRequestHeadersW)

HttpAddRequestHeadersW hRequest, lpszHeaders, dwHeadersLength, dwModifiers

hRequest : [intptr] HttpOpenRequest 関数の呼び出しから返されたハンドル。
lpszHeaders : [wstr] リクエストに追加するヘッダーを格納した文字列変数へのポインタ。各ヘッダーは CR/LF (キャリッジリターン/ラインフィード) のペアで終端しなければならない。
dwHeadersLength : [int] lpszHeaders のサイズ (TCHAR 単位)。本パラメータが -1L の場合、関数は lpszHeaders がゼロ終端 (ASCIIZ) であると仮定し、長さを計算する。
dwModifiers : [int] 

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

解説

1 つ以上の HTTP リクエストヘッダーを HTTP リクエストハンドルに追加する。(HttpAddRequestHeadersW)

[戻り値]
成功した場合は TRUE を、失敗した場合は FALSE を返す。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
HttpAddRequestHeaders は HTTP リクエストハンドルに追加の自由形式ヘッダーを追加するもので、HTTP
サーバーに送信される正確なリクエストを細かく制御する必要がある高度なクライアントによる使用を想定している。なお基本的な
HttpAddRequestHeaders
では、アプリケーションは複数のヘッダーを単一のバッファで渡すことができる。アプリケーションがヘッダーの削除または置換を試みる場合、lpszHeaders
に指定できるヘッダーは 1 つだけである。注意: HttpAddRequestHeadersA 関数はヘッダーを ANSI 文字ではなく
ISO-8859-1 文字として表現する。HttpAddRequestHeadersW 関数はヘッダーを ISO-8859-1 文字を
UTF-16LE 文字に変換したものとして表現する。その結果、追加するヘッダーに非 ASCII
文字を含む可能性がある場合、HttpAddRequestHeadersW 関数を使用するのは決して安全ではない。代わりにアプリケーションは
MultiByteToWideChar および WideCharToMultiByte 関数で Codepage パラメータに 28591
を指定し、ANSI 文字と UTF-16LE 文字の間でマッピングできる。WinINet API の他のすべての側面と同様に、本関数は
DllMain やグローバルオブジェクトのコンストラクタ・デストラクタの中から安全に呼び出すことはできない。注意: WinINet
はサーバー実装をサポートしていない。さらに、サービスから使用すべきでもない。サーバー実装やサービスでは Microsoft Windows
HTTP Services (WinHTTP) を使用すること。
> [!NOTE] > wininet.h ヘッダーは HttpAddRequestHeaders
をエイリアスとして定義しており、UNICODE プリプロセッサ定数の定義に基づいて本関数の ANSI 版または Unicode
版を自動的に選択する。エンコーディング中立のエイリアスとエンコーディング中立でないコードを混在させると、コンパイルエラーや実行時エラーの原因となるミスマッチが発生する可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

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