IWiaDevMgr2::GetImageDlg 方法
IWiaDevMgr2::GetImageDlg 方法显示一个或多个对话框,这些对话框使用户能够从 Windows 映像获取 (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
指定对话框行为。 可以设置为以下值:
标志 含义 0 默认行为。 WIA_DEVICE_DIALOG_USE_COMMON_UI 使用系统 UI 而不是供应商提供的 UI。 如果系统 UI 不可用,则使用供应商 UI。 如果两个 UI 都不可用,该函数将返回E_NOTIMPL。 -
bstrDeviceID [in]
-
类型: BSTR
指定要使用的扫描程序。
-
hwndParent [in]
-
类型:HWND
拥有“ 获取图像 ”对话框的窗口的句柄。
-
bstrFolderName [in]
-
类型: BSTR
指定存储扫描文件的文件夹的名称。
-
bstrFilename [in]
-
类型: BSTR
指定要将图像数据写入到的文件的名称。
-
plNumFiles [in]
-
类型: LONG*
指向要扫描的文件数的指针。
-
ppbstrFilePaths [in]
-
类型: BSTR**
指向扫描文件的路径数组的指针的地址。 在调用 IWiaDevMgr2::GetImageDlg 之前,初始化指针以指向大小为零的数组 (0) 。 请参阅备注。
-
ppItem [in, out]
-
类型: IWiaItem2**
指向扫描图像的 IWiaItem2 的指针的地址。
返回值
类型: HRESULT
如果数据成功传输,则 IWiaDevMgr2::GetImageDlg 返回S_OK,如果用户取消对话框,则返回S_FALSE,或返回标准 COM 错误。
注意
如果函数返回S_FALSE, 则 ppbstrFilePaths 参数不一定为空。 如果用户取消,则已完成扫描的页面将在 ppbstrFilePaths 中处理并返回。 即使不使用它们,也必须释放数组。 请参阅备注。
备注
如果应用程序为 bstrDeviceID 参数的值传递 NULL,则 IWiaDevMgr2::GetImageDlg 将显示“选择设备”对话框,以便用户可以选择 WIA 2.0 输入设备。
在“文件”菜单上使用名为“从扫描程序”的菜单项,以便在应用程序中提供设备和图像选择。
对 ppbstrFilePaths[i] 指向的数组中的每个 BSTR 调用 SysFreeString,并在数组本身上调用 CoTaskMemFree 以释放关联的内存。 如果返回S_FALSE,检查查看 plNumFiles 指向的值是否不为零。 如果值不为零,请释放应用程序中的 ppbstrFilePaths[i] 资源,因为用户可能会在扫描一个或多个页面后取消。 在调用 IWiaDevMgr2::GetImageDlg 之前,将 plNumFiles 初始化为零。 如果 plNumFiles 未初始化为零,并且 COM 基础结构中的故障导致函数在调用 IWiaDevMgr2::GetImageDlg 之前返回S_FALSE,则 plNumFiles 将具有误导性的垃圾值。
对话框必须具有 bstrFolderName 的足够权限,以便它可以保存具有唯一文件名的文件。 使用访问控制列表 (ACL) 保护文件夹,因为它包含用户数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|