Compartir a través de


Método IWiaDataTransfer::idtGetBandedData (wia_xp.h)

El método IWiaDataTransfer::idtGetBandedData transfiere una banda de datos de un dispositivo de hardware a una aplicación. Para mejorar la eficacia, las aplicaciones recuperan datos de dispositivos de hardware de adquisición de imágenes de Windows (WIA) en bandas sucesivas.

Sintaxis

HRESULT idtGetBandedData(
  [in] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  [in] IWiaDataCallback        *pIWiaDataCallback
);

Parámetros

[in] pWiaDataTransInfo

Tipo: PWIA_DATA_TRANSFER_INFO

Puntero a la estructura WIA_DATA_TRANSFER_INFO .

[in] pIWiaDataCallback

Tipo: IWiaDataCallback*

Puntero a la interfaz IWiaDataCallback . Periódicamente, este método llamará al método BandedDataCallback para proporcionar a la aplicación una notificación de estado de transferencia de datos.

Valor devuelto

Tipo: HRESULT

Este método puede devolver cualquiera de los siguientes valores:

Valor devuelto Significado
E_INVALIDARG Uno o varios parámetros de este método contienen datos no válidos.
E_OUTOFMEMORY Este método no puede asignar memoria suficiente para completar su operación.
E_UNEXPECTED Se produjo un error desconocido.
S_FALSE La aplicación canceló la operación.
S_OK La imagen se adquirió correctamente.
STG_E_MEDIUMFULL El medio de almacenamiento que usa la aplicación para adquirir la imagen está llena.
WIA_S_NO_DEVICE_AVAILABLE No hay dispositivos de hardware WIA conectados al equipo del usuario.
 

Este método devolverá un valor especificado en Códigos de error o un error COM estándar si se produce un error por cualquier motivo distinto de los especificados en la tabla anterior.

Comentarios

El método IWiaDataTransfer::idtGetBandedData asigna una sección de memoria para transferir datos sin necesidad de una copia de datos adicional a través de la capa de serialización modelo de objetos componentes/llamada a procedimiento remoto (COM/RPC). Esta sección de memoria se comparte entre la aplicación y el árbol de elementos del dispositivo de hardware.

Opcionalmente, la aplicación puede pasar un puntero a un bloque de memoria que IWiaDataTransfer::idtGetBandedData usará como sección compartida. La aplicación pasa este identificador almacenando el puntero en el miembro ulSection de la estructura de WIA_DATA_TRANSFER_INFO antes de llamar a IWiaDataTransfer::idtGetBandedData.

Las aplicaciones pueden mejorar el rendimiento mediante el almacenamiento en búfer doble. Para ello, las aplicaciones deben establecer el miembro bDoubleBuffer de la estructura WIA_DATA_TRANSFER_INFO en TRUE. El método IWiaDataTransfer::idtGetBandedData dividirá el búfer de datos en la mitad. Cuando la mitad del búfer está llena, IWiaDataTransfer::idtGetBandedData enviará una notificación a la aplicación mediante el puntero IWiaDataCallback pasado a través del parámetro pIWiaDataCallback . Mientras la aplicación recupera los datos de la mitad completa del búfer, el controlador de dispositivo puede rellenar la otra mitad con datos.

El formato de la transferencia de datos viene determinado por los valores de las propiedades WIA_IPA_FORMAT y WIA_IPA_TYMED del elemento. La aplicación establece estas propiedades con llamadas al método IWiaPropertyStorage::WriteMultiple .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wia_xp.h (incluye Wia.h)
Library Wiaguid.lib
Archivo DLL Wiaservc.dll