Partager via


Méthode IXpsOMObjectFactory ::CreatePackageFromStream (xpsobjectmodel.h)

Ouvre un flux qui contient un package XPS et retourne une arborescence d’objets de document XPS instanciée.

Syntaxe

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

Paramètres

[in] stream

Flux qui contient un package XPS.

[in] reuseObjects

Valeur booléenne qui indique que le logiciel tente d’optimiser l’arborescence d’objets de document en partageant des objets identiques dans toutes les propriétés et tous les enfants.

Valeur Signification
VRAI
Le logiciel tente d’optimiser l’arborescence d’objets.
FAUX
Le logiciel ne tente pas d’optimiser l’arborescence d’objets.

[out, retval] package

Pointeur vers la nouvelle interface IXpsOMPackage qui contient l’arborescence d’objets de document XPS résultante.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles incluent, sans s’y limiter, celles du tableau qui suit. Pour plus d’informations sur les valeurs de retour de l’API de document XPS qui ne sont pas répertoriées dans ce tableau, consultez Erreurs de document XPS.

Code de retour Description
S_OK
S_OK
E_POINTER
stream ou package a la valeur NULL.
 

Cette méthode appelle l’API d’empaquetage . Pour plus d’informations sur les valeurs de retour de l’API d’empaquetage, consultez Erreurs d’empaquetage.

Remarques

Cette méthode ne valide pas le contenu des ressources basées sur le flux qu’elle charge à partir du flux dans les objets du modèle modèle XPS. Au lieu de cela, l’application doit valider ces ressources avant de les utiliser.

Cette méthode ne désérialise pas les pages de document ; il désérialise uniquement le package XPS jusqu’aux parties de référence de page. Les pages réelles peuvent être désérialisées à mesure qu’elles sont nécessaires, en appelant la méthode IXpsOMPageReference ::GetPage . Étant donné que les pages ne sont pas désérialisées lorsque GetPage est appelé, il est possible pour cette méthode de retourner S_OK ou, si une tentative de chargement d’une page problématique dans un package XPS est effectuée, de retourner une erreur.

Si vous écrivez un modèle objet XPS immédiatement après y avoir lu un package XPS, une partie du contenu d’origine peut être perdue ou modifiée.

Certaines des modifications qui peuvent se produire dans un tel cas sont répertoriées dans le tableau qui suit :

Fonctionnalité de document Action
Signatures numériques Supprimé du document
Composant DiscardControl Supprimé du document
Parties de documents étrangers Supprimé du document
Balisage FixedPage Modifié à partir de l’origine
Balisage du dictionnaire de ressources Modifié à partir de l’origine si l’indicateur d’optimisation est défini
 

Pour plus d’informations sur l’utilisation de l’interface IXpsOMPackage dans un programme, consultez Créer un modèle objet XPS vide.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête xpsobjectmodel.h

Voir aussi

Créer un modèle objet XPS vide

IXpsOMObjectFactory

IXpsOMPackage

Erreurs d’empaquetage

XML Paper Specification

Erreurs de document XPS