iOpcFactory::ReadPackageFromStream 方法 (msopc.h)

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

语法

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。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
flags 参数中传递的值不是有效的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 版本上不支持此方法。 有关详细信息,请参阅使用打包 API 入门适用于 Windows Vista 的平台更新

线程安全性

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

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

要求

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

另请参阅

使用打包 API 入门

IOpcFactory

加载包

OPC_READ_FLAGS

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包错误

适用于 Windows Vista 的平台更新

引用