Méthode IAppxFile ::GetStream (appxpackaging.h)
Obtient un flux en lecture seule qui contient le contenu non compressé du fichier.
Syntaxe
HRESULT GetStream(
[out, retval] IStream **stream
);
Paramètres
[out, retval] stream
Type : IStream**
Flux en lecture seule qui contient le contenu non compressé du fichier.
Valeur retournée
Type : HRESULT
Si la méthode réussit, elle retourne S_OK.
[Fatal] Codes d’erreur OPC (0x8051xxxx) si l’en-tête de fichier local ou le descripteur de données du fichier dans l’archive zip n’est pas valide. Cet échec entraîne l’entrée de l’intégralité du consommateur zip OPC dans un état non valide. Aucun autre fichier n’est accessible à partir de l’objet IAppxPackageReader après cette erreur.
HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) si le flux a été lu précédemment et que son CRC n’était pas valide.
Valeur de retour à partir des méthodes Read et CopyTo d’IStream retournées
[Fatal] HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) si l’intégralité du flux a été lue et que son CRC n’est pas valide
APPX_E_CORRUPT_CONTENT (0x80080206) si le contenu du fichier ne peut pas être décompressé (en raison d’un endommagement du fichier zip)
HRESULT_FROM_WIN32(ERROR_INVALID_DATA) (0x8007000d) si un bloc du fichier ne peut pas être lu complètement ou si la taille du bloc est inattendue
APPX_E_BLOCK_HASH_INVALID (0x80080207) si le contenu des blocs de ce fichier est incohérent avec son hachage dans le mappage de blocs
Remarques
Le flux retourné est en lecture seule et peut être cloné.
La validation des fichiers de charge utile est « différée ». Lors du premier appel à la méthode GetStream du fichier, l’en-tête de fichier local et le descripteur de données de l’élément de fichier zip correspondant sont validés et peuvent entraîner l’échec de GetStream . Les appels ultérieurs à GetStream sur le même fichier ne répètent pas ces validations. La somme de contrôle CRC de l’élément de fichier zip n’est validée que si le flux est lu dans son intégralité dans un ordre séquentiel.
Les instances d’IStream retournées pour les fichiers de charge utile sont optimisées pour l’accès séquentiel. Bien que l’accès aléatoire au flux soit pris en charge, cet accès aléatoire peut être plus lent et plus gourmand en ressources processeur. Nous vous recommandons une lecture séquentielle unique de ces flux dans la mesure du possible. La lecture de la même plage plusieurs fois est prise en charge, mais n’est pas recommandée pour les performances ; envisagez de mettre en cache ces plages si leur scénario d’utilisation l’exige.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | appxpackaging.h |