次の方法で共有


DIDEVICEOBJECTDATA

バッファー デバイスの情報を格納します。この構造体は、IDirectInputDevice8::GetDeviceData および IDirectInputDevice8::SendDeviceData メソッドで使用されます。

typedef struct DIDEVICEOBJECTDATA {
    DWORD dwOfs;
    DWORD dwData;
    DWORD dwTimeStamp;
    DWORD dwSequence;
    UINT_PTR uAppData;
} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;

メンバ

  • dwOfs
    IDirectInputDevice8::GetDeviceData の場合、データを報告するオブジェクトの現在のデータ フォーマットへのオフセットです。つまり、IDirectInputDevice8::GetDeviceState メソッドの呼び出しによってデータが取得された場合、dwData が格納されている場所です。デバイスがマウス、キーボード、またはジョイスティックとしてアクセスされる場合、dwOfs メンバーは、マウス デバイス定数キーボード デバイス定数、またはジョイスティック デバイス定数のいずれかになります。カスタム データ フォーマットが設定されている場合は、カスタム データ フォーマットに関するオフセットです。 IDirectInputDevice8::SendDeviceData の場合、DIDEVICEOBJECTINSTANCE 構造体の dwType メンバーから取得されたデータが送信されるオブジェクトのインスタンス ID です。
  • dwData
    デバイスから取得されるデータ、またはデバイスに送信されるデータです。 軸からの入力の場合、デバイスが相対軸モードであれば、相対軸の動きが報告されます。デバイスが絶対軸モードであれば、絶対軸座標が報告されます。 ボタンからの入力の場合、dwData の下位バイトのみが重要です。下位バイトの上位ビットは、ボタンが押されたときに設定され、放されたときに消去されます。
  • dwTimeStamp
    入力イベントが生成されたシステム時間 (ミリ秒単位) です。この値は、約 50 日ごとにラップ アラウンドします。「解説」を参照してください。 この構造体を IDirectInputDevice8::SendDeviceData メソッドで使用する場合、このメンバーは 0 になる必要があります。
  • dwSequence
    このイベントの DirectInput シーケンス番号です。すべての入力イベントに昇順のシーケンス番号が割り当てられます。これによって、個々のデバイスのイベントを発生順にソートすることができます。この値はラップ アラウンドすることがあるので、2 つのシーケンス番号を比較するときには注意が必要です。DISEQUENCE_COMPARE マクロを使用すると、この比較を安全に行うことができます。 この構造体を IDirectInputDevice8::SendDeviceData メソッドで使用する場合、このメンバーは 0 になる必要があります。
  • uAppData
    前回の IDirectInputDevice8::SetActionMap の呼び出しでこのオブジェクトに割り当てられた、アプリケーション定義のアクション値です。これは、オブジェクトに関連付けられた DIACTION 構造体の uAppData メンバーの値です。アクション マッピングを使用していない場合は、この値を無視してください。 この構造体を IDirectInputDevice8::SendDeviceData メソッドで使用する場合、このメンバーはゼロになる必要があります。

解説 

dwTimeStamp で返されるシステム時間は、Microsoft Win32 の GetTickCount または timeGetTime 関数が使用するのと同じクロックのものですが、より正確な値を生成する能力があります。たとえば、Microsoft Windows 95 では、GetTickCount タイマーは 55 ミリ秒ごとにしか更新されませんが、dwTimeStamp の値は、誤差 1 ミリ秒以内の正確さです。そのため、GetTickCount を呼び出し、n が返された場合、n + n1 というタイムスタンプのイベントを受け取っても、GetTickCount を呼び出してからちょうど n1 ミリ秒後にそのイベントが発生したと仮定することはできません。