Platform SDK: DirectX

ステップ 1 : フォース フィードバック デバイスの列挙

[Visual Basic]

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

[C++]

最初の手順は、フォース フィードバック デバイスがシステムで利用できるようにすることである。これを行うには IDirectInput7::EnumDevices メソッドを呼び出す。次の例では、列挙が少なくとも 1 つの適合するデバイスを見つけることができた場合のみ、ゲーム デバイス インターフェイスへのグローバル ポインタが初期化される。

LPDIRECTINPUTDEVICE7  g_lpdid7 = NULL;   
 
lpdi->EnumDevices(DIDEVTYPE_JOYSTICK, 
                  DIEnumDevicesProc,
                  NULL, 
                  DIEDFL_FORCEFEEDBACK | DIEDFL_ATTACHEDONLY);
if (g_lpdid7 == NULL)
  {    
  // フォース フィードバック ジョイスティックが利用できない。適切な処理をとる。
  }
 

この例では、lpdiIDirectInput7 インターフェイスへの初期化済みポインタである。EnumDevices の第 1 パラメータにより、列挙対象がジョイスティック類のデバイスに限定される。第 2 パラメータは、DirectInput が列挙できるデバイスを識別するたびに呼び出されるコールバック関数である。第 3 パラメータは、コールバック関数に渡される、またはコールバック関数から渡されるユーザー定義データを表す。この例では使用されていない。最後に、第 4 パラメータのフラグにより、列挙対象が、フォース フィードバックをサポートするシステムに実際にアタッチされているデバイスに限定される。

コールバック関数は、デバイスが発見されるとすぐにそのデバイスを初期化するのに便利である (最初に発見されたのが使用したいデバイスであることを前提としている)。この処理は、「ステップ 2 : DirectInput フォース フィードバック デバイスの作成」で行うことになる。