WinHttpWriteData 関数は、HTTP サーバーにリクエストデータを書き込む。
WinHttpWriteData hRequest, lpBuffer, dwNumberOfBytesToWrite, lpdwNumberOfBytesWritten
hRequest : [intptr] WinHttpOpenRequest から返される有効な HINTERNET ハンドル。この関数を呼び出す前に WinHttpSendRequest が完了するのを待つ。 lpBuffer : [intptr] サーバーに送信するデータを含むバッファへのポインタ。WinHttpWriteData が完了するまでこのバッファが有効であり続けるようにすること。 dwNumberOfBytesToWrite : [int] ファイルに書き込むバイト数を含む unsigned long 整数値。 lpdwNumberOfBytesWritten : [var] バッファに書き込まれたバイト数を受け取る unsigned long 整数変数へのポインタ。WinHttpWriteData 関数は処理やエラーチェックを行う前にこの値を 0 に設定する。WinHTTP を非同期で使う場合は、このパラメータを NULL に設定し、情報はコールバック関数で取得しなければならない。そうしないとメモリフォールトを引き起こす可能性がある。
(プラグイン / モジュール : winhttp.dll)
WinHttpWriteData 関数は、HTTP サーバーにリクエストデータを書き込む。 [戻り値] 成功した場合は TRUE を、失敗した場合は FALSE を返す。拡張エラー情報は GetLastError で取得する。返されるエラーコードには次のものがある: (以下省略) [備考] WinHTTP が非同期モード (WinHttpOpen で WINHTTP_FLAG_ASYNC が設定されている状態) で使われる場合でも、この関数は同期的にも非同期的にも動作しうる。この関数が FALSE を返した場合、GetLastError で拡張エラー情報を取得できる。TRUE を返した場合、WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE 完了通知を使ってこの関数が成功したかとパラメータの値を確認する。WINHTTP_CALLBACK_STATUS_REQUEST_ERROR 完了通知は、操作が非同期に完了したが失敗したことを示す。警告: WinHTTP を非同期で使う場合は、必ず lpdwNumberOfBytesWritten パラメータを NULL に設定し、書き込まれたバイト数はコールバック関数で取得すること。そうしないとメモリフォールトが発生する可能性がある。アプリケーションがデータを送信している間、WinHttpReceiveResponse を呼び出してデータ転送を終了できる。WinHttpCloseHandle が呼び出されるとデータ転送は中止される。WinHttpSetStatusCallback でステータスコールバック関数がインストールされている場合、WinHttpSetStatusCallback の dwNotificationFlags パラメータで設定された次の通知のうち該当するものがサーバーへのデータ送信の進捗を示す: (以下省略)
| プラグイン / モジュール | winhttp.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の winhttp.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_winhttp_gen2.hs |