次の方法で共有


デバイス データ形式

デバイス データ形式

アクション マップを使っていない場合、デバイスのデータ形式を設定することは、デバイスの取得と使用を始める前に行う基本的な手順である。デバイスから直接データ (状態データ) を取得することを目的としていない場合でも、データ形式を設定しなければならない。Microsoft® DirectInput® では、多くのメソッドでデータ形式を使って、特定のデバイス オブジェクトを識別する。

デバイス オブジェクトが使うデバイスとデータ配列の方法は、IDirectInputDevice8::SetDataFormat メソッドが DirectInput に対して指示する。

DIDATAFORMAT 構造体および DIOBJECTDATAFORMAT 構造体のリファレンス中の例には、非標準デバイスに対してカスタム データ形式を設定する方法が示されている。この設定手順は、ジョイスティック、キーボード、およびマウスに対しては不要である。DirectInput には、c_dfDIJoystickc_dfDIJoystick2c_dfDIKeyboardc_dfDIMousec_dfDIMouse2 の 5 つのグローバル変数が用意されている。これらの変数を IDirectInputDevice8::SetDataFormat に渡して、デバイス用の標準データ形式を作成できる。

次のサンプル コードで、lpdiMouse は、DirectInputDevice オブジェクトに対する初期化されたポインタを表す。

lpdiMouse->SetDataFormat(&c_dfDIMouse);

  事前定義された DIDATAFORMAT グローバル変数は const 変数であるので、この中の dwFlags メンバを (たとえば軸のプロパティを変更するために) 変更することはできない。プロパティを変更するには、データ形式を設定し、デバイスを取得する前に、IDirectInputDevice8::SetProperty メソッドを使う。