Platform SDK: DirectX |
IDirectInputDevice7::GetDeviceState メソッドは、デバイスから直接データを取得する。
HRESULT GetDeviceState( DWORD cbData, LPVOID lpvData );
成功すれば DI_OK を返す。
失敗すれば次のエラー値のいずれかを返す。
DIERR_INPUTLOST |
DIERR_INVALIDPARAM |
DIERR_NOTACQUIRED |
DIERR_NOTINITIALIZED |
E_PENDING |
デバイス データを取得する前に、IDirectInputDevice7::SetCooperativeLevel メソッドで協調レベルを設定した後、IDirectInputDevice7::SetDataFormat メソッドでデータ形式を設定し、IDirectInputDevice7::Acquire メソッドでデバイスを取得する。
次の表に示すように、5 つの定義済みデータ形式には、それぞれに対応するデバイス状態構造体が必要である。
データ形式 | 状態構造体 |
---|---|
c_dfDIMouse | DIMOUSESTATE |
c_dfDIMouse2 | DIMOUSESTATE2 |
c_dfDIKeyboard | 256 バイトの配列 |
c_dfDIJoystick | DIJOYSTATE |
c_dfDIJoystick2 | DIJOYSTATE2 |
たとえば、c_dfDIMouse 形式を IDirectInputDevice::SetDataFormat メソッドに渡す場合は、DIMOUSESTATE 構造体を IDirectInputDevice::GetDeviceState メソッドに渡さなければならない。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dinput.h で宣言。
インポート ライブラリ : dinput.lib を使用。