IAVIStream::Read 方法 (vfw.h)

Read 方法从流中读取数据,并将其复制到应用程序定义的缓冲区。 如果未提供缓冲区,则确定检索下一个数据缓冲区所需的缓冲区大小。 在应用程序使用 AVIStreamRead 函数时调用。

语法

HRESULT Read(
  LONG   lStart,
  LONG   lSamples,
  LPVOID lpBuffer,
  LONG   cbBuffer,
  LONG   *plBytes,
  LONG   *plSamples
);

参数

lStart

要读取的起始样本或帧编号。

lSamples

要读取的示例数。

lpBuffer

指向要包含流数据的应用程序定义缓冲区的指针。 还可以指定 NULL 来请求所需的缓冲区大小。 许多应用程序在每个读取操作之前都查询缓冲区大小,以查看需要多大的缓冲区。

cbBuffer

lpBuffer 指定的缓冲区的大小(以字节为单位)。

plBytes

指向接收读取的字节数的缓冲区的指针。

plSamples

指向接收读取的样本数的缓冲区的指针。

返回值

如果成功,则返回AVIERR_OK;如果缓冲区不够大,则返回AVIERR_BUFFERTOOSMALL以容纳数据。 如果成功, Read 还会返回包含) (样本的帧数的数据缓冲区,或者返回所需的缓冲区大小(以字节为单位)。

注解

对于用 C++ 编写的处理程序, Read 具有以下语法:


HRESULT Read(LONG lStart, LONG lSamples, 
    LPVOID lpBuffer, LONG cbBuffer, 
    LONG *plBytes, LONG *plSamples); 
 

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 vfw.h
Library Vfw32.lib

另请参阅

自定义文件和流处理程序接口

自定义文件和流处理程序