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