次の方法で共有


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 宣言

関連項目

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