Microsoft DirectX 8.0 (Visual Basic)

DIDEVICEOBJECTDATA

バッファリング デバイスの未加工の情報を格納する。この型は、DirectInputDevice8.GetDeviceData メソッドで使用される。

Type DIDEVICEOBJECTDATA
    lData As Long
    lOfs As Long
    lSequence As Long
    lTimeStamp As Long
    lUserData As Long
End Type

メンバ

lData
デバイスから取得されるデータ。

軸からの入力の場合、デバイスが相対軸モードにあれば、相対軸の動きが報告される。デバイスが絶対軸モードにあれば、絶対座標が報告される。

ボタンからの入力の場合、lData の下位バイトだけが有意である。下位バイトの上位ビットは、ボタンがダウン状態の場合に設定され、アップ状態の場合に消去される。

lOfs
報告されているデータが属するオブジェクトの現在のデータ形式に対するオフセット。つまり、DirectInputDevice8.GetDeviceStateX メソッド (GetDeviceStateMouse など、X は特定のデバイスを指す) を呼び出してデータを取得した場合に、データが格納されている場所。デバイスがキーボードとしてアクセスされる場合、この値を CONST_DIKEYFLAGS 列挙のメンバと比較することで、どのキーがイベントを生成したかを判定できる。マウスやジョイスティックの場合、lOfs の値は、DIMOUSESTATEDIJOYSTATE、または DIJOYSTATE2 型 (DirectInputDevice8.SetCommonDataFormat で設定されたデータ形式により異なる) に含まれる軸またはボタンのバイト オフセットと等しい。これらのオフセットの定数は、CONST_DIMOUSEOFS 列挙および CONST_DIJOYSTICKOFS 列挙に含まれる。DirectInputDevice8.SetDataFormat でカスタム データ形式が設定されていた場合、lOfs は、カスタム データ形式内のデバイス オブジェクトの場所のオフセットである。
lSequence
このイベントに対する Microsoft® DirectInput® シーケンス番号。すべての入力イベントには、昇順のシーケンス番号が割り当てられている。これにより、異なるデバイスからのイベントを時間順にソートすることが可能になる。この値は、循環して初期値に戻るので、2 つのシーケンス番号を比較する場合には注意しなければならない。
lTimeStamp
入力イベントが生成されたミリ秒単位のシステム時間。この値は、約 50 日で循環する。
lUserData
前回の DirectInputDevice8.SetActionMap の呼び出しで、このオブジェクトに割り当てられたアプリケーション定義のアクション値。これは、オブジェクトに関連付けられた DIACTION 型の lAppData メンバの値である。アクション マッピングを使用していない場合はこの値を無視する。

型構造体が SendDeviceData メソッドと共に使用される場合、このメンバは必ずゼロになる。