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 |
|
La valeur transmise dans le paramètre flags n’est pas une valeur d’énumération OPC_READ_FLAGS valide. |
|
Cette méthode n’est pas implémentée pour cette version de Windows. |
|
Au moins un des paramètres de flux et de package est NULL. |
|
Code d’erreur HRESULT de l’interface IStream . |
|
Code d’erreur HRESULT du groupe d’erreurs de consommation de package. |
|
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
Vues d'ensemble
Guide de programmation d’API d’empaquetage
Informations de référence sur l’API d’empaque
Mise à jour de plateforme pour Windows Vista
Référence