Metodo IAppxFactory3::CreatePackageReader2 (appxpackaging.h)

Importante

Alcune informazioni si riferiscono a un prodotto in versione preliminare che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.

Crea un lettore di pacchetti di sola lettura dal contenuto fornito da un IStream, con un parametro facoltativo per specificare il digest previsto per il pacchetto. Questo metodo non convalida la firma digitale.

Sintassi

HRESULT CreatePackageReader2(
  [in]          IStream            *inputStream,
  [in,optional] LPCWSTR            expectedDigest,
  [out]         IAppxPackageReader **packageReader
);

Parametri

[in] inputStream

Flusso di input che recapita il pacchetto per la lettura. Il flusso deve supportare ISequentialStream::Read, IStream::Seek e IStream::Stat. Se questi metodi hanno esito negativo, i codici di errore possono essere passati a e restituiti da questo metodo.

[in,optional] expectedDigest

Oggetto LPCWSTR contenente il digest previsto, una rappresentazione con hash del file del pacchetto.

[out] packageReader

Lettore di pacchetti creato.

Valore restituito

Se il metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore che include, ma non solo, quelli nella tabella seguente.

Codice restituito Descrizione
APPX_E_INTERLEAVING_NOT_ALLOWED Il file ZIP recapitato da inputStream è un pacchetto OPC interleaved.
APPX_E_RELATIONSHIPS_NOT_ALLOWED Il pacchetto OPC fornito da inputStream contiene relazioni tra pacchetti OPC e parti.
APPX_E_MISSING_REQUIRED_FILE Il pacchetto OPC recapitato da inputStream non dispone di un manifesto, di una mappa a blocchi o di un file di firma quando è presente un catalogo CI.
APPX_E_INVALID_MANIFEST Il manifesto del pacchetto non è valido.
APPX_E_INVALID_BLOCKMAP La mappa dei blocchi di pacchetti non è valida, l'elenco dei file nella directory centrale ZIP non corrisponde all'elenco dei file nella mappa a blocchi o le dimensioni dei file elencati nella directory centrale ZIP non corrispondono al file e alle dimensioni dei blocchi elencate nella mappa a blocchi.
APPX_E_DIGEST_MISMATCH Il digest per l'oggetto non corrisponde al digest fornito in expectedDigest.

Commenti

Il metodo CreatePackageReader2 recupera immediatamente gli elementi footprint del pacchetto dell'app tramite il flusso e ne convalida il contenuto. Questo metodo ha esito positivo solo se il pacchetto OPC e tutti gli elementi footprint (inclusa la directory centrale ZIP, il manifesto, il [Content_Types].xml e la mappa a blocchi) sono validi.

Ottenere la stringa digest per il parametro expecteDigest chiamando IAppxDigestProvider::GetDigest.

Esempio

Per un esempio, vedi Guida introduttiva: Estrarre il contenuto del pacchetto dell'app e Guida introduttiva: Leggere le informazioni sul manifesto del pacchetto dell'app.

Requisiti

Requisito Valore
Intestazione appxpackaging.h