Platform SDK: DirectX

ステップ 3 : ジョイスティック データ形式の設定

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectInput Visual Basic チュートリアル」を参照すること。

[C++]

これまでにアプリケーションは、DirectInput デバイスへのポインタを取得しているので、IDirectInputDevice7 メソッドを呼び出して、そのデバイスを操作することができる。ここではまず、ジョイスティックのデータ形式を設定する。この手順は不可欠である。この手順では、DirectInput に対して入力データの書式を設定する方法を指示する。

Space Donuts サンプルでは、前のステップで導入したコールバック関数でこの処理を実行する。

   if (pdev->lpVtbl->SetDataFormat(pdev, &c_dfDIJoystick) != DI_OK) 
   { 
      OutputDebugString("IDirectInputDevice7::SetDataFormat FAILED\n"); 
      pdev->lpVtbl->Release(pdev); 
      return DIENUM_CONTINUE; 
   } 
 

pdev 変数は、IDirectInput7::CreateDeviceEx が作成したデバイス インターフェイスへのポインタである。

IDirectInputDevice7::SetDataFormat メソッドは、2 つのパラメータを取る。第 1 パラメータは、このインターフェイスの呼び出し側インスタンスに対するポインタであり、C++ では不要である。第 2 パラメータは、デバイスのデータの書式設定方法に関する情報を格納する DIDATAFORMAT 構造体へのポインタである。ジョイスティックの場合は、事前定義されたグローバル変数 c_dfDIJoystick をここで使用できる。

前のステップのように、コールバック関数は、デバイスの初期化に失敗した場合に DIENUM_CONTINUE を返す。このフラグは、列挙対象のデバイスが存在する限り、列挙を続行することを DirectInput に指示する。

次項 : ステップ 4 : ジョイスティックの動作の設定