次の方法で共有


DirectInput デバイスの作成

デバイスから入力データを取得するには、まずそのデバイスを表すオブジェクトを作成する必要があります。

次のコード例では、lpdi は IDirectInput8 インターフェイス へのポインターで、キーボード デバイスを作成しています。

LPDIRECTINPUTDEVICE8  lpdiKeyboard; 

lpdi->CreateDevice(GUID_SysKeyboard, &lpdiKeyboard, NULL); 

IDirectInput8::CreateDevice の最初のパラメーターは、インターフェイスを作成するデバイスのインスタンスを識別する、インスタンスのグローバル一意識別子 (GUID) です。DirectInput には、2 つの定義済み GUID、GUID_SysMouse と GUID_SysKeyboard があります。これらは、それぞれシステム マウスとシステム キーボードを表します。これらの識別子のいずれかを IDirectInput8::CreateDevice メソッドに渡すことができます。グローバル変数 GUID_Joystick は、インスタンス GUID ではなく製品 GUID であるため、IDirectInput8::CreateDevice のパラメーターとして使用しないでください。

    コンピューターに複数のマウスが存在する場合は、すべてのマウス入力が組み合わせられ、システム デバイスを形成します。キーボードが複数ある場合も同じです。

DirectInput には、主としてテスト用に、他にも 4 つの定義済み GUID があります。

  • GUID_SysKeyboardEm

  • GUID_SysKeyboardEm2

  • GUID_SysMouseEm

  • GUID_SysMouseEm2

これらの GUID のいずれかを IDirectInput8::CreateDevice に渡すことにより、レベル 1 またはレベル 2 のエミュレーション レイヤーからシステム キーボードまたはシステム マウスへのアクセスが許可されます。これらの GUID は、常にシステム マウスまたはシステム キーボードを表します。これらは GUID_SysKeyboard および GUID_SysMouse のエイリアスであるため、DIEDFL_INCLUDEALIASES フラグが渡された場合以外は IDirectInput8::EnumDevicesIDirectInput8::EnumDevicesBySemantics で列挙されません。

システム マウスまたはシステム キーボード以外のデバイスの場合は、IDirectInput8::EnumDevices または IDirectInput8::EnumDevicesBySemantics によって返されたデバイスのインスタンス GUID を使用します。デバイスのインスタンス GUID は、常に同じです。ユーザーがこれらの列挙されたリストからデバイスを選択し、構成ファイルに GUID を保存して、その後のセッションで再利用できるようにすることができます。