IAppxFactory3::CreatePackageReader2-Methode (appxpackaging.h)
Wichtig
Einige Informationen beziehen sich auf ein Vorabrelease-Produkt, das vor der kommerziellen Freigabe wesentlich geändert werden kann. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt einen schreibgeschützten Paketleser aus den von einem IStream bereitgestellten Inhalten mit einem optionalen Parameter zum Angeben des erwarteten Digests für das Paket. Diese Methode überprüft die digitale Signatur nicht.
Syntax
HRESULT CreatePackageReader2(
[in] IStream *inputStream,
[in,optional] LPCWSTR expectedDigest,
[out] IAppxPackageReader **packageReader
);
Parameter
[in] inputStream
Der Eingabestream, der das Paket zum Lesen übermittelt. Der Stream muss ISequentialStream::Read, IStream::Seek und IStream::Stat unterstützen. Wenn diese Methoden fehlschlagen, werden ihre Fehlercodes möglicherweise an diese Methode übergeben und von dieser zurückgegeben.
[in,optional] expectedDigest
Ein LPCWSTR mit dem erwarteten Digest, einer Hashdarstellung der Paketdatei.
[out] packageReader
Der erstellte Paketleser.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode zurückgegeben, der die In der folgenden Tabelle enthält, aber nicht darauf beschränkt ist.
Rückgabecode | Beschreibung |
---|---|
APPX_E_INTERLEAVING_NOT_ALLOWED | Die von inputStream bereitgestellte ZIP-Datei ist ein verschachteltes OPC-Paket. |
APPX_E_RELATIONSHIPS_NOT_ALLOWED | Das von inputStream bereitgestellte OPC-Paket enthält OPC-Paket-/Teilebeziehungen. |
APPX_E_MISSING_REQUIRED_FILE | Das von inputStream bereitgestellte OPC-Paket verfügt weder über ein Manifest noch über eine Blockzuordnung oder eine Signaturdatei, wenn ein CI-Katalog vorhanden ist. |
APPX_E_INVALID_MANIFEST | Das Paketmanifest ist ungültig. |
APPX_E_INVALID_BLOCKMAP | Die Paketblockzuordnung ist ungültig, die Liste der Dateien im ZIP-Zentralverzeichnis stimmt nicht mit der Liste der Dateien in der Blockzuordnung überein, oder die Größe der dateien, die im zip-Zentralverzeichnis aufgeführt sind, stimmt nicht mit den in der Blockzuordnung aufgeführten Datei- und Blockgrößen überein. |
APPX_E_DIGEST_MISMATCH | Der Digest für das Objekt stimmt nicht mit dem in expectedDigest bereitgestellten Digest überein. |
Hinweise
Die CreatePackageReader2-Methode ruft sofort Footprint-Elemente des App-Pakets über den Stream ab und überprüft deren Inhalt. Diese Methode ist nur erfolgreich, wenn das OPC-Paket und alle Footprint-Elemente (einschließlich ZIP-Zentralverzeichnis, Manifest, [Content_Types].xml und Blockzuordnung) gültig sind.
Rufen Sie die Digestzeichenfolge für den parameter expecteDigest ab, indem Sie IAppxDigestProvider::GetDigest aufrufen.
Beispiele
Ein Beispiel finden Sie unter Schnellstart: Extrahieren von App-Paketinhalten und Schnellstart: Lesen von App-Paketmanifestinformationen.
Anforderungen
Anforderung | Wert |
---|---|
Header | appxpackaging.h |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für