Microsoft DirectX 8.0 (C++) |
Microsoft® DirectInput® オブジェクトの作成後、アプリケーションはキーボード オブジェクト (デバイス) を作成し、IDirectInputDevice8 インターフェイスへのポインタを取得する必要がある。デバイスは、キーボード関連タスクの大部分を、このインターフェイスのメソッドを使って実行する。
このポインタを取得するには、「サンプル関数 1 : DI_Init」で示すように、IDirectInput8::CreateDevice メソッドを呼び出さなければならない。CreateDevice は、3 つのパラメータを取る。
第 1 パラメータは、作成するデバイスの GUID である。システム キーボードが使用されるため、アプリケーションは事前に定義されたグローバル変数を GUID_SysKeyboard に渡す。
第 2 パラメータは、呼び出しが成功した場合にインターフェイス ポインタで初期化される変数のアドレスである。
第 3 パラメータは、COM 集成体で使用する制御オブジェクトの IUnknown インターフェイスのアドレスである。ほとんどのアプリケーションでは集成体は使用されないため、通常の場合、このパラメータの値には NULL を設定する。
以下のコードは、IDirectInputDevice8 インターフェイスへのポインタを取得しようとする例である。失敗した場合には、DI_Term アプリケーション定義サンプル関数を呼び出し、既存の DirectInput オブジェクトがあればその割り当てを解除する。
注 すべての例の g_lpdi は、DirectInput オブジェクトに対する初期化されたポインタである。
HRESULT hr; LPDIRECTINPUTDEVICE8 g_lpDIDevice hr = g_lpDI->CreateDevice(GUID_SysKeyboard, &g_lpDIDevice, NULL); if FAILED(hr) { DI_Term(); return FALSE; }
DirectInput キーボード デバイスを作成したら、「ステップ 3 : キーボードのデータ形式の設定」に進む。