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