IOpcFactory::ReadPackageFromStream 方法 (msopc.h)

从流反序列化包数据,并创建一个包对象来表示正在读取的包。 虽然从包对象或包对象本身获取的打包 API 对象仍在使用中,但流可用于访问包数据。

Syntax

HRESULT ReadPackageFromStream(
  [in]          IStream        *stream,
  [in]          OPC_READ_FLAGS flags,
  [out, retval] IOpcPackage    **package
);

参数

[in] stream

指向流的 IStream 接口的指针。

流必须可读、可查找、具有大小,并且必须包含包数据。 此外,如果流不可克隆,它将按顺序缓冲和读取,从而导致开销。

[in] flags

该值指定用于缓存包组件的读取设置,并针对 OPC 符合性要求对其进行验证。

[out, retval] package

指向包对象的 IOpcPackage 接口的指针,该接口表示正在通过流读取的包。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中的值。

返回代码 Description
S_OK
方法成功。
E_INVALIDARG
标志 参数中传递的值不是有效的 OPC_READ_FLAGS 枚举值。
E_NOTIMPL
此方法未为此版本的 Windows 实现。
E_POINTER
至少有一个 参数为 NULL
IStream 接口错误
IStream 接口中的 HRESULT 错误代码。
包消耗错误
包消耗错误组中HRESULT 错误代码。
部件 URI 错误
部件 URI 错误组中HRESULT 错误代码。

注解

当使用同一流反序列化包时,请勿使用流序列化包数据,因为尝试可能会导致未定义的行为。

打包 API 可以与映射 OPC 中指定的 ZIP 存档的包进行交互,这些包基于 Zip32 (ZIP 2.0) 或 Zip64 (ZIP 4.5) 编码。

有关如何使用此方法加载包的信息,请参阅 “加载包 编程任务”。

在早期版本的 Windows 上支持

在 Windows 7 之前的 Windows 版本中不支持此方法。 有关详细信息,请参阅 Windows Vista 的打包 API平台更新入门。

线程安全性

打包对象不是线程安全的。

有关详细信息,请参阅 打包 API 入门

要求

Requirement 价值
最低支持的客户端 Windows 7 [仅限桌面应用]
支持的最低服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows操作系统
Header msopc.h

另请参阅

打包 API 入门

IOpcFactory

加载包

OPC_READ_FLAGS

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包错误

适用于 Windows Vista 的平台更新

引用