IMFByteStream::BeginRead 方法 (mfobjects.h)

从流开始异步读取操作。

语法

HRESULT BeginRead(
  [in] BYTE             *pb,
  [in] ULONG            cb,
  [in] IMFAsyncCallback *pCallback,
  [in] IUnknown         *punkState
);

参数

[in] pb

指向接收数据的缓冲区的指针。 调用方必须分配缓冲区。

[in] cb

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

[in] pCallback

指向回调对象的 IMFAsyncCallback 接口的指针。 调用方必须实现此接口。

[in] punkState

指向状态对象的 IUnknown 接口的指针,由调用方定义。 此参数可以为 NULL。 可以使用此对象来保存状态信息。 调用回调时,对象将返回到调用方。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

将所有数据读入缓冲区后,将调用回调对象的 IMFAsyncCallback::Invoke 方法。 此时,应用程序应调用 IMFByteStream::EndRead 来完成异步请求。

异步读取处于挂起状态时,请勿读取、写入、释放或重新分配缓冲区。

实现说明:此方法应通过将要读取的字节数(由 在正确 读取参数中返回的值指定)添加到当前位置来更新流中的当前位置。 其他可以更新当前位置的方法有 BeginReadWriteBeginWriteSeekSetCurrentPosition

如果安装了 Windows Media Format 11 SDK 可再发行组件,则此接口在以下平台上可用:

  • Windows XP with Service Pack 2 (SP2) 及更高版本。
  • Windows XP Media Center Edition 2005 KB900325 (windows XP Media Center Edition 2005) 和KB925766 (2006 年 10 月 Windows XP Media Center Edition 更新汇总) 安装。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)
Library Mfuuid.lib

另请参阅

IMFByteStream