Я бы просто использовал lParam & 0x40000000
. Если это не ноль, то b30
было установлено (кстати, я считаю, что тридцать первый бит из тридцати двух). И есть большая вероятность, что это будет операция {logical-and, compare}
, а не {shift, logical-and, compare}
.
Имейте в виду, есть хороший шанс, что приличный компилятор в любом случае сгенерирует более эффективный код, даже если вы используете (lParam >> 30) & 1
, но зачем рисковать?