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


Метод IWiaDevMgr2::GetImageDlg

Метод IWiaDevMgr2::GetImageDlg отображает одно или несколько диалоговых окон, которые позволяют пользователю получить изображение с устройства Windows Image Acquisition (WIA) 2.0 и записать его в указанный файл. Этот метод расширяет функциональные возможности IWiaDevMgr2::SelectDeviceDlg для инкапсуляции получения изображений в рамках одного вызова API.

Синтаксис

HRESULT GetImageDlg(
  [in]      LONG      lFlags,
  [in]      BSTR      bstrDeviceID,
  [in]      HWND      hwndParent,
  [in]      BSTR      bstrFolderName,
  [in]      BSTR      bstrFilename,
  [in]      LONG      *plNumFiles,
  [in]      BSTR      **ppbstrFilePaths,
  [in, out] IWiaItem2 **ppItem
);

Параметры

lFlags [in]

Тип: LONG

Задает поведение диалогового окна. Можно задать следующие значения:

Flag Значение
0 Поведение по умолчанию.
WIA_DEVICE_DIALOG_USE_COMMON_UI Используйте системный пользовательский интерфейс вместо пользовательского интерфейса, предоставленного поставщиком. Если пользовательский интерфейс системы недоступен, используется пользовательский интерфейс поставщика. Если пользовательский интерфейс недоступен, функция возвращает E_NOTIMPL.

 

bstrDeviceID [in]

Тип: BSTR

Указывает используемый сканер.

hwndParent [in]

Тип: HWND

Дескриптор окна, которому принадлежит диалоговое окно Получение изображения .

bstrFolderName [in]

Тип: BSTR

Указывает имя папки, в ней хранятся отсканированные файлы.

bstrFilename [in]

Тип: BSTR

Указывает имя файла, в который записываются данные изображения.

plNumFiles [in]

Тип: LONG*

Указатель на количество проверяемых файлов.

ppbstrFilePaths [in]

Тип: BSTR**

Адрес указателя на массив путей для отсканированных файлов. Инициализируйте указатель так, чтобы он указывал на массив нулевого размера (0) перед вызовом IWiaDevMgr2::GetImageDlg . См. Примечания.

ppItem [in, out]

Тип: IWiaItem2**

Адрес указателя на IWiaItem2 , с которым были отсканированы изображения.

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

Тип: HRESULT

IWiaDevMgr2::GetImageDlg возвращает S_OK, если данные успешно переданы, возвращает S_FALSE, если пользователь отменяет диалоговое окно, или возвращает стандартную ошибку COM.

Примечание

Параметр ppbstrFilePaths не обязательно пуст, если функция возвращает S_FALSE. Если пользователь отменяет, страницы, которые завершили проверку, обрабатываются и возвращаются в ppbstrFilePaths. Даже если они не используются, необходимо освободить массив. См. Примечания.

 

Комментарии

Если приложение передает значение NULL для параметра bstrDeviceID , IWiaDevMgr2::GetImageDlg отображает диалоговое окно Выбор устройства , чтобы пользователь смог выбрать устройство ввода WIA 2.0.

Используйте пункт меню с именем Из сканера в меню Файл , чтобы в приложении были доступны выбранные устройства и изображения.

Вызовите SysFreeString для каждого BSTR в массиве, на который указывает ppbstrFilePaths[i], и вызовите CoTaskMemFree в самом массиве , чтобы освободить связанную память. Если возвращается S_FALSE, проверка, чтобы узнать, не равно ли значение, на которое указывает plNumFiles. Если значение не равно нулю, освободите ресурсы ppbstrFilePaths[i] в приложении, так как пользователь может отменить ее после сканирования одной или нескольких страниц. Инициализируйте plNumFiles до нуля перед вызовом IWiaDevMgr2::GetImageDlg. Если plNumFiles не инициализирован до нуля и сбой в com-инфраструктуре приводит к тому, что функция возвращает S_FALSE до вызова IWiaDevMgr2::GetImageDlg , то plNumFiles будет иметь вводящее в заблуждение значение мусора.

Диалоговое окно должно иметь достаточные права на bstrFolderName , чтобы оно могло сохранять файлы с уникальными именами файлов. Защитите папку с помощью списка управления доступом (ACL), так как она содержит данные пользователя.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]
Заголовок
Wia.h