InternetReadFile のファイル位置を設定する。本呼び出しは同期だが、後続の InternetReadFile の呼び出しは、データがキャッシュから利用可能でなく、かつサーバーがランダムアクセスをサポートしていない場合にブロックしたり pending を返したりする可能性がある。
InternetSetFilePointer hFile, lDistanceToMove, lpDistanceToMoveHigh, dwMoveMethod, dwContext
hFile : [intptr] InternetOpenUrl (HTTP または HTTPS URL に対するもの)、または HttpOpenRequest (GET または HEAD HTTP 動詞を使用し HttpSendRequest または HttpSendRequestEx に渡されたもの) の以前の呼び出しから返されたハンドル。本ハンドルは INTERNET_FLAG_DONT_CACHE または INTERNET_FLAG_NO_CACHE_WRITE を設定して作成されたものであってはならない。 lDistanceToMove : [int] ファイルポインタを移動する符号付き 64 ビットバイト数の下位 32 ビット。Internet Explorer 7 以前: InternetSetFilePointer はポインタを LONG の範囲内でのみ移動していた。この古いバージョンの関数を呼び出す際、lpDistanceToMoveHigh は予約されており 0 に設定すべきである。正の値はファイル内でポインタを前方に、負の値は後方に移動する。 lpDistanceToMoveHigh : [var] 符号付き 64 ビット移動距離の上位 32 ビットへのポインタ。上位 32 ビットが不要な場合、本ポインタは NULL に設定しなければならない。NULL でない場合、本パラメータは新しいファイルポインタ値の上位 DWORD も受け取る。正の値はファイル内でポインタを前方に、負の値は後方に移動する。Internet Explorer 7 以前: InternetSetFilePointer はポインタを LONG の範囲内でのみ移動していた。この古いバージョンの関数を呼び出す際、lpDistanceToMoveHigh は予約されており 0 に設定すべきである。 dwMoveMethod : [int] dwContext : [int] 本パラメータは予約されており、0 を指定しなければならない。
(プラグイン / モジュール : wininet.dll)
InternetReadFile のファイル位置を設定する。本呼び出しは同期だが、後続の InternetReadFile の呼び出しは、データがキャッシュから利用可能でなく、かつサーバーがランダムアクセスをサポートしていない場合にブロックしたり pending を返したりする可能性がある。 [戻り値] 関数が成功した場合、現在のファイル位置を返す。INVALID_SET_FILE_POINTER という戻り値は失敗の可能性を示し、その後 GetLastError の呼び出しが必要である。INVALID_SET_FILE_POINTER は新しいファイルポインタの下位 DWORD として有効な値であるため、呼び出し側はエラーが発生したかどうかを判断するために、関数の戻り値と GetLastError によって返されるエラーコードの両方をチェックしなければならない。エラーが発生した場合、InternetSetFilePointer の戻り値は INVALID_SET_FILE_POINTER となり、GetLastError は NO_ERROR 以外の値を返す。関数が成功し lpDistanceToMoveHigh が NULL の場合、戻り値は新しいファイルポインタの下位 DWORD である。なお関数が INVALID_SET_FILE_POINTER 以外の値を返した場合、InternetSetFilePointer の呼び出しは成功しており GetLastError を呼び出す必要はない。関数が成功し lpDistanceToMoveHigh が NULL でない場合、戻り値は新しいファイルポインタの下位 DWORD であり、lpDistanceToMoveHigh には新しいファイルポインタの上位 DWORD が格納される。新しいファイルポインタが負の値である場合、関数は失敗し、ファイルポインタは移動されず、GetLastError によって返されるコードは ERROR_NEGATIVE_SEEK となる。lpDistanceToMoveHigh が NULL であり、新しいファイル位置が 32 ビット値に収まらない場合、関数は失敗し INVALID_SET_FILE_POINTER を返す。 [備考] InternetReadFile によってファイルの末尾に到達した後は、本関数を使用できない。HttpOpenRequest で作成され HttpSendRequestEx で送信された HINTERNET ハンドルの場合、InternetSetFilePointer を使用する前にハンドルに対して HttpEndRequest を呼び出さなければならない。コンテンツ長が不明な場合、InternetSetFilePointer を確実に使用することはできない。WinINet API の他のすべての側面と同様に、本関数は DllMain やグローバルオブジェクトのコンストラクタ・デストラクタの中から安全に呼び出すことはできない。InternetSetFilePointer は時間とともに変更されてきた。Internet Explorer 7 以前ではポインタを LONG の範囲内でのみ移動していた。この古いバージョンの関数を呼び出す際、lDistanceToMove に値全体が格納される。正の値はファイル内でポインタを前方に、負の値は後方に移動する。lpDistanceToMoveHigh は予約されており 0 に設定される。現行バージョンでは lpDistanceToMoveHigh は意味のある値であり、負の値も指定可能である。注意: WinINet はサーバー実装をサポートしていない。さらに、サービスから使用すべきでもない。サーバー実装やサービスでは Microsoft Windows HTTP Services (WinHTTP) を使用すること。
| プラグイン / モジュール | wininet.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の wininet.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_wininet_gen2.hs |