Méthode IAppxFactory3 ::CreatePackageReader2 (appxpackaging.h)
Important
Certaines informations se rapportent à un produit de préversion qui peut être sensiblement modifié avant sa commercialisation. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un lecteur de package en lecture seule à partir du contenu fourni par un IStream, avec un paramètre facultatif pour spécifier la synthèse attendue pour le package. Cette méthode ne valide pas la signature numérique.
Syntaxe
HRESULT CreatePackageReader2(
[in] IStream *inputStream,
[in,optional] LPCWSTR expectedDigest,
[out] IAppxPackageReader **packageReader
);
Paramètres
[in] inputStream
Flux d’entrée qui fournit le package pour la lecture. Le flux doit prendre en charge ISequentialStream ::Read, IStream ::Seek et IStream ::Stat. Si ces méthodes échouent, leurs codes d’erreur peuvent être passés à et retournés par cette méthode.
[in,optional] expectedDigest
Une LPCWSTR contenant le condensé attendu, une représentation hachée du fichier de package.
[out] packageReader
Lecteur de package créé.
Valeur retournée
Si la méthode réussit, elle retourne S_OK. Sinon, il retourne un code d’erreur qui inclut, sans s’y limiter, ceux du tableau suivant.
Code de retour | Description |
---|---|
APPX_E_INTERLEAVING_NOT_ALLOWED | Le fichier ZIP fourni par inputStream est un package OPC entrelacé. |
APPX_E_RELATIONSHIPS_NOT_ALLOWED | Le package OPC fourni par inputStream contient des relations de partie/package OPC. |
APPX_E_MISSING_REQUIRED_FILE | Le package OPC fourni par inputStream n’a pas de manifeste, de mappage de blocs ou de fichier de signature lorsqu’un catalogue CI est présent. |
APPX_E_INVALID_MANIFEST | Le manifeste du package n’est pas valide. |
APPX_E_INVALID_BLOCKMAP | Le mappage de blocs de package n’est pas valide, la liste des fichiers du répertoire central ZIP ne correspond pas à la liste des fichiers dans le mappage de blocs, ou la taille des fichiers répertoriés dans le répertoire central ZIP ne correspond pas aux tailles de fichiers et de blocs répertoriées dans le mappage de blocs. |
APPX_E_DIGEST_MISMATCH | La synthèse de l’objet ne correspond pas à la synthèse fournie dans expectedDigest. |
Remarques
La méthode CreatePackageReader2 récupère immédiatement les éléments d’empreinte du package d’application via le flux et valide leur contenu. Cette méthode réussit uniquement si le package OPC et tous les éléments d’empreinte (y compris le répertoire central ZIP, le manifeste, [Content_Types].xml et le mappage de blocs) sont valides.
Obtenez la chaîne de synthèse pour le paramètre expecteDigest en appelant IAppxDigestProvider ::GetDigest.
Exemples
Pour obtenir un exemple, consultez Démarrage rapide : Extraire le contenu du package d’application et Démarrage rapide : lire les informations du manifeste du package d’application.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | appxpackaging.h |