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 |
|
IDL |
|
Biblioteca |
|