从流反序列化包数据,并创建一个包对象来表示正在读取的包。 虽然从包对象或包对象本身获取的打包 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 |
|---|---|
|
方法成功。 |
|
在 标志 参数中传递的值不是有效的 OPC_READ_FLAGS 枚举值。 |
|
此方法未为此版本的 Windows 实现。 |
|
至少有一个 流 和 包 参数为 NULL。 |
|
IStream 接口中的 HRESULT 错误代码。 |
|
包消耗错误组中的 HRESULT 错误代码。 |
|
部件 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 |
另请参阅
概述
引用