Share via


IWiaDataTransfer::idtGetBandedData-Methode (wia_xp.h)

Die IWiaDataTransfer::idtGetBandedData-Methode überträgt ein Datenband von einem Hardwaregerät an eine Anwendung. Aus Effizienzgründen rufen Anwendungen Daten von Windows Image Acquisition (WIA)-Hardwaregeräten in aufeinanderfolgenden Bändern ab.

Syntax

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

Parameter

[in] pWiaDataTransInfo

Typ: PWIA_DATA_TRANSFER_INFO

Zeiger auf die WIA_DATA_TRANSFER_INFO-Struktur .

[in] pIWiaDataCallback

Typ: IWiaDataCallback*

Zeiger auf die IWiaDataCallback-Schnittstelle . In regelmäßigen Abständen ruft diese Methode die BandedDataCallback-Methode auf, um der Anwendung Datenübertragungen status Benachrichtigung bereitzustellen.

Rückgabewert

Typ: HRESULT

Diese Methode kann einen der folgenden Werte zurückgeben:

Rückgabewert Bedeutung
E_INVALIDARG Mindestens ein Parameter für diese Methode enthält ungültige Daten.
E_OUTOFMEMORY Diese Methode kann nicht genügend Arbeitsspeicher zuweisen, um den Vorgang abzuschließen.
E_UNEXPECTED Unbekannter Fehler aufgetreten.
S_FALSE Die Anwendung hat den Vorgang abgebrochen.
S_OK Das Image wurde erfolgreich abgerufen.
STG_E_MEDIUMFULL Das Speichermedium, das die Anwendung zum Abrufen des Images verwendet, ist voll.
WIA_S_NO_DEVICE_AVAILABLE An den Computer des Benutzers sind keine WIA-Hardwaregeräte angeschlossen.
 

Diese Methode gibt einen unter Fehlercodes angegebenen Wert oder einen COM-Standardfehler zurück, wenn sie aus einem anderen als den in der vorherigen Tabelle angegebenen Gründen fehlschlägt.

Hinweise

Die IWiaDataTransfer::idtGetBandedData-Methode weist einen Speicherabschnitt für die Übertragung von Daten zu, ohne dass eine zusätzliche Datenkopie über die COM/RPC-Marshallingschicht (Component Object Model/Remote Procedure Call) erforderlich ist. Dieser Speicherabschnitt wird von der Anwendung und der Elementstruktur des Hardwaregeräts gemeinsam genutzt.

Optional kann die Anwendung einen Zeiger auf einen Speicherblock übergeben, den IWiaDataTransfer::idtGetBandedData als freigegebenen Abschnitt verwendet. Die Anwendung übergibt dieses Handle, indem sie den Zeiger im ulSection-Member der WIA_DATA_TRANSFER_INFO-Struktur speichert, bevor IWiaDataTransfer::idtGetBandedData aufgerufen wird.

Anwendungen können die Leistung mithilfe der doppelten Pufferung verbessern. Dazu müssen Anwendungen den bDoubleBuffer-Member der WIA_DATA_TRANSFER_INFO-Struktur auf TRUE festlegen. Die IWiaDataTransfer::idtGetBandedData-Methode teilt den Datenpuffer in die Hälfte auf. Wenn eine Hälfte des Puffers voll ist, sendet IWiaDataTransfer::idtGetBandedData mithilfe des IWiaDataCallback-Zeigers , der über den Parameter pIWiaDataCallback übergeben wird, eine Benachrichtigung an die Anwendung. Während die Anwendung die Daten aus der gesamten Hälfte des Puffers abruft, kann der Gerätetreiber die andere Hälfte mit Daten füllen.

Das Format der Datenübertragung wird durch die Werte der eigenschaften WIA_IPA_FORMAT und WIA_IPA_TYMED des Elements bestimmt. Die Anwendung legt diese Eigenschaften mit Aufrufen der IWiaPropertyStorage::WriteMultiple-Methode fest.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wia_xp.h (wia.h einschließen)
Bibliothek Wiaguid.lib
DLL Wiaservc.dll