direct input でキーボード状態を以下のように取得すると思うのですが、
・& 演算子は実質 == 演算子と同じ意味でしょうか?
・また0x80の値に意味がありますか?
(0x70だと単に現在ボタンが押されているではなく
 押し続けた・離していた状態から押した瞬間など
 状態の違いに分かれているとか)

GetDeviceState(256, buffer);
if ( buffer[ button ] & 0x80 )
{
//buttonが押された
}