次の方法で共有


IWiaDevMgr2::GetImageDlg メソッド

IWiaDevMgr2::GetImageDlg メソッドは、ユーザーが Windows イメージ取得 (WIA) 2.0 デバイスからイメージを取得し、指定したファイルにイメージを書き込む 1 つ以上のダイアログ ボックスを表示します。 このメソッドは 、IWiaDevMgr2::SelectDeviceDlg の機能を拡張して、1 つの 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

スキャンしたファイルを格納するフォルダー ito の名前を指定します。

bstrFilename [in]

種類: BSTR

イメージ データを書き込むファイルの名前を指定します。

plNumFiles [in]

種類: LONG*

スキャンするファイルの数へのポインター。

ppbstrFilePaths [in]

種類: BSTR**

スキャンされたファイルのパスの配列へのポインターのアドレス。 IWiaDevMgr2::GetImageDlg が呼び出される前に、サイズ 0 (0) の配列を指すポインターを初期化します。 「解説」を参照してください。

ppItem [in, out]

種類: IWiaItem2**

画像がスキャンされた IWiaItem2 へのポインターのアドレス。

戻り値

種類: HRESULT

IWiaDevMgr2::GetImageDlg は、データが正常に転送された場合にS_OKを返し、ユーザーがダイアログ ボックスをキャンセルした場合はS_FALSEを返すか、標準の COM エラーを返します。

Note

関数がS_FALSEを返す場合、 ppbstrFilePaths パラメーターは必ずしも空ではありません。 ユーザーがキャンセルすると、スキャンが完了したページが処理され、 ppbstrFilePaths で返されます。 使用されていない場合でも、配列を解放する必要があります。 「解説」を参照してください。

 

解説

アプリケーションが bstrDeviceID パラメーターの値に NULL を渡すと、IWiaDevMgr2::GetImageDlg は [デバイスの選択] ダイアログ ボックスを表示して、ユーザーが WIA 2.0 入力デバイスを選択できるようにします。

[ファイル] メニューの [スキャナーから] という名前のメニュー項目を使用して、デバイスとイメージの選択をアプリケーションで使用できるようにします。

ppbstrFilePaths[i] が指す配列内の各 BSTR で SysFreeString を呼び出し、配列自体で CoTaskMemFree を呼び出して、関連付けられているメモリを解放します。 S_FALSEが返された場合、plNumFiles が指す値が 0 ではないかどうかを確認チェック。 値が 0 でない場合は、1 つ以上のページをスキャンした後にユーザーが取り消す可能性があるため、アプリケーション内の ppbstrFilePaths[i] リソースを解放します。 IWiaDevMgr2::GetImageDlg を呼び出す前に、plNumFiles を 0 に初期化します。 plNumFiles がゼロに初期化されておらず、COM インフラストラクチャの障害により、IWiaDevMgr2::GetImageDlg が呼び出される前に関数がS_FALSEを返す場合、plNumFiles には誤解を招くガベージ値が発生します。

ダイアログ ボックスには、一意のファイル名でファイルを保存できるように 、bstrFolderName に対する十分な権限が必要です。 ユーザー データが含まれているため、アクセス制御リスト (ACL) でフォルダーを保護します。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
ヘッダー
Wia.h