平台 SDK: 文件存储

LZRead

LZRead函数从文件读取(至多)指定的字节数并将它们复制到缓冲区中。

INT LZRead(
  INT hFile,       // LZ文件句柄到文件
  LPSTR lpBuffer,  // 字节缓冲区
  INT cbRead       // 字节数
);

参数

  • hFile

  • [in] 源文件句柄。

  • lpBuffer

  • [in] 指向接收从文件中读取的字节的缓冲区的指针。

  • cbRead

  • [in] 指定要读取的字节数。

返回值

如果函数成功,则返回值指定读取的字节数。

如果函数失败,返回值是一个LZERROR_ *代码。 这些代码的值小于零。 请注意,LZRead既不会调用SetLastError也不会调用SetLastErrorEx; 因此,它的失败不会影响线程的最后错误代码。

以下是LZRead在失败时可以返回的错误代码列表。

含义
LZERROR_BADINHANDLE识别源文件的句柄无效。 该文件无法读取。
LZERROR_BADOUTHANDLE标识目标文件的句柄无效。 该文件不能写入。
LZERROR_BADVALUE其中一个输入参数无效。
LZERROR_GLOBALLOC已打开压缩文件的最大数量已超出或无法分配本地内存。
LZERROR_GLOBLOCKLZ文件句柄不能被锁定。
LZERROR_READ源文件格式无效。
LZERROR_WRITE输出文件没有足够的空间。


此函数没有扩展的错误信息; 不要调用GetLastError。

备注

必须通过调用LZInit或LZOpenFile函数来检索标识文件的句柄。

如果文件被压缩,LZRead会在文件的扩展图像上模拟_lread函数,并将数据字节复制到指定的缓冲区中。

应用程序必须调用LZOpenFile,LZSeek和LZRead函数,而不是OpenFile,_llseek和_lread函数。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Lzextend.h; 包含于 Windows.h.
  库: 使用Lzl32.lib.