現在Win32のキーボードフックのプログラムを作っておりまして、SetWindowsHookEx関数を使いキーフックまでは出来たのですが、キー入力時にlParamに送られてくるデータから押上や押下の取得の方法がわからず、探してようやく見つけたのが↓のif文でした。しかし、if文中の&の意味を調べてもポインタなどの資料ばかり出てきて見つからなかったので質問させていただきます。
if((lParam&0xc0000000)!=0){
//WM_KEYDOWNと同じ
}
上のような&の時の意味はなんでしょうか。
//キー入力時にデータが送られてくるCALLBACK関数
LRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp)
{
if (nCode < 0 ){
return CallNextHookEx(hMyHook, nCode, wp, lp);
}
if (wp >= VK_XBUTTON2){
if((lp&0xc0000000)==0){
//WM_KEYDOWNと同じ
}
return CallNextHookEx(hMyHook, nCode, wp, lp);
} else{
return CallNextHookEx(hMyHook, nCode, wp, lp);
}
return TRUE;
}
