Compartilhar via


Método IAppxFile::GetStream (appxpackaging.h)

Obtém um fluxo somente leitura que contém o conteúdo não compactado do arquivo.

Sintaxe

HRESULT GetStream(
  [out, retval] IStream **stream
);

Parâmetros

[out, retval] stream

Tipo: IStream**

Um fluxo somente leitura que contém o conteúdo não compactado do arquivo.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK.

[Fatal] Códigos de erro OPC (0x8051xxxx) se o cabeçalho de arquivo local do arquivo ou descritor de dados no arquivo zip for inválido. Essa falha faz com que todo o consumidor zip OPC insira um estado inválido, nenhum outro arquivo pode ser acessado do objeto IAppxPackageReader após esse erro ocorrer.

HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) se o fluxo tiver sido lido anteriormente e seu CRC for inválido.

Valor retornado dos métodos Read e CopyTo retornados do IStream

[Fatal] HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) se todo o fluxo tiver sido lido e seu CRC for considerado inválido

APPX_E_CORRUPT_CONTENT (0x80080206) se o conteúdo do arquivo não puder ser descompactado (devido à corrupção do arquivo zip)

HRESULT_FROM_WIN32(ERROR_INVALID_DATA) (0x8007000d) se um bloco no arquivo não puder ser lido completamente ou o tamanho do bloco for inesperado

APPX_E_BLOCK_HASH_INVALID (0x80080207) se o conteúdo dos blocos desse arquivo estiver inconsistente com seu hash no mapa de blocos

Comentários

O fluxo retornado é somente leitura e clonável.

A validação de arquivos de conteúdo é "lenta". Na primeira chamada para o método GetStream do arquivo, o cabeçalho de arquivo zip correspondente e o descritor de dados do item zip são validados e podem causar falha no GetStream . Chamadas subsequentes para GetStream no mesmo arquivo não repetem essas validações. A soma de verificação crc do item do arquivo zip só será validada se o fluxo for lido em sua totalidade em ordem sequencial.

As instâncias do IStream retornadas para arquivos de conteúdo são otimizadas para acesso sequencial. Embora haja suporte para acesso aleatório ao fluxo, esse acesso aleatório pode ser mais lento e mais intensivo em CPU. Recomendamos uma única leitura sequencial desses fluxos sempre que possível. Há suporte para leitura do mesmo intervalo várias vezes, mas não é recomendado para desempenho; considere armazenar em cache esses intervalos se o cenário de uso exigir isso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho appxpackaging.h

Confira também

IAppxFile

IAppxPackageReader