IXpsOMObjectFactory::CreatePackageFromFile method

Opens an XPS package file and returns an instantiated XPS document object tree.


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


filename [in]

The name of the XPS package file.

reuseObjects [in]

A Boolean value that indicates whether the software is to attempt to optimize the document object tree by sharing objects that are identical in all properties and children.


The software will attempt to optimize the object tree.


The software will not attempt to optimize the object tree.


package [out, retval]

A pointer to the new IXpsOMPackage interface that contains the resulting XPS document object tree.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the table that follows. For information about XPS document API return values that are not listed in this table, see XPS Document Errors.

Return codeDescription

The method succeeded.


filename or package is NULL.


This method calls the Packaging API. For information about the Packaging API return values, see Packaging Errors.


This method does not validate the contents of any stream-based resources that it loads from the stream into the objects of the XPS OM. Instead, the application must validate these resources before it uses them.

This method does not deserialize the document pages; it only deserializes the XPS package down to the page reference parts. The actual pages can be deserialized as they are needed, by calling the IXpsOMPageReference::GetPage method. Because the pages are not deserialized when GetPage is called, it is possible for this method to return S_OK or, if an attempt is made to load a problematic page in an XPS package, to return an error.

If you write an XPS OM immediately after you have read an XPS package into it, some of the original content might be lost or changed.

Some of the changes that can occur in such a case are listed in the table that follows:

Document featureAction

Digital signatures

Removed from document

DiscardControl part

Removed from document

Foreign document parts

Removed from document

FixedPage markup

Modified from original

Resource dictionary markup

Modified from original if Optimization flag is set


For information about using IXpsOMPackage interface in a program, see Create a Blank XPS OM.


Minimum supported client

Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | Windows Store apps]

Minimum supported server

Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | Windows Store apps]





See also

Packaging Errors
XPS Document Errors
Create a Blank XPS OM
XML Paper Specification