次の方法で共有


一致するデバイスの検索

一致するデバイスの検索

アプリケーション アクションと、それらのアクションのマップ先である仮想コントロールやデバイス オブジェクトの定義が済んだら、次のステップでは、システム上のデバイスを列挙して、目的の仮想コントロールに最適なデバイスを検索する。

このためには、IDirectInput8::EnumDevicesBySemanticsDIACTIONFORMAT 構造体を渡す。このメソッドは、ほとんどの点で IDirectInput8::EnumDevices と同じように機能し、類似のコールバック関数をとる。

特定のコントロールに一致するようにユーザーが構成したデバイスは、常に最初に列挙される。たとえば、ユーザーがホイールをドライビング ゲームのプライマリ ステアリング デバイスとして構成している場合は、DIAXIS_DRIVINGR_STEER をサポートするデバイスが要求されるとホイールが最初に列挙される。DIAXIS_DRIVINGR_STEER をサポートするジョイスティックなどの他のデバイスがあっても、ユーザーによって構成されていなければ、ホイールが優先される。それ以外の場合、利用可能なデバイスの列挙順は、要求されたコントロールに一致する度合いにより決まる。しかし、Microsoft® DirectInput® がデバイスを列挙する順序は保証されない。

列挙コールバックでは、各デバイスのデフォルト アクション マップの取得、不要なマッピングの変更、ユーザーがデバイスを再構成する機能の設定、およびアクション マップの適用を行うことができる。これらの手順は、「アクション マップの構成」で説明している。DIEnumDevicesBySemanticsCallback に返されるフラグは、特定のデバイスが列挙された理由を示す。これらのフラグは、デバイスが最近使われたか、新しくインストールされたか、または優先順位 1 か優先順位 2 のコントロールのマッピングを受け付けるかどうかを示す。