Método IAppxFile::GetStream (appxpackaging.h)
Obtiene una secuencia de solo lectura que contiene el contenido sin comprimir del archivo.
Sintaxis
HRESULT GetStream(
[out, retval] IStream **stream
);
Parámetros
[out, retval] stream
Tipo: IStream**
Secuencia de solo lectura que contiene el contenido sin comprimir del archivo.
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, devuelve S_OK.
[Fatal] Códigos de error de OPC (0x8051xxxx) si el encabezado de archivo local o el descriptor de datos del archivo zip no es válido. Este error hace que todo el consumidor zip de OPC escriba un estado no válido, no se puede tener acceso a ningún otro archivo desde el objeto IAppxPackageReader después de que se produzca este error.
HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) si la secuencia se ha leído anteriormente y su CRC no era válido.
Valor devuelto de los métodos Read y CopyTo devueltos de IStream
[Fatal] HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) si se ha leído toda la secuencia y su CRC no es válido
APPX_E_CORRUPT_CONTENT (0x80080206) si el contenido del archivo no se puede descomprimir (debido a daños en el archivo ZIP)
HRESULT_FROM_WIN32(ERROR_INVALID_DATA) (0x8007000d) si un bloque del archivo no se puede leer completamente o el tamaño del bloque es inesperado.
APPX_E_BLOCK_HASH_INVALID (0x80080207) si el contenido de los bloques de este archivo es incoherente con su hash en el mapa de bloques
Comentarios
La secuencia devuelta es de solo lectura y se puede clonar.
La validación de los archivos de carga es "diferida". En la primera llamada al método GetStream del archivo, se valida el encabezado de archivo local y el descriptor de datos del elemento zip correspondiente del elemento zip y podría provocar un error en GetStream . Las llamadas posteriores a GetStream en el mismo archivo no repiten estas validaciones. La suma de comprobación CRC del elemento de archivo ZIP solo se valida si la secuencia se lee en su totalidad en orden secuencial.
Las instancias de IStream que se devuelven para los archivos de carga se optimizan para el acceso secuencial. Aunque se admite el acceso aleatorio a la secuencia, ese acceso aleatorio podría ser más lento y intensivo de CPU. Se recomienda una sola lectura secuencial de estas secuencias siempre que sea posible. Se admite la lectura del mismo intervalo varias veces, pero no se recomienda para el rendimiento; considere la posibilidad de almacenar en caché estos intervalos si su escenario de uso lo exige.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | appxpackaging.h |