DIDEVICEOBJECTDATA
DIDEVICEOBJECTDATA 型は、バッファリング デバイスの未加工の情報を格納する。この型は、DirectInputDevice.GetDeviceData メソッドで使用される。
Type DIDEVICEOBJECTDATA
lData As Long
lOfs As Long
lSequence As Long
lTimeStamp As Long
End Type
メンバ
- lData
- デバイスから取得されるデータ。
軸からの入力の場合、デバイスが相対軸モードにあれば、相対軸の動きが報告される。デバイスが絶対軸モードにあれば、絶対座標が報告される。
ボタンからの入力の場合、lData の下位バイトだけが有意である。下位バイトの上位ビットは、ボタンがダウン状態の場合に設定され、アップ状態の場合に消去される。
- lOfs
- 報告されているデータが属するオブジェクトの現在のデータ形式に対するオフセット。つまり、DirectInputDevice.GetDeviceStateX メソッド (GetDeviceStateMouse など、X は特定のデバイスを指す) を呼び出してデータを取得した場合に、データが格納されている場所。デバイスがキーボードとしてアクセスされる場合、この値を CONST_DIKEYFLAGS 列挙のメンバと比較することで、どのキーがイベントを生成したかを判定できる。マウスやジョイスティックの場合、lOfs の値は、DIMOUSESTATE、DIJOYSTATE、または DIJOYSTATE2 型 (DirectInputDevice.SetCommonDataFormat で設定されたデータ形式により異なる) に含まれる軸またはボタンのバイト オフセットと等しい。これらのオフセットの定数は、CONST_DIMOUSEOFS 列挙および CONST_DIJOYSTICKOFS 列挙に含まれる。DirectInputDevice.SetDataFormat でカスタム データ形式が設定されていた場合、lOfs は、カスタム データ形式内のデバイス オブジェクトの場所のオフセットである。
- lSequence
- このイベントに対する DirectInput シーケンス番号。すべての入力イベントには、昇順のシーケンス番号が割り当てられている。これにより、異なるデバイスからのイベントを時間順にソートすることが可能になる。この値は、循環して初期値に戻るので、2 つのシーケンス番号を比較する場合には注意しなければならない。
- lTimeStamp
- 入力イベントが生成されたミリ秒単位のシステム時間。この値は、約 50 日で循環する。