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 |