Platform SDK: DirectX |
バッファリングされている DirectInput 入力データの場合 (「バッファリング データと直接データ」を参照)、各 DIDEVICEOBJECTDATA 構造体には、イベントのタイプとそれに関連付けられたデバイス オブジェクトだけでなく、タイム スタンプとシーケンス番号も格納される。
dwTimeStamp メンバは、イベントが発生したときのシステム時間をミリ秒単位で格納する。これは、Win32 GetTickCount 関数によって返される値と同じか、より精度が高い値である。
dwSequence メンバは、DirectInput が割り当てたシーケンス番号を格納する。DirectInput システムは、単一のシーケンス カウンタを保持している。このカウンタは、任意のデバイスで、バッファリングされるイベントが発生するたびに随時増加する。この番号を使って、異なるデバイスから発生するイベントを比較し、どちらが先かを確認することができる。DISEQUENCE_COMPARE マクロは、シーケンス カウンタの循環性を考慮している。
バッファリングされている DirectInput 入力データの場合 (「バッファリング データと直接データ」を参照)、各 DIDEVICEOBJECTDATA 型には、イベントのタイプとそれに関連するデバイス オブジェクトだけでなく、タイム スタンプとシーケンス番号も格納される。
lTimeStamp メンバは、イベントが発生したときのシステム時間をミリ秒単位で格納する。これは、Win32 GetTickCount 関数によって返される値と同じか、より精度が高い値である。
lSequence メンバは、DirectInput が割り当てたシーケンス番号を格納する。DirectInput システムは、単一のシーケンス カウンタを保持している。このカウンタは、任意のデバイスで、バッファリングされるイベントが発生するたびに随時増加する。この番号を使って、異なるデバイスから発生するイベントを比較し、どちらが先かを確認することができる。
同時に発生するイベントには、同じシーケンス番号が割り当てられる。たとえば、マウスやジョイスティックを斜めに移動する場合の x 軸と y 軸の変化は、同じシーケンス番号を持つ。
注 : イベントは、常に、発生時間順にバッファに入れられるので、単一デバイスからのイベントを単に順序付けするだけなら、シーケンス番号をチェックする必要はない。