IStreamAsync::ReadAsync 方法 (shobjidl.h)

以异步方式从流中读取信息。 例如,Shell 在异步传输文件项时对文件项实现此接口。

语法

HRESULT ReadAsync(
  [out]           void         *pv,
  [in]            DWORD        cb,
  [out, optional] LPDWORD      pcbRead,
  [in]            LPOVERLAPPED lpOverlapped
);

参数

[out] pv

类型: void*

此方法成功返回时,返回一个 长度为 cb 字节的缓冲区,并包含读取操作中信息的 印刷板Read 字节。

[in] cb

类型:DWORD

要从流中读取的字节数。

[out, optional] pcbRead

类型: LPDWORD

指向 DWORD 值的指针,当此方法成功返回时,该值将声明读取到 pv 指向的缓冲区的实际字节数。 此值可以为 NULL

[in] lpOverlapped

类型: LPOVERLAPPED

指向 OVERLAPPED 结构的指针,该结构包含异步读取操作中使用的信息。

返回值

类型: HRESULT

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

注解

IStreamAsync::ReadAsync 应在开始输入/输出时将 OVERLAPPED 结构的 hEvent 成员指定的事件重置为非对齐状态, (I/O) 操作。

此方法已在 Shell 中作为围绕公共 ReadFile API 的精简包装器实现。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl.h