Compartir a través de


Método IWiaTransferCallback::GetNextStream

Obtiene una nueva secuencia para el elemento especificado.

Sintaxis

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

Parámetros

lFlags [in]

Tipo: LONG

Actualmente no se usa. Debe establecerse como cero.

bstrItemName [in]

Tipo: BSTR

Especifica el nombre del elemento para el que se va a crear la secuencia.

bstrFullItemName [in]

Tipo: BSTR

Especifica el nombre completo del elemento para el que se va a crear la secuencia.

ppDestination [out]

Tipo: IStream**

Recibe la dirección de un puntero al nuevo objeto IStream .

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .

Comentarios

Cuando este método se implementa mediante un filtro de procesamiento de imágenes, el minidriver windows Image Acquisition (WIA) 2.0 lo llama durante la adquisición de imágenes para obtener la secuencia de destino del cliente.

IWiaTransferCallback::GetNextStream de un filtro debe delegar en el método de devolución de llamada de la aplicación. El filtro usa la secuencia devuelta por la implementación IWiaTransferCallback::GetNextStream de la devolución de llamada de la aplicación para crear su propia secuencia que pasa al servicio WIA 2.0. El filtrado se realiza cuando la secuencia del filtro llama al método IStream::Write .

La secuencia del filtro no puede suponer el número de bytes que se escriben en cada escritura, ya que los datos de imagen sin filtrar pueden provenir del componente de vista previa wiA 2.0 en lugar del controlador. El componente de vista previa de WIA 2.0 siempre escribe todos los datos de imagen sin filtrar en la secuencia del filtro solo una vez, lo que significa que la secuencia del filtro tiene un origen escribiendo en él. Si tanto el controlador como el componente de vista previa escriben en la secuencia del filtro, el flujo del filtro no puede suponer, por ejemplo, que recibirá el encabezado completo la primera vez que se llama a IStream::Write , aunque su controlador correspondiente siempre escribe los datos de encabezado primero en una escritura. Tampoco puede suponer que una escritura posterior contiene exactamente una línea de examen. Por lo tanto, el flujo de filtrado puede tener que contar el número de bytes escritos en él para determinar, por ejemplo, dónde se inician los datos de la imagen.

La implementación de IWiaTransferCallback::GetNextStream del filtro de procesamiento de imágenes debe leer las propiedades necesarias para su procesamiento de imágenes del elemento para el que se adquiere la imagen. El filtro no lee las propiedades directamente del pWiaItem2 pasado a InitializeFilter. En su lugar, el filtro debe llamar a FindItemByName en este elemento WIA 2.0 para obtener el elemento WIA 2.0 real. El motivo es que la imagen que se adquiere puede ser realmente un elemento secundario de pWiaItem2. Por ejemplo, durante una adquisición de carpetas, el filtro usa pWiaItem2 para obtener los elementos secundarios de pWiaItem2 en IWiaTransferCallback::GetNextStream (durante una adquisición de carpetas, el controlador devuelve las imágenes representadas por los elementos secundarios de pWiaItem2). Lo mismo ocurre cuando el componente de vista previa de WIA 2.0 llama al filtro de procesamiento de imágenes pasando un elemento de WIA 2.0 secundario.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
Wia.h
IDL
Wia.idl
Biblioteca
Wiaguid.lib