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 |