Поделиться через


Метод IWiaDataTransfer::idtGetBandedData (wia_xp.h)

Метод IWiaDataTransfer::idtGetBandedData передает диапазон данных с аппаратного устройства в приложение. Для повышения эффективности приложения получают данные с аппаратных устройств windows Image Acquisition (WIA) в последовательных диапазонах.

Синтаксис

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

Параметры

[in] pWiaDataTransInfo

Тип: PWIA_DATA_TRANSFER_INFO

Указатель на структуру WIA_DATA_TRANSFER_INFO .

[in] pIWiaDataCallback

Тип: IWiaDataCallback*

Указатель на интерфейс IWiaDataCallback . Периодически этот метод вызывает метод BandedDataCallback , чтобы предоставить приложению уведомление о состоянии передачи данных.

Возвращаемое значение

Тип: HRESULT

Этот метод может возвращать любое из следующих значений:

Возвращаемое значение Значение
E_INVALIDARG Один или несколько параметров этого метода содержат недопустимые данные.
E_OUTOFMEMORY Этот метод не может выделить достаточно памяти для выполнения операции.
E_UNEXPECTED Произошла неизвестная ошибка.
S_FALSE Приложение отменило операцию.
S_OK Образ успешно получен.
STG_E_MEDIUMFULL Среда хранения, используемая приложением для получения образа, заполнена.
WIA_S_NO_DEVICE_AVAILABLE К компьютеру пользователя не подключены аппаратные устройства WIA.
 

Этот метод возвращает значение, указанное в коде ошибок, или стандартную ошибку COM, если она завершается сбоем по какой-либо причине, кроме указанной в предыдущей таблице.

Комментарии

Метод IWiaDataTransfer::idtGetBandedData выделяет часть памяти для передачи данных без необходимости копирования дополнительных данных через слой маршалинга модели объектов компонентов или удаленного вызова процедур (COM/RPC). Этот раздел памяти используется приложением и деревом элементов аппаратного устройства.

При необходимости приложение может передать указатель на блок памяти, который IWiaDataTransfer::idtGetBandedData будет использовать в качестве общего раздела. Приложение передает этот дескриптор, сохраняя указатель в элементе ulSectionструктуры WIA_DATA_TRANSFER_INFO перед вызовом IWiaDataTransfer::idtGetBandedData.

Приложения могут повысить производительность с помощью двойной буферизации. Для этого приложения должны задать для элемента bDoubleBuffer структуры WIA_DATA_TRANSFER_INFO значение TRUE. Метод IWiaDataTransfer::idtGetBandedData делит буфер данных пополам. Когда половина буфера заполнена, IWiaDataTransfer::idtGetBandedData отправит уведомление в приложение с помощью указателя IWiaDataCallback , переданного через параметр pIWiaDataCallback . Пока приложение извлекет данные из полной половины буфера, драйвер устройства может заполнить другую половину данными.

Формат передачи данных определяется значениями свойств WIA_IPA_FORMAT и WIA_IPA_TYMED элемента. Приложение задает эти свойства с помощью вызовов метода IWiaPropertyStorage::WriteMultiple .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wia_xp.h (включая Wia.h)
Библиотека Wiaguid.lib
DLL Wiaservc.dll