Метод 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 |