Share via


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