Microsoft DirectX 8.0 (C++) |
最初の手順は、フォース フィードバック デバイスをシステムで利用できるようにすることである。これを行うには IDirectInput8::EnumDevices メソッドを呼び出す。次の例では、列挙が少なくとも 1 つの適合するデバイスを見つけることができた場合のみ、ゲーム デバイス インターフェイスへのグローバル ポインタが初期化される。
LPDIRECTINPUTDEVICE8 g_lpDIDevice = NULL; hr = g_lpDI->EnumDevices(DI8DEVTYPE_GAMECTRL, DIEnumDevicesProc, NULL, DIEDFL_FORCEFEEDBACK | DIEDFL_ATTACHEDONLY); if (FAILED(hr)) { // フォース フィードバック ジョイスティックが利用できない。 }
この例では、g_lpDI は IDirectInput8 インターフェイスへの初期化済みポインタである。EnumDevices の第 1 パラメータにより、列挙対象がジョイスティック類のデバイスに限定される。第 2 パラメータは、Microsoft® DirectInput® が列挙に値するデバイスを識別したときに必ず呼び出されるコールバック関数である。第 3 パラメータは、コールバック関数に渡される、またはコールバック関数から渡されるユーザー定義データを表す。この例では使用されていない。最後に、第 4 パラメータのフラグにより、列挙対象が、フォース フィードバックをサポートするシステムに実際にアタッチされているデバイスに限定される。
コールバック関数は、デバイスが発見されるとすぐにそのデバイスを初期化するのに便利である (最初に発見されたのが使用したいデバイスであることを前提としている)。これは、「ステップ 2 : DirectInput フォース フィードバック デバイスの作成」で行うことになる。