<Return[JKL]><Top>

LZRead

Declare Function Api_LZRead& Lib "lz32" Alias "LZRead" (ByVal hfFile&, ByVal lpvBuf$, ByVal cbread&)

Declare Function LZRead Lib "lz32" Alias "LZRead" (ByVal hfFile As Long, ByVal lpvBuf As String, ByVal cbread As Long) As Long

(最大で)指定したバイト数をファイルから読み取り、バッファにコピーする。

パラメータ
hFile
    読み取り元ファイルのハンドルを指定する。
lpBuffer
    ファイルから読み取ったバイトを受け取るバッファへのポインタを指定する。
cbRead
    ファイルから読み取るバイト数を指定する。

戻り値
    関数が成功すると、読み取ったバイト数を示す値が返る。
    関数が失敗すると、LZERROR_* コードが返る。このコードの値はすべて 0 より小さくなる。LZRead 関数は、SetLastError 関数も

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

    定数                                         

意味                                                                                                          

    LZERROR_BADINHANDLE

読み取り元ファイルのハンドルが無効である。ファイルを読み取ることができない。

    LZERROR_BADOUTHANDLE

コピー先ファイルのハンドルが無効である。ファイルへの書き込みができない。

    LZERROR_BADVALUE

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

    LZERROR_GLOBALLOC

開くことができる圧縮ファイルの最大数を超えたか、ローカルメモリを確保できない。

    LZERROR_GLOBLOCK

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

    LZERROR_READ

読み取り元ファイルの形式が無効である。

    LZERROR_WRITE

出力ファイルのための十分な空きがない。

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

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

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