Método IAppxFactory3::CreatePackageReader2 (appxpackaging.h)
Importante
Algumas informações estão relacionadas a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um leitor de pacote somente leitura com base no conteúdo fornecido por um IStream, com um parâmetro opcional para especificar o resumo esperado para o pacote. Esse método não valida a assinatura digital.
Sintaxe
HRESULT CreatePackageReader2(
[in] IStream *inputStream,
[in,optional] LPCWSTR expectedDigest,
[out] IAppxPackageReader **packageReader
);
Parâmetros
[in] inputStream
O fluxo de entrada que entrega o pacote para leitura. O fluxo deve dar suporte a ISequentialStream::Read, IStream::Seek e IStream::Stat. Se esses métodos falharem, seus códigos de erro poderão ser passados para e retornados por esse método.
[in,optional] expectedDigest
Um LPCWSTR que contém o resumo esperado, uma representação com hash do arquivo de pacote.
[out] packageReader
O leitor de pacote criado.
Retornar valor
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro que inclui, mas não se limita, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
APPX_E_INTERLEAVING_NOT_ALLOWED | O arquivo ZIP entregue por inputStream é um pacote OPC intercalado. |
APPX_E_RELATIONSHIPS_NOT_ALLOWED | O pacote OPC entregue por inputStream contém relações de pacote/parte OPC. |
APPX_E_MISSING_REQUIRED_FILE | O pacote OPC entregue por inputStream não tem um manifesto, um mapa de blocos ou um arquivo de assinatura quando um catálogo de CI está presente. |
APPX_E_INVALID_MANIFEST | O manifesto do pacote não é válido. |
APPX_E_INVALID_BLOCKMAP | O mapa de blocos do pacote não é válido, a lista de arquivos no diretório central zip não corresponde à lista de arquivos no mapa de blocos ou o tamanho dos arquivos listados no diretório central zip não corresponde aos tamanhos de arquivo e bloco listados no mapa de blocos. |
APPX_E_DIGEST_MISMATCH | O resumo do objeto não corresponde ao resumo fornecido em expectedDigest. |
Comentários
O método CreatePackageReader2 recupera imediatamente os elementos de volume do pacote do aplicativo por meio do fluxo e valida seu conteúdo. Esse método só terá êxito se o pacote OPC e todos os elementos de volume (incluindo diretório central ZIP, manifesto, [Content_Types].xml e mapa de blocos) forem válidos.
Obtenha a cadeia de caracteres de resumo para o parâmetro expecteDigest chamando IAppxDigestProvider::GetDigest.
Exemplos
Para obter um exemplo, consulte Início Rápido: Extrair conteúdo do pacote do aplicativo e Início Rápido: Ler informações de manifesto do pacote do aplicativo.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | appxpackaging.h |