Compartilhar via


Método IOpcFactory::ReadPackageFromStream (msopc.h)

Desserializa os dados do pacote de um fluxo e cria um objeto de pacote para representar o pacote que está sendo lido. Embora um objeto de API de Empacotamento obtido do objeto package ou do próprio objeto de pacote ainda esteja em uso, o fluxo pode ser usado para acessar dados do pacote.

Sintaxe

HRESULT ReadPackageFromStream(
  [in]          IStream        *stream,
  [in]          OPC_READ_FLAGS flags,
  [out, retval] IOpcPackage    **package
);

Parâmetros

[in] stream

Um ponteiro para a interface IStream do fluxo.

O fluxo deve ser legível, podendo ser buscado, ter tamanho e conter dados de pacote. Além disso, se o fluxo não for clonável, ele será armazenado em buffer e lido sequencialmente, incorrendo em sobrecarga.

[in] flags

O valor que especifica as configurações de leitura para armazenar em cache os componentes do pacote e validá-los em relação aos requisitos de conformidade do OPC .

[out, retval] package

Um ponteiro para a interface IOpcPackage do objeto package que representa o pacote que está sendo lido pelo fluxo.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
O valor passado no parâmetro flags não é válido OPC_READ_FLAGS valor de enumeração.
E_NOTIMPL
Esse método não é implementado para esta versão do Windows.
E_POINTER
Pelo menos um dos parâmetros de fluxo e pacote é NULL.
Erro de interface IStream
Um código de erro HRESULT da interface IStream .
Erro de consumo de pacote
Um código de erro HRESULT do Grupo de Erros de Consumo de Pacote.
Erro de URI de parte
Um código de erro HRESULT do Grupo de Erros do URI de Parte.

Comentários

Não use um fluxo para serializar dados de pacote quando o mesmo fluxo estiver sendo usado para desserializar um pacote, pois a tentativa pode resultar em um comportamento indefinido.

As APIs de Empacotamento podem interagir com pacotes que mapeiam um arquivo ZIP conforme especificado no OPC e que se baseiam na codificação Zip32 (ZIP 2.0) ou Zip64 (ZIP 4.5).

Para obter informações sobre como usar esse método para carregar um pacote, consulte a tarefa Carregando um pacote de programação.

Suporte em versões anteriores do Windows

Esse método não tem suporte em versões do Windows antes do Windows 7. Para obter mais informações, consulte Introdução com a API de Empacotamento e Atualização de Plataforma para Windows Vista.

Acesso thread-safe

Os objetos de empacotamento não são thread-safe.

Para obter mais informações, consulte o Introdução com a API de Empacotamento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho msopc.h

Confira também

Introdução com a API de Empacotamento

IOpcFactory

Carregando um pacote

OPC_READ_FLAGS

Visões gerais

Guia de Programação da API de Empacotamento

Referência da API de Empacotamento

Exemplos de API de empacotamento

Erros de empacotamento

Atualização de plataforma para Windows Vista

Referência