Platform SDK: DirectX

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

[Visual Basic]

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

[C++]

DirectInput オブジェクトの作成後、アプリケーションはキーボード オブジェクト (デバイス) を作成し、IDirectInputDevice7 インターフェイスへのポインタを取得しなければならない。デバイスは、このインターフェイスのメソッドを使用して、キーボード関連タスクの大半を実行する。

このポインタを取得するには、「サンプル関数 1 : DI_Init」で示すように、IDirectInput7::CreateDeviceEx メソッドを呼び出さなければならない。CreateDeviceEx は、4 つのパラメータを取る。

第 1 パラメータは、作成するデバイスの GUID である。キーボード システムが使用されることになるので、事前に定義されたグローバル変数を GUID_SysKeyboard に渡す。

第 2 パラメータは、目的のインターフェイスの GUID である。ほとんどのアプリケーションは IID_IDirectInputDevice7 を渡すことで、最新のバージョンを取得する。

第 3 パラメータは、呼び出しが成功した場合に、取得したインターフェイス ポインタで初期化される変数のアドレスである。

第 4 パラメータは、COM 集合化で使用する制御オブジェクトの IUnknown インターフェイスのアドレスである。集合化を使用しない場合には、このパラメータを NULL にする。

以下のコードは、IDirectInputDevice7 インターフェイスへのポインタを取得しようとする例である。失敗した場合には、DI_Term アプリケーション定義サンプル関数を呼び出し、既存の DirectInput オブジェクトがあればその割り当てを解除する。

 :  すべての例の g_lpdi は、DirectInput オブジェクトに対する初期化されたポインタである。メソッド呼び出しは、C++ 形式である。

HRESULT hr;
LPDIRECTINPUTDEVICE7  g_lpDIDEVICE 
 
hr = g_lpDI->CreateDeviceEx(GUID_SysKeyboard, IID_IDirectInputDevice7,
(void**)&g_lpDIDevice, NULL); 
if FAILED(hr)
{ 
DI_Term();
return FALSE;
} 

次項 : ステップ 3 : キーボード データ形式の設定