打开包含 XPS 包的流,并返回实例化的 XPS 文档对象树。
Syntax
HRESULT CreatePackageFromStream(
[in] IStream *stream,
[in] BOOL reuseObjects,
[out, retval] IXpsOMPackage **package
);
参数
[in] stream
包含 XPS 包的流。
[in] reuseObjects
指示软件尝试通过共享所有属性和子元素中完全相同的对象来优化文档对象树的布尔值。
| 价值 | Meaning |
|---|---|
|
该软件将尝试优化对象树。 |
|
该软件不会尝试优化对象树。 |
[out, retval] package
指向包含生成的 XPS 文档对象树的新 IXpsOMPackage 接口的指针。
返回值
该方法返回 HRESULT。 可能的值包括但不限于后面的表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误。
| 返回代码 | Description |
|---|---|
|
方法成功。 |
|
流 或 包 为 NULL。 |
此方法调用 打包 API。 有关打包 API 返回值的信息,请参阅 “打包错误”。
注解
此方法不会验证从流加载到 XPS OM 对象的任何基于流的资源的内容。 相反,应用程序必须在使用这些资源之前对其进行验证。
此方法不反序列化文档页;它仅反序列化 XPS 包到页面引用部分。 通过调用 IXpsOMPageReference::GetPage 方法,可以根据需要反序列化实际页面。 由于调用 GetPage 时不会反序列化页面,因此此方法可能会返回S_OK,或者如果尝试在 XPS 包中加载有问题的页面,则返回错误。
如果在将 XPS 包读入其中后立即写入 XPS OM,则某些原始内容可能会丢失或更改。
此类情况下可能发生的一些更改在下表中列出:
| 文档功能 | Action |
|---|---|
| 数字签名 | 从文档中删除 |
| DiscardControl 部件 | 从文档中删除 |
| 外部文档部件 | 从文档中删除 |
| FixedPage 标记 | 修改自原始 |
| 资源字典标记 | 如果设置了优化标志,则从原始修改 |
有关在程序中使用 IXpsOMPackage 接口的信息,请参阅 创建空白 XPS OM。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | 适用于 Windows Vista 的 Windows 7、带有 SP2 和平台更新的 Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | xpsobjectmodel.h |