Share via


IXpsOMObjectFactory::CreatePackageFromStream method

Opens a stream that contains an XPS package, and returns an instantiated XPS document object tree.

Syntax

HRESULT CreatePackageFromStream(
  [in]          IStream       *stream,
  [in]          BOOL          reuseObjects,
  [out, retval] IXpsOMPackage **package
);

Parameters

  • stream [in]
    The stream that contains an XPS package.

  • reuseObjects [in]
    The Boolean value that indicates that the software is to attempt to optimize the document object tree by sharing objects that are identical in all properties and children.

    Value Meaning
    TRUE

    The software will attempt to optimize the object tree.

    FALSE

    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 code Description
S_OK

The method succeeded.

E_POINTER

stream or package is NULL.

 

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

Remarks

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 feature Action

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.

Requirements

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]

Header

Xpsobjectmodel.h

IDL

XpsObjectModel.idl

See also

IXpsOMObjectFactory

IXpsOMPackage

Packaging Errors

XPS Document Errors

Create a Blank XPS OM

XML Paper Specification