次の方法で共有


タイム スタンプとシーケンス番号

DirectInput の入力データがバッファーに入れられる場合 (「バッファー データと直接データ」を参照)、各 DIDEVICEOBJECTDATA 構造体にはイベント タイプに関する情報だけでなく、イベントに関連付けられたデバイス オブジェクトも格納されます。また、タイム スタンプとシーケンス番号も格納されます。

dwTimeStamp メンバーには、イベントが発生したシステム時間がミリ秒単位で格納されます。この値は、Microsoft Win32 の GetTickCount 関数によって返される値と同じですが、より高精度です。

dwSequence メンバーには、DirectInput によって割り当てられたシーケンス番号が格納されます。DirectInput システムは単一のシーケンス カウンターを保持します。このカウンターは、任意のデバイスからのバッファー イベントごとに 1 つずつ大きくなります(マウスを斜めに移動した場合など、同じデバイスで同時に複数のイベントが発生した場合、カウントは 1 回だけ増加します)。この番号を使用して、異なる複数のデバイスからのイベントを比較し、どのイベントが先だったかを確認します。DirectInput のシーケンス番号の比較に使用される DISEQUENCE_COMPARE マクロでは、ラップアラウンドが考慮されます。

    イベントは、常に時系列順にバッファーに配置されるため、1 つのデバイスからのイベントを順に並べる場合にシーケンス番号をチェックする必要はありません。