IWiaDevMgr2::GetImageDlg 方法
IWiaDevMgr2::GetImageDlg方法會顯示一或多個對話方塊,讓使用者能夠從 Windows Image Acquire (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,如果使用者取消對話方塊,或傳回標準 COM 錯誤,則會傳回S_FALSE。
注意
如果函式傳回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 [僅限傳統型應用程式] |
標頭 |
|