次の方法で共有


IWiaDevMgr::SelectDeviceDlg メソッド (wia_xp.h)

IWiaDevMgr::SelectDeviceDlg には、ユーザーがイメージ取得用のハードウェア デバイスを選択できるようにするダイアログ ボックスが表示されます。

構文

HRESULT SelectDeviceDlg(
  [in]          HWND     hwndParent,
  [in]          LONG     lDeviceType,
  [in]          LONG     lFlags,
  [in, out]     BSTR     *pbstrDeviceID,
  [out, retval] IWiaItem **ppItemRoot
);

パラメーター

[in] hwndParent

型: HWND

[ デバイスの選択 ] ダイアログ ボックスを所有するウィンドウのハンドル。

[in] lDeviceType

型: LONG

使用する WIA デバイスの種類を指定します。 StiDeviceTypeDefaultStiDeviceTypeScanner、または StiDeviceTypeDigitalCamera に設定できます。

[in] lFlags

型: LONG

ダイアログ ボックスの動作を指定します。 次のいずれかの値に設定できます。

定数 説明
0 既定の動作を使用します。
WIA_SELECT_DEVICE_NODEFAULT 一致するデバイスが 1 つしかない場合でも、ダイアログ ボックスを表示します。 詳細については、このリファレンス ページの 「解説 」セクションを参照してください。

[in, out] pbstrDeviceID

種類: BSTR*

出力時に、デバイスの識別子文字列を含む文字列を受け取ります。 入力時に、この情報が必要な場合はポインターのアドレスを渡し、必要ない場合は NULL を 渡します。

[out, retval] ppItemRoot

種類: IWiaItem**

選択した WIA デバイスを表すツリーのルート項目の IWiaItem インターフェイスへのポインターのアドレスを受け取ります。 デバイスが見つからない場合は、 値 NULL が含まれます。

戻り値

種類: HRESULT

このメソッドは、次の値を返します。

戻り値 説明
S_OK デバイスが正常に選択されました。
S_FALSE ユーザーがダイアログ ボックスを取り消しました。
WIA_S_NO_DEVICE_AVAILABLE lDeviceType パラメーターで指定された仕様に一致する WIA ハードウェア デバイスはありません。

解説

このメソッドは、[ デバイスの選択 ] ダイアログ ボックスを作成して表示し、ユーザーが画像取得用の WIA デバイスを選択できるようにします。 デバイスが正常に選択されると、 IWiaDevMgr::SelectDeviceDlg メソッドによって、デバイスの IWiaItem オブジェクトの階層ツリーが作成されます。 ルート項目の IWiaItem インターフェイスへのポインターをパラメーター ppItemRoot に格納します。

lDeviceType パラメーターを使用してデバイスの種類を指定することで、特定の種類のデバイスをユーザーに表示できます。 仕様を満たすデバイスが 1 つだけの場合、 IWiaDevMgr::SelectDeviceDlg は [ デバイスの選択 ] ダイアログ ボックスを表示しません。 代わりに、デバイスの IWiaItem ツリーを作成し、ルート項目の IWiaItem インターフェイスへのポインターをパラメーター ppItemRoot に格納します。 この動作をオーバーライドし、iWiaDevMgr::SelectDeviceDlg を強制的に表示するには、lFlags パラメーターの値として WIA_SELECT_DEVICE_NODEFAULTを渡します。

複数の WIA デバイスが仕様に一致する場合は、一致するすべてのデバイスが [ デバイスの選択 ] ダイアログ ボックスに表示されるため、ユーザーは 1 つを選択できます。

アプリケーションは、ppItemRoot パラメーターを介して受け取るインターフェイス ポインターで IUnknown::Release メソッドを呼び出す必要があります。

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

要件

   
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wia_xp.h (Wia.h を含む)
Library Wiaguid.lib
[DLL] Wiaservc.dll