<Return[JKL]><Top>

LZSeek

Declare Function Api_LZSeek& Lib "lz32" Alias "LZSeek" (ByVal hfFile&, ByVal lOffset&, ByVal nOrigin&)

Declare Function LZSeek Lib "lz32" Alias "LZSeek" (ByVal hfFile As Long, ByVal lOffset As Long, ByVal nOrigin As Long) As Long

開始位置から指定したバイト数だけファイルポインタを移動する。

パラメータ
hFile
    ファイルのハンドルを指定する。
lOffset
    ファイルポインタを移動するバイト数を指定する。
iOrigin
    ポインタの開始位置を指定する。次のいずれかの値でなければならない。

    値     

意味                                                                                                          

    0

ファイルポインタをファイルの先頭から lOffset バイト移動する。

    1

ファイルポインタを現在の位置から lOffset バイト移動する。

    2

入力パラメータの 1 つが無効である。


戻り値
    関数が成功すると、ファイルの先頭からポインタの新しい位置までのオフセットを示す値が返る。
    関数が失敗すると、LZERROR_* コードが返る。このコードの値はすべて 0 より小さくなる。LZSeek 関数は、SetLastError 関数も

    SetLastErrorEx 関数も呼び出さない。失敗しても、スレッドの最終エラーコードは変わらない。
    LZSeek 関数が失敗すると、次のいずれかの LZERROR_* コードが返る。

    定数                                       

意味                                                                                                                            

    LZERROR_BADINHANDLE

ファイルポインタを移動するファイルのハンドルが無効である。ファイルを読み取ることができない。

    LZERROR_BADVALUE

パラメータの 1 つが受け入れ可能な値の範囲外である。

    LZERROR_GLOBLOCK

LZ ファイルハンドルをロックできない。

    拡張エラー情報がないため、GetLastError 関数は使わない。
 

解説
    ファイルのハンドルは、LZInit 関数または LZOpenFile 関数で取得したものでなければならない。
    ファイルが圧縮されていると、LZRead 関数はファイルの展開後のイメージ上で _lread 関数をエミュレートし、読み取ったバイトを指定された

    バッファにコピーする。
    OpenFile 関数、_llseek 関数、_lread 関数の代わりに、それぞれ LZOpenFile 関数、LZSeek 関数、LZRead 関数を使う。