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 インターフェイス メソッドを使用してデバイスを獲得する必要があります。
5 つの定義済みデータ フォーマットを使用するには、次の表に示すとおり対応するデバイス状態構造体が必要です。
データ フォーマット | 状態構造体 |
---|---|
c_dfDIMouse | DIMOUSESTATE |
c_dfDIMouse2 | DIMOUSESTATE2 |
c_dfDIKeyboard | 256 バイトの配列 |
c_dfDIJoystick | DIJOYSTATE |
c_dfDIJoystick2 | DIJOYSTATE2 |
たとえば、c_dfDIMouse フォーマットを IDirectInputDevice8::SetDataFormat メソッドに渡した場合は、DIMOUSESTATE 構造体を IDirectInputDevice8::GetDeviceState メソッドに渡す必要があります。
要件
ヘッダー: Dinput.h 宣言