Compartir a través de


Método IAppxFactory3::CreatePackageReader2 (appxpackaging.h)

Importante

Parte de la información se relaciona con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento comercial. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.

Crea un lector de paquetes de solo lectura a partir del contenido proporcionado por un IStream, con un parámetro opcional para especificar el resumen esperado para el paquete. Este método no valida la firma digital.

Sintaxis

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

Parámetros

[in] inputStream

Flujo de entrada que entrega el paquete para su lectura. La secuencia debe admitir ISequentialStream::Read, IStream::Seek e IStream::Stat. Si se produce un error en estos métodos, este método puede pasar y devolver sus códigos de error.

[in,optional] expectedDigest

Un LPCWSTR que contiene el resumen esperado, una representación con hash del archivo de paquete.

[out] packageReader

Lector de paquetes creado.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error que incluye, pero no está limitado a, los de la tabla siguiente.

Código devuelto Descripción
APPX_E_INTERLEAVING_NOT_ALLOWED El archivo ZIP entregado por inputStream es un paquete OPC intercalado.
APPX_E_RELATIONSHIPS_NOT_ALLOWED El paquete OPC entregado por inputStream contiene relaciones de paquetes o partes de OPC.
APPX_E_MISSING_REQUIRED_FILE El paquete OPC entregado por inputStream no tiene un manifiesto, ni un mapa de bloques, o un archivo de firma cuando hay un catálogo de CI presente.
APPX_E_INVALID_MANIFEST El manifiesto del paquete no es válido.
APPX_E_INVALID_BLOCKMAP El mapa de bloques del paquete no es válido, la lista de archivos del directorio central ZIP no coincide con la lista de archivos del mapa de bloques o el tamaño de los archivos enumerados en el directorio central ZIP no coincide con los tamaños de archivo y bloque enumerados en el mapa de bloques.
APPX_E_DIGEST_MISMATCH El resumen del objeto no coincide con el resumen proporcionado en expectedDigest.

Comentarios

El método CreatePackageReader2 recupera inmediatamente los elementos de superficie del paquete de la aplicación a través de la secuencia y valida su contenido. Este método solo se realiza correctamente si el paquete OPC y todos los elementos de superficie (incluido el directorio central ZIP, el manifiesto, [Content_Types].xml y el mapa de bloques) son válidos.

Obtenga la cadena implícita del parámetro expecteDigest llamando a IAppxDigestProvider::GetDigest.

Ejemplos

Para obtener un ejemplo, consulta Inicio rápido: Extracción del contenido del paquete de la aplicación e Inicio rápido: Leer la información del manifiesto del paquete de la aplicación.

Requisitos

Requisito Valor
Header appxpackaging.h