IXpsOMObjectFactory::CreatePackageFromFile 方法 (xpsobjectmodel.h)

打开 XPS 包文件并返回实例化的 XPS 文档对象树。

语法

HRESULT CreatePackageFromFile(
  [in]          LPCWSTR       filename,
  [in]          BOOL          reuseObjects,
  [out, retval] IXpsOMPackage **package
);

参数

[in] filename

XPS 包文件的名称。

[in] reuseObjects

一个布尔值,指示软件是否尝试通过共享所有属性和子级中相同的对象来优化文档对象树。

含义
软件将尝试优化对象树。
软件不会尝试优化对象树。

[out, retval] package

指向包含生成的 XPS 文档对象树的新 IXpsOMPackage 接口的指针。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误

返回代码 说明
S_OK
方法成功。
E_POINTER
filenamepackageNULL
 

此方法调用 打包 API。 有关打包 API 返回值的信息,请参阅 打包错误

注解

此方法不会验证它从流加载到 XPS OM 对象中的任何基于流的资源的内容。 相反,应用程序必须先验证这些资源,然后才能使用这些资源。

此方法不反序列化文档页;它仅将 XPS 包反序列化为页面引用部分。 可以通过调用 IXpsOMPageReference::GetPage 方法,根据需要反序列化实际页面。 由于调用 GetPage 时未反序列化页面,因此此方法可能会返回S_OK或者,如果尝试在 XPS 包中加载有问题的页面,则返回错误。

如果在将 XPS 包读入其中后立即写入 XPS OM,某些原始内容可能会丢失或更改。

下表中列出了在这种情况下可能发生的一些更改:

文档功能 操作
数字签名 从文档中删除
DiscardControl 部件 从文档中删除
外部文档部件 从文档中删除
FixedPage 标记 修改自原始
资源字典标记 如果设置了优化标志,则从原始修改
 

有关在程序中使用 IXpsOMPackage 接口的信息,请参阅 创建空白 XPS OM

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 xpsobjectmodel.h

另请参阅

创建空白 XPS OM

IXpsOMObjectFactory

IXpsOMPackage

IXpsOMPageReference::GetPage

打包错误

XML 纸张规范

XPS 文档错误