Microsoft DirectX 8.0 (C++)

ステップ 2 : DirectInput キーボード デバイスの作成

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 : キーボードのデータ形式の設定」に進む。