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 |