Compartilhar via


Método IWiaTransferCallback::GetNextStream

Obtém um novo fluxo para o item especificado.

Sintaxe

HRESULT GetNextStream(
  [in]  LONG    lFlags,
  [in]  BSTR    bstrItemName,
  [in]  BSTR    bstrFullItemName,
  [out] IStream **ppDestination
);

Parâmetros

lFlags [in]

Tipo: LONG

Atualmente não utilizado. Deve ser definido como zero.

bstrItemName [in]

Tipo: BSTR

Especifica o nome do item para o qual criar fluxo.

bstrFullItemName [in]

Tipo: BSTR

Especifica o nome completo do item para o qual criar fluxo.

ppDestination [out]

Tipo: IStream**

Recebe o endereço de um ponteiro para o novo objeto IStream .

Valor retornado

Tipo: HRESULT

Se esse método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT .

Comentários

Quando esse método é implementado por um filtro de processamento de imagem, o minidriver de Aquisição de Imagem do Windows (WIA) 2.0 o chama durante a aquisição de imagem para obter o fluxo de destino do cliente.

IWiaTransferCallback::GetNextStream de um filtro deve delegar ao método de retorno de chamada do aplicativo. O filtro usa o fluxo retornado pela implementação IWiaTransferCallback::GetNextStream do retorno de chamada do aplicativo para criar seu próprio fluxo que ele passa de volta para o serviço WIA 2.0. A filtragem é feita quando o fluxo do filtro chama o método IStream::Write .

O fluxo do filtro não pode fazer suposições sobre o número de bytes gravados em cada gravação, pois os dados de imagem não filtrados podem vir do Componente de Visualização do WIA 2.0 em vez do driver. O Componente de Visualização do WIA 2.0 sempre grava todos os dados de imagem não filtrados no fluxo do filtro apenas uma vez, o que significa que o fluxo do filtro tem uma fonte gravando nele. Se o driver e o componente de visualização gravarem no fluxo do filtro, o fluxo do filtro não poderá pressupor, por exemplo, que ele receberá o cabeçalho completo na primeira vez que IStream::Write for chamado, embora seu driver correspondente sempre grave os dados de cabeçalho primeiro em uma gravação. Também não pode presumir que uma gravação subsequente contém exatamente uma linha de verificação. Portanto, o fluxo de filtragem pode ter que contar o número de bytes gravados nele para determinar, por exemplo, onde os dados da imagem são iniciados.

A implementação IWiaTransferCallback::GetNextStream do filtro de processamento de imagem deve ler as propriedades necessárias para o processamento de imagem do item para o qual a imagem está sendo adquirida. O filtro não lê as propriedades diretamente do pWiaItem2 passado para InitializeFilter. Em vez disso, o filtro deve chamar FindItemByName neste item WIA 2.0 para obter o item WIA 2.0 real. O motivo disso é que a imagem que está sendo adquirida pode ser, na verdade, um item filho de pWiaItem2. Por exemplo, durante uma aquisição de pasta, o filtro usa pWiaItem2 para obter os itens filho de pWiaItem2 em IWiaTransferCallback::GetNextStream (durante uma aquisição de pasta, o driver retorna as imagens representadas pelos itens filho de pWiaItem2). O mesmo acontece quando o componente de versão prévia do WIA 2.0 chama o filtro de processamento de imagem passando um item WIA 2.0 filho.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Wia.h
IDL
Wia.idl
Biblioteca
Wiaguid.lib