Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® DirectInput® は、すべての使用可能な入力デバイスをシステムに問い合わせ、それらが接続されているかどうかを判定し、それらのデバイスに関する情報を返すことができる。このプロセスを列挙と呼ぶ。
標準のキーボードやマウス、またはその両方だけをアプリケーションで使っているなら、使用可能な入力デバイスを列挙する必要はない。「DirectInput デバイスの作成」を参照すること。
ほかのすべての入力デバイス、および複数のキーボードまたはマウスを使用するシステムに関しては、DirectInput8.GetDIDevices を呼び出して、使用可能なデバイスのコレクションを作成する。このメソッドは、デバイスのコレクションを表す DirectInputEnumDevices8 オブジェクトを返す。コレクション内の各デバイスは、DirectInputEnumDevices8.GetItem メソッドを使用することにより、DirectInputDeviceInstance8 オブジェクトとして取得できる。次の例は、ゲーム コントローラのコレクションを作成し、それらを lstJoysticks という名前のリスト ボックスに表示する方法を示す。
Dim diDevEnum As DirectInputEnumDevices8 Set diDevEnum = di.GetDIDevices(DI8DEVCLASS_GAMECTRL, DIEDFL_ATTACHEDONLY) Dim i As Integer For i = 1 To diDevEnum.GetCount Call lstJoysticks.AddItem(diDevEnum.GetItem(i).GetInstanceName) Next i
非標準デバイスに対して DirectInputDevice8 オブジェクトを作成するには、前もって DirectInputDeviceInstance8.GetGuidInstance を呼び出すことにより、デバイス列挙から少なくともそのデバイスの GUID を取得する必要がある。デバイスを列挙して、特定のタイプやサブタイプを検索したり (DirectInputDeviceInstance8.GetDevType を使用)、ユーザーがゲーム コントローラを選択できるようにリストボックスに代入したりすることもできる。
特定の能力を持つデバイスを検索することもできる。これを行うには、候補となるデバイスのそれぞれについて DirectInputDevice8 オブジェクトを作成し、DirectInputDevice8.GetCapabilities メソッドを使って詳細機能を調査する必要がある。