なかなかめんどっちい

Mouse 操作とマルチタッチの併用時の問題

TOUCHEVENTF_PRIMARY のタッチは WM_LBUTTONDOWN/WM_LBUTTONUP/WM_MOUSEMOVE 等のマウスイベントも発生させます。 アプリケーションをマウスとマルチタッチの両操作対応にすると、マルチタッチ中なのに同時にマウス側の処理も多重に行われる可能性があります。 MSDN Troubleshooting Applications によると下記の方法で判別できるそうです。
#define MOUSEEVENTF_FROMTOUCH 0xFF515700
if( (GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH ){
// Click was generated by wisptis / Windows Touch
}else{
// Click was generated by the mouse.
}
WM_TOUCH で Primary の TOUCHEVENTF_DOWN が来ない問題

Windows 7 のデフォルト設定では、最初のタッチ時に即座に TOUCHEVENTF_DOWN が発生しません。 下記の何らかの動作を行って初めて DOWN と UP (または MOVE) が同時に発生します。
指を離したとき
位置をずらしたとき
そのまま押し続けて円の描画が終わってから

Windows 7 で プレス アンド ホールド (長押し) 操作が有効になっていることが原因です。 タッチしたタイミングが分からずディレイが発生するのでゲームなどに向きません。 下記の設定で直るようです。
コントロールパネルから「ペンとタッチ」を開く
「タッチ」のタブを開く
“プレスアンドホールド” を選択してその下の [設定] を押す。
「プレス アンド ホールド を右クリックとして認識する」のチェックを外す
[OK] → [OK]

これで最初のタッチですぐに TOUCHEVENTF_DOWN が発生するようになります。 ただし通常のウィンドウ操作でも長押し(プレス アンド ホールド)で右ボタンメニューが出なくなるので注が必要です。