Microsoft DirectX 8.0 (C++) |
アクション マッピングを使用していない場合、デバイスのデータ形式の設定は、デバイス取得およびデバイス使用を始める前に行う基本的な手順である。デバイスから直接データ (状態データ) を取得することを目的としていない場合でも、データ形式を設定しなければならない。Microsoft® DirectInput® では多くのメソッドでデータ形式を使用し、特定のデバイス オブジェクトを識別する。
デバイス オブジェクトが使用するデバイスとデータ配列の方法は、IDirectInputDevice8::SetDataFormat メソッドが DirectInput に対して指示する。
DIDATAFORMAT 構造体および DIOBJECTDATAFORMAT 構造体のリファレンス中の例には、非標準デバイスに対してカスタム データ形式を設定する方法が示されている。この設定手順は幸いにも、ジョイスティック、キーボード、およびマウスには不要である。DirectInput は、5 つのグローバル変数、すなわち c_dfDIJoystick、c_dfDIJoystick2、c_dfDIKeyboard、c_dfDIMouse、および c_dfDIMouse2 を提供している。これらの変数を SetDataFormat に渡してジョイスティック、キーボード、およびマウスに対する標準データ形式を作成することができる。
以下のサンプル コードで、lpdiMouse は、DirectInputDevice オブジェクトに対する初期化されたポインタである。
lpdiMouse->SetDataFormat(&c_dfDIMouse);
注 : 事前定義された DIDATAFORMAT グローバル変数は const 変数であるので、この中の dwFlags メンバを (たとえば、軸のプロパティを変更するために) 変更することはできない。プロパティを変更するには、データ形式を設定した後で、デバイスを取得する前に、IDirectInputDevice8::SetProperty を使用する。