ISequentialStream::Read 方法 (objidl.h)

Read 方法从当前搜寻指针开始,将指定数量的字节从流对象读取到内存中。

语法

HRESULT Read(
  [out] void  *pv,
  [in]  ULONG cb,
  [out] ULONG *pcbRead
);

参数

[out] pv

指向要读取流数据的缓冲区的指针。

[in] cb

要从流对象读取的数据的字节数。

[out] pcbRead

指向 ULONG 变量的指针,该变量接收从流对象读取的实际字节数。

注意 读取的字节数可以为零。
 

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK 已成功从流对象读取所有请求的数据; cb 中请求的字节数与 在读中返回的字节数相同。
S_FALSE 在 cbRead 中返回的值小于 cb 中请求的字节数。 这表示已到达流的末尾。 读取的字节数指示已填充 pv 缓冲区的量。
E_PENDING 仅异步存储:部分或全部要读取的数据当前不可用。
STG_E_ACCESSDENIED 调用方没有读取此流对象所需的权限。
STG_E_INVALIDPOINTER 其中一个指针值无效。
STG_E_REVERTED 对象在事务树中的上方还原操作已失效。

注解

此方法将字节从此流对象读取到内存中。 必须在 STGM_READ 模式下打开流对象。 此方法按读取的实际字节数调整搜寻指针。

实际读取的字节数也会在 参数中返回。

给调用方的说明

如果发生错误或在读取操作期间到达流的末尾,则实际读取的字节数可能小于请求的字节数。 应始终将返回的字节数与请求的字节数进行比较。 如果返回的字节数小于请求的字节数,则通常表示 Read 方法尝试读取流末尾之后的读取。

应用程序应处理返回的错误和 S_OK 流结束读取操作的返回值。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objidl.h
Library Uuid.lib
DLL Ole32.dll

另请参阅

ISequentialStream::Write

IStorage::OpenStream

IStream

IStream - 复合文件实现

STGMOVE