Partager via


Méthode IOpcFactory ::ReadPackageFromStream (msopc.h)

Désérialise les données de package d’un flux et crée un objet de package pour représenter le package en cours de lecture. Bien qu’un objet d’API Packaging obtenu à partir de l’objet de package, ou de l’objet de package lui-même, soit toujours en cours d’utilisation, le flux peut être utilisé pour accéder aux données du package.

Syntaxe

HRESULT ReadPackageFromStream(
  [in]          IStream        *stream,
  [in]          OPC_READ_FLAGS flags,
  [out, retval] IOpcPackage    **package
);

Paramètres

[in] stream

Pointeur vers l’interface IStream du flux.

Le flux doit être lisible, recherché, avoir une taille et contenir des données de package. En outre, si le flux n’est pas cloneable, il sera mis en mémoire tampon et lu séquentiellement, ce qui entraîne une surcharge.

[in] flags

Valeur qui spécifie les paramètres de lecture pour la mise en cache des composants de package et leur validation par rapport aux exigences de conformité OPC .

[out, retval] package

Pointeur vers l’interface IOpcPackage de l’objet package qui représente le package en cours de lecture dans le flux.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_INVALIDARG
La valeur transmise dans le paramètre flags n’est pas une valeur d’énumération OPC_READ_FLAGS valide.
E_NOTIMPL
Cette méthode n’est pas implémentée pour cette version de Windows.
E_POINTER
Au moins un des paramètres de flux et de package est NULL.
Erreur d’interface IStream
Code d’erreur HRESULT de l’interface IStream .
Erreur de consommation de package
Code d’erreur HRESULT du groupe d’erreurs de consommation de package.
Erreur d’URI de partie
Code d’erreur HRESULT du groupe d’erreurs d’URI de partie.

Remarques

N’utilisez pas de flux pour sérialiser des données de package lorsque le même flux est utilisé pour désérialiser un package, car la tentative peut entraîner un comportement non défini.

Les API d’empaquetage peuvent interagir avec des packages qui mappent une archive ZIP comme spécifié dans l’OPC et qui sont basés sur l’encodage Zip32 (ZIP 2.0) ou Zip64 (ZIP 4.5).

Pour plus d’informations sur l’utilisation de cette méthode pour charger un package, consultez la tâche de programmation Chargement d’un package .

Prise en charge sur les versions précédentes de Windows

Cette méthode n’est pas prise en charge sur les versions de Windows antérieures à Windows 7. Pour plus d’informations, consultez Prise en main avec l’API d’empaquetage et Mise à jour de plateforme pour Windows Vista.

Cohérence de thread

Les objets d’empaquetage ne sont pas thread-safe.

Pour plus d’informations, consultez la Prise en main avec l’API Packaging.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête msopc.h

Voir aussi

Prise en main avec l’API d’empaquetage

IOpcFactory

Chargement d’un package

OPC_READ_FLAGS

Vues d'ensemble

Guide de programmation d’API d’empaquetage

Informations de référence sur l’API d’empaque

Empaquetage d’exemples d’API

Erreurs d’empaquetage

Mise à jour de plateforme pour Windows Vista

Référence