DIDEVICEOBJECTDATA 構造体
DIDEVICEOBJECTDATA 構造体
バッファリング デバイスの情報を格納する。この構造体は、IDirectInputDevice8::GetDeviceData および IDirectInputDevice8::SendDeviceData メソッドで使う。
構文
typedef struct DIDEVICEOBJECTDATA {
DWORD dwOfs;
DWORD dwData;
DWORD dwTimeStamp;
DWORD dwSequence;
UINT_PTR uAppData;
} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;
typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
メンバ
dwOfs
IDirectInputDevice8::GetDeviceData の場合、データの報告対象となっているオブジェクトの、現在のデータ形式に対するオフセット値。つまり、IDirectInputDevice8::GetDeviceState メソッドの呼び出しによってデータが取得された場合、その dwData が格納されている位置となる。デバイスがマウス、キーボード、またはジョイスティックとしてアクセスされる場合、この dwOfs メンバは、マウス デバイスの列挙型、キーボード デバイスの列挙型、またはジョイスティック デバイス定数のいずれかになる。カスタム データ形式が設定されている場合は、カスタム データ形式に関連するオフセットになる。アクション マップを使用中の場合、このメンバを無視できる。その代わりに、uAppData からアクション値を取得する。
IDirectInputDevice8::SendDeviceData の場合、データの送信先であるオブジェクトのインスタンス識別子 (ID)。これは DIDEVICEOBJECTINSTANCE 構造体の dwType メンバから取得する。
dwData
デバイスから取得するか、またはデバイスに送信されるデータ。軸からの入力の場合、デバイスが相対軸モードにある場合、相対軸の動きが報告される。デバイスが絶対軸モードにある場合、絶対座標が報告される。
ボタンからの入力の場合、dwData の下位バイトだけが有意である。下位バイトの上位ビットは、ボタンが押されたときに設定され、離されたときに消去される。
dwTimeStamp
入力イベントが生成されたミリ秒単位のシステム時間。この値は、約 50 日で循環する。「注意」を参照すること。IDirectInputDevice8::SendDeviceData メソッドと共に構造体を使う場合、このメンバはゼロでなくてはならない。
dwSequence
このイベントに対する Microsoft® DirectInput® シーケンス番号。すべての入力イベントには、昇順のシーケンス番号が割り当てられている。これにより、異なるデバイスからのイベントを時間順にソートできる。この値は、循環して初期値に戻るので、2 つのシーケンス番号を比較する場合には注意しなければならない。DISEQUENCE_COMPARE マクロを使うと、この比較を安全に行える。IDirectInputDevice8::SendDeviceData メソッドと共に構造体を使う場合、このメンバはゼロでなくてはならない。
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 ミリ秒後に発生したと仮定することはできない。
構造体の情報
ヘッダー | dinput.h |
最低限のオペレーティング システム | Windows 98 |