Microsoft DirectX 8.0 (C++)

IDirectInputDevice8::GetDeviceState

デバイスから直接データを取得する。

HRESULT GetDeviceState(
  DWORD cbData,  
  LPVOID lpvData 
);

パラメータ

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

戻り値

成功した場合は、DI_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DIERR_INPUTLOST
DIERR_INVALIDPARAM
DIERR_NOTACQUIRED
DIERR_NOTINITIALIZED
E_PENDING

注意

デバイス データを取得する前に、IDirectInputDevice8::SetCooperativeLevel メソッドで協調レベルを設定した後、IDirectInputDevice8::SetDataFormat メソッドでデータ形式を設定し、IDirectInputDevice8::Acquire メソッドでデバイスを取得する。

次の表に示すように、5 つの定義済みデータ形式には、それぞれに対応するデバイス状態構造体が必要である。

データ形式 状態構造体
c_dfDIMouse DIMOUSESTATE
c_dfDIMouse2 DIMOUSESTATE2
c_dfDIKeyboard 256 バイトの配列
c_dfDIJoystick DIJOYSTATE
c_dfDIJoystick2 DIJOYSTATE2

たとえば、c_dfDIMouse 形式を IDirectInputDevice8::SetDataFormat メソッドに渡す場合は、DIMOUSESTATE 構造体を IDirectInputDevice8::GetDeviceState メソッドに渡さなければならない。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : dinput.h で宣言。

参照

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