共用方式為


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參數的值傳遞NullIWiaDevMgr2::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 [僅限傳統型應用程式]
標頭
Wia.h