IDirectInputDevice8::GetDeviceState メソッド
IDirectInputDevice8::GetDeviceState メソッド
デバイスから直接データを取得する。
構文
HRESULT GetDeviceState(
DWORD cbData,
LPVOID lpvData
);
パラメータ
- cbData
lpvData パラメータ内のバッファ サイズ (バイト単位)。 - lpvData
デバイスの現在の状態を受け取る構造体のアドレス。IDirectInputDevice8::SetDataFormat メソッドを呼び出す前に、データ形式を設定する。
戻り値
成功した場合は、DI_OK を返す。
失敗した場合は、次のいずれかのエラー値を返す。
DIERR_INPUTLOST | 入力デバイスへのアクセスが失われた。再取得しなければならない。 |
DIERR_INVALIDPARAM | 無効なパラメータが、戻ってくる関数に渡されたか、オブジェクトがその関数を呼び出せる状態になかった。この値は、標準のコンポーネント オブジェクト モデル (COM) 戻り値である E_INVALIDARG に等しい。 |
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 メソッドに渡さなければならない。
参照