Работа с битами:
Некоторые из функций Win32 API и объекты VB используют целочисленные переменные, как набор битовых флагов. Если проверить присутсвтие флаговещё можно простым сравниванием с нулём, то отследить один флаг бывает довольно сложно. К счастью VB поддерживает логичексие операции, что упрощает работу с битовыми полями.Чтение Битов - осуществляется путём сравнения проверяемой переменной со специальной маской с применением операции And. В маске проверияемый бит должен быть установлен. Для этого достаточно возвести двойку в степень равную номеру бита(не забудьте, что они нумеруются слева направо, начиная с нуля.)
If Var And &H4 Then "проверяет наличие 2-го бита(2^2 = 4)
Установка бита в переменной делается ещё проще. Для этого исользуется операция Or или простое сложение.
Flag = Flag Or 2 "Установка 1 Бита
Сбросить бит можно с помощью комбинации And и Not.
Flag = Flag And (Not 2) "Сброс 1 Бита
Также с помощью математических операций можно заменить операторы сдвига.Сдвиг влево можно осуществить с помощью умножения на 2 в степени равной числу битов на которые происходит сдвиг. Соответсвенно сдвиг вправо осуществляется делением нацело. (/)
8 * 2 = 16 "1000 <= 00010000
8 / 4 = 2 " 1000 =>=> 10