InternetReadFile

InternetOpenUrl、FtpOpenFile、HttpOpenRequest が返したハンドルからデータを読み取る。

InternetReadFile hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead

hFile : [intptr] InternetOpenUrl、FtpOpenFile、HttpOpenRequest から返されたハンドル。
lpBuffer : [intptr] データを受け取るバッファへのポインタ。
dwNumberOfBytesToRead : [int] 読み取るバイト数。
lpdwNumberOfBytesRead : [var] 読み取ったバイト数を受け取る変数へのポインタ。作業前に 0 に設定される。

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

解説

InternetOpenUrl、FtpOpenFile、HttpOpenRequest が返したハンドルからデータを読み取る。

[戻り値]
成功時は TRUE、失敗時は FALSE。拡張エラー情報は GetLastError で取得する。必要に応じて
InternetGetLastResponseInfo も使う。

[備考]
基本的な ReadFile とほぼ同じだが、いくつかの違いがある。通常 HINTERNET
ハンドルから順次バイトストリームとしてデータを取得する。読み取るバイト数を dwNumberOfBytesToRead で指定し、データは
lpBuffer に返される。全データ取得には TRUE かつ lpdwNumberOfBytesRead が 0
になるまで繰り返し呼ぶ必要がある。これはキャッシュ更新にも重要。InternetOpenUrl で取得したハンドルの場合、WinINet
は FTP ディレクトリリストなどを HTML ストリームに変換する。バッファが小さすぎて 1 行の HTML が入らない場合
ERROR_INSUFFICIENT_BUFFER を返す。非同期実行中に完了しなかった場合は FALSE を返し
GetLastError が ERROR_IO_PENDING を返す。完了時は InternetStatusCallback が
INTERNET_STATUS_REQUEST_COMPLETE で呼ばれる。WinINet はサービス実装では使用しないこと。

情報

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