SetFilePointer |
Declare Function Api_SetFilePointer& Lib "kernel32" Alias "SetFilePointer" (ByVal hFile&, ByVal lDistanceToMove&, lpDistanceToMoveHigh&, ByVal dwMoveMethod&) |
||||||||
Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long |
|||||||||
開いているファイルのファイルポインタを移動する。 |
|||||||||
パラメータ
このハンドルは、GENERIC_READ または GENERIC_WRITE アクセス権を指定して作成したものでなければならない。 lpDistanceToMoveHigh パラメータで NULL 以外の値を指定すると、lpDistanceToMoveHigh と lpDistanceToMove の 2 個のパラメータ を組み合わせて 1 個の符号付き 64 ビット値を形成して、移動バイト数を指定する。 lpDistanceToMoveHigh が NULL の場合、lpDistanceToMove は 1 個の符号付き 32 ビット値として機能する。 lpDistanceToMoveHigh で正の値を指定するとファイルの前方(ファイルの終わりへ向かって)移動し、負の値を指定すると後方(ファイル
の先頭へ向かって)移動する。 上位 32 ビットが必要ない場合(ファイルの大きさが 2GB 以内)、このパラメータで NULL を指定できる。 NULL 以外の値を指定し、関数が成功した場合、このパラメータは、ファイルポインタの新しい位置を表す値の上位 DWORD を受け取
る。 これは、lDistanceToMove パラメータの符号拡張であり、lDistanceToMove パラメータ単独で、2GB ではなく 4GB の大きさを表せるように
なる。それ以外の値は拒否される。
また、lpDistanceToMoveHigh パラメータで NULL 以外の値を指定した場合、関数が成功すると、新しいファイルポインタの下位
DWORD が返り、そのパラメータが指す LONG 値に、新しいファイルポインタの上位 DWORD が格納される。
拡張エラー情報を取得するには、GetLastError 関数を使う。 ただし、INVALID_SET_FILE_POINTER に相当する数値は新しいファイルポインタの下位 DWORD として有効な値なので、 GetLastError 関数を呼び出してエラーが発生したかどうかをチェックしなければならない。
エラーが発生していた場合、GetLastError 関数は NO_ERROR 以外の値を返す。 |