Méthode IWiaDataTransfer ::idtGetBandedData (wia_xp.h)
La méthode IWiaDataTransfer ::idtGetBandedData transfère une bande de données d’un appareil matériel vers une application. Pour plus d’efficacité, les applications récupèrent des données à partir d’appareils matériels d’acquisition d’images Windows (WIA) dans des bandes successives.
Syntaxe
HRESULT idtGetBandedData(
[in] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
[in] IWiaDataCallback *pIWiaDataCallback
);
Paramètres
[in] pWiaDataTransInfo
Type : PWIA_DATA_TRANSFER_INFO
Pointeur vers la structure WIA_DATA_TRANSFER_INFO .
[in] pIWiaDataCallback
Type : IWiaDataCallback*
Pointeur vers l’interface IWiaDataCallback . Régulièrement, cette méthode appelle la méthode BandedDataCallback pour fournir à l’application un transfert de données status notification.
Valeur retournée
Type : HRESULT
Cette méthode peut retourner l’une des valeurs suivantes :
Valeur renvoyée | Signification |
---|---|
E_INVALIDARG | Un ou plusieurs paramètres de cette méthode contiennent des données non valides. |
E_OUTOFMEMORY | Cette méthode ne peut pas allouer suffisamment de mémoire pour terminer son opération. |
E_UNEXPECTED | Une erreur inconnue s'est produite. |
S_FALSE | L’application a annulé l’opération. |
S_OK | L’image a été acquise avec succès. |
STG_E_MEDIUMFULL | Le support de stockage utilisé par l’application pour acquérir l’image est plein. |
WIA_S_NO_DEVICE_AVAILABLE | Aucun périphérique matériel WIA n’est attaché à l’ordinateur de l’utilisateur. |
Cette méthode retourne une valeur spécifiée dans Codes d’erreur, ou une erreur COM standard si elle échoue pour une raison autre que celles spécifiées dans le tableau précédent.
Remarques
La méthode IWiaDataTransfer ::idtGetBandedData alloue une section de mémoire pour transférer des données sans nécessiter de copie de données supplémentaire via la couche de marshaling COM/RPC (Component Object Model/Remote Procedure Call). Cette section mémoire est partagée entre l’application et l’arborescence des éléments de l’appareil matériel.
Si vous le souhaitez, l’application peut passer un pointeur vers un bloc de mémoire que IWiaDataTransfer ::idtGetBandedData utilisera comme section partagée. L’application transmet ce handle en stockant le pointeur dans le membre ulSection de la structure WIA_DATA_TRANSFER_INFO avant d’appeler IWiaDataTransfer ::idtGetBandedData.
Les applications peuvent améliorer les performances à l’aide de la double mise en mémoire tampon. Pour ce faire, les applications doivent définir le membre bDoubleBuffer de la structure WIA_DATA_TRANSFER_INFO sur TRUE. La méthode IWiaDataTransfer ::idtGetBandedData divise la mémoire tampon de données en deux. Lorsqu’une moitié de la mémoire tampon est saturée, IWiaDataTransfer ::idtGetBandedData envoie une notification à l’application à l’aide du pointeur IWiaDataCallback transmis via le paramètre pIWiaDataCallback . Pendant que l’application récupère les données de la moitié complète de la mémoire tampon, le pilote de périphérique peut remplir l’autre moitié avec des données.
Le format du transfert de données est déterminé par les valeurs des propriétés WIA_IPA_FORMAT et WIA_IPA_TYMED de l’élément. L’application définit ces propriétés avec des appels à la méthode IWiaPropertyStorage ::WriteMultiple .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wia_xp.h (incluez Wia.h) |
Bibliothèque | Wiaguid.lib |
DLL | Wiaservc.dll |