タッチ入力についてはリファレンスにはありませんが以下のようなタッチ入力情報取得関数がありまして
// ストックされているタッチ情報の数を取得する
int GetTouchInputLogNum( void ) ;
// ストックされているタッチ情報をクリアする
int ClearTouchInputLog( void ) ;
// ストックされているタッチ情報から一番古い情報をひとつ取得する( PeekFlag FALSE:ストック情報を削除する TRUE:ストック情報を削除しない )
TOUCHINPUTDATA GetTouchInputLogOne( int PeekFlag = FALSE ) ;
// ストックされているタッチ情報から古い順に指定数バッファに取得する( PeekFlag FALSE:ストック情報を削除する TRUE:ストック情報を削除しない 戻り値 -1:エラー 0以上:取得した情報の数 )
int GetTouchInputLog( TOUCHINPUTDATA *TouchData, int GetNum, int PeekFlag = FALSE ) ;
// タッチパネルのタッチの情報
struct TOUCHINPUTDATA
{
LONGLONG Time ; // 情報の時間
unsigned int Source ;
int PointNum ; // 有効なタッチ情報の数
TOUCHINPUTPOINT Point[ TOUCHINPUTPOINT_MAX ] ; // タッチ情報
} ;
// タッチパネルの1箇所分のタッチの情報
struct TOUCHINPUTPOINT
{
DWORD Device ; // タッチされたデバイス
DWORD ID ; // タッチを判別するためのID
int PositionX ; // タッチされた座標X
int PositionY ; // タッチされた座標Y
float Pressure ; // 圧力
float Orientation ; // 画面の上端に対する接点の方位角
float Tilt ; // 画面の垂線に対する接点の高度角
int ToolType ; // ツールタイプ( DX_TOUCHINPUT_TOOL_TYPE_UNKNOWN など )
} ;
こちらの関数は GetTouchInput のように『今、押されているか』の情報ではなく、
過去も含めて『押された・離された』のタイミングで記録された情報を取得することができます
GetTouchInputLogOne で取得できる情報は古い順なので、GetTouchInputLogNum() の戻り値が 1 の
時に GetTouchInputLogOne で取得した情報が一番新しい押下情報となり、そのときに取得できた
TOUCHINPUTDATA のメンバー変数 Time が最新のタイムスタンプとなります
よろしければお試しください m(_ _)m