Platform SDK: DirectX

IDirectInputDevice7::GetDeviceState

IDirectInputDevice7::GetDeviceState メソッドは、デバイスから直接データを取得する。

HRESULT GetDeviceState(
  DWORD cbData,  
  LPVOID lpvData 
);

パラメータ

cbData
lpvData パラメータ内のバイト単位のバッファ サイズ。
lpvData
デバイスの現在の状態を受け取る構造体のアドレス。IDirectInputDevice7::SetDataFormat メソッドを呼び出す前に、データ形式を設定する。

戻り値

成功すれば 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 を使用。

参照

IDirectInputDevice7::Poll、「ポーリングとイベント」、「バッファリング データと直接データ