Condividi tramite


Metodo IWiaDataTransfer::idtGetBandedData (wia_xp.h)

Il metodo IWiaDataTransfer::idtGetBandedData trasferisce una banda di dati da un dispositivo hardware a un'applicazione. Per un'efficienza, le applicazioni recuperano i dati dai dispositivi hardware Windows Image Acquisition (WIA) in bande successive.

Sintassi

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

Parametri

[in] pWiaDataTransInfo

Tipo: PWIA_DATA_TRANSFER_INFO

Puntatore alla struttura WIA_DATA_TRANSFER_INFO .

[in] pIWiaDataCallback

Tipo: IWiaDataCallback*

Puntatore all'interfaccia IWiaDataCallback . Periodicamente, questo metodo chiamerà il metodo BandedDataCallback per fornire all'applicazione una notifica sullo stato del trasferimento dei dati.

Valore restituito

Tipo: HRESULT

Questo metodo può restituire uno dei valori seguenti:

Valore restituito Significato
E_INVALIDARG Uno o più parametri di questo metodo contengono dati non validi.
E_OUTOFMEMORY Questo metodo non può allocare memoria sufficiente per completare l'operazione.
E_UNEXPECTED Si è verificato un errore sconosciuto.
S_FALSE L'applicazione ha annullato l'operazione.
S_OK L'immagine è stata acquisita correttamente.
STG_E_MEDIUMFULL Il supporto di archiviazione usato dall'applicazione per acquisire l'immagine è pieno.
WIA_S_NO_DEVICE_AVAILABLE Non sono presenti dispositivi hardware WIA collegati al computer dell'utente.
 

Questo metodo restituirà un valore specificato in Codici di errore o un errore COM standard se ha esito negativo per qualsiasi motivo diverso da quelli specificati nella tabella precedente.

Commenti

Il metodo IWiaDataTransfer::idtGetBandedData alloca una sezione di memoria per trasferire i dati senza richiedere una copia aggiuntiva dei dati tramite il livello di marshalling COM/RPC (Component Object Model/Remote Procedure Call). Questa sezione di memoria viene condivisa tra l'applicazione e l'albero degli elementi del dispositivo hardware.

Facoltativamente, l'applicazione può passare un puntatore a un blocco di memoria che IWiaDataTransfer::idtGetBandedData userà come sezione condivisa. L'applicazione passa questo handle archiviando il puntatore nel membro ulSection della struttura WIA_DATA_TRANSFER_INFO prima di chiamare IWiaDataTransfer::idtGetBandedData.

Le applicazioni possono migliorare le prestazioni usando il doppio buffer. A tale scopo, le applicazioni devono impostare il membro bDoubleBuffer della struttura WIA_DATA_TRANSFER_INFO su TRUE. Il metodo IWiaDataTransfer::idtGetBandedData dividerà il buffer dei dati in metà. Quando una metà del buffer è piena, IWiaDataTransfer::idtGetBandedData invierà una notifica all'applicazione usando il puntatore IWiaDataCallback passato tramite il parametro pIWiaDataCallback . Mentre l'applicazione sta recuperando i dati dalla metà completa del buffer, il driver di dispositivo può riempire l'altra metà con i dati.

Il formato del trasferimento dei dati è determinato dai valori delle proprietà WIA_IPA_FORMAT e WIA_IPA_TYMED dell'elemento. L'applicazione imposta queste proprietà con chiamate al metodo IWiaPropertyStorage::WriteMultiple .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wia_xp.h (include Wia.h)
Libreria Wiaguid.lib
DLL Wiaservc.dll