次の方法で共有


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 メソッドに渡さなければならない。

参照

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