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 [デスクトップ アプリのみ] |
ヘッダー |
|