IWiaDevMgr::GetImageDlg メソッド (wia_xp.h)
IWiaDevMgr::GetImageDlg メソッドは、ユーザーが Windows イメージ取得 (WIA) デバイスからイメージを取得し、指定したファイルにイメージを書き込む 1 つ以上のダイアログ ボックスを表示します。 このメソッドは 、IWiaDevMgr::SelectDeviceDlg の機能を組み合わせて、1 つの API 呼び出し内でイメージの取得を完全にカプセル化します。
構文
HRESULT GetImageDlg(
[in] HWND hwndParent,
[in] LONG lDeviceType,
[in] LONG lFlags,
[in] LONG lIntent,
[in] IWiaItem *pItemRoot,
[in] BSTR bstrFilename,
[in, out] GUID *pguidFormat
);
パラメーター
[in] hwndParent
型: HWND
[ イメージの取得 ] ダイアログ ボックスを所有するウィンドウのハンドル。
[in] lDeviceType
型: LONG
使用する WIA デバイスの種類を指定します。 StiDeviceTypeDefault、StiDeviceTypeScanner、または StiDeviceTypeDigitalCamera に設定されます。
[in] lFlags
型: LONG
ダイアログ ボックスの動作を指定します。 次の値に設定できます。
フラグ | 説明 |
---|---|
0 | 既定の動作。 |
WIA_SELECT_DEVICE_NODEFAULT | [ デバイスの選択 ] ダイアログ ボックスを表示するには、このメソッドを強制します。 詳細については、このリファレンス ページの 「解説 」セクションを参照してください。 |
WIA_DEVICE_DIALOG_SINGLE_IMAGE | [デバイス イメージの取得] ダイアログ ボックスで、イメージの選択を 1 つのイメージに制限します。 |
WIA_DEVICE_DIALOG_USE_COMMON_UI | ベンダーが提供する UI ではなく、システム UI (使用可能な場合) を使用します。 システム UI が使用できない場合は、ベンダー UI が使用されます。 どちらの UI も使用できない場合、関数はE_NOTIMPLを返します。 |
[in] lIntent
型: LONG
イメージが表すデータの種類を指定します。 イメージ意図の値の一覧については、「 Image Intent Constants」を参照してください。
[in] pItemRoot
種類: IWiaItem*
IWiaDevMgr::CreateDevice によって返される IWiaItem オブジェクトの階層ツリーのインターフェイスへのポインター。
[in] bstrFilename
種類: BSTR
イメージ データの書き込み先となるファイルの名前を指定します。
[in, out] pguidFormat
型: GUID*
入力時に、 には、使用する形式を指定する GUID へのポインターが含まれます。 出力時に、 は使用される形式を保持します。 既定の形式を使用するには、IID_NULLを渡します。
戻り値
種類: HRESULT
IWiaDevMgr::GetImageDlg は、ユーザーがデバイスの選択またはイメージ取得ダイアログ ボックスをキャンセルした場合にS_FALSEを返します。WIA デバイスが現在使用できない場合はWIA_S_NO_DEVICE_AVAILABLE、UI がない場合はE_NOTIMPL、データが正常に転送された場合はS_OK。
IWiaDevMgr::GetImageDlg は 、エラー コードで指定された値を返します。指定された値以外の理由でエラーが発生した場合は標準 COM エラーを返します。
注釈
このメソッドを呼び出すと、ユーザーが画像を取得できるようにするダイアログ ボックスが表示されます。 また、IWiaDevMgr::SelectDeviceDlg メソッドによって作成された [デバイスの選択] ダイアログ ボックスを表示することもできます。
アプリケーションが pItemRoot パラメーターの値に NULL を渡すと、IWiaDevMgr::GetImageDlg は [デバイスの選択] ダイアログ ボックスを表示し、ユーザーが WIA 入力デバイスを選択できるようにします。 アプリケーションで pItemRoot パラメーターを使用してデバイスの項目ツリーへのポインターを渡して WIA 入力デバイスを指定した場合、IWiaDevMgr::GetImageDlg は [デバイスの選択] ダイアログ ボックスを表示しません。 代わりに、指定された入力デバイスを使用してイメージを取得します。
[デバイスの 選択 ] ダイアログ ボックスを使用すると、アプリケーションで WIA 入力デバイスの種類を指定できます。 そのためには、 pItemRoot パラメーターを NULL に設定し、 lDeviceType パラメーターを介して適切な定数を渡す必要があります。 指定した種類のデバイスが複数存在する場合、 IWiaDevMgr::GetImageDlg は [ デバイスの選択 ] ダイアログ ボックスを表示して、ユーザーが使用するデバイスを選択できるようにします。
IWiaDevMgr::GetImageDlg で一致するデバイスが 1 つだけ見つかると、[デバイスの選択] ダイアログ ボックスは表示されません。 代わりに、一致するデバイスが選択されます。 この動作をオーバーライドし、iWiaDevMgr::GetImageDlg に lFlags パラメーターの値として WIA_SELECT_DEVICE_NODEFAULTを渡すことで、[デバイスの選択] ダイアログ ボックスを強制的に表示できます。
アプリケーションでは、[ファイル] メニューの [スキャナーまたはカメラから] という名前のメニュー項目を使用して、デバイスとイメージの選択を使用できるようにすることをお勧めします。
ダイアログには、一意のファイル名でファイルを保存できる bstrFilename のフォルダーに対する十分な権限が必要です。 フォルダーにはユーザー データが含まれているため、アクセス制御リスト (ACL) でも保護する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wia_xp.h (Wia.h を含む) |
Library | Wiaguid.lib |
[DLL] | Wiaservc.dll |