Показать сообщение отдельно
Старый 11.04.2008, 17:33   #9
Venom
Оператор ЭВМ
 
Регистрация: 25.02.2008
Сообщений: 24
Написано 8 полезных сообщений
(для 30 пользователей)
Ответ: Несколько мышей в Блице

Сообщение от Vyacheslav Посмотреть сообщение
Спасибо, Venom. Знаю, для сишников исходник всё говорит, а можешь мне немного рассказать о принципе работы?
В библиотеке User32 есть некоторые функции, которые позволяют определить подключеные устройства ввода типа
клавиатур, мышей, джойстиков и т.п - GetRawInputDeviceList, GetRawInputDeviceInfo и RegisterRawInputDevices
Так вот библиотека обрабатывает этот список, находя устройства подходящие под
категорию "манипулятор мышь" ^_^ формируя массив структур данных (для дальнейшей обработки)
После чего регистрирует в системе обработчик мышей Все это делает функция InitMousex
Далее, с помощью функции CreateMousex, на блицевское окно ставится коллбэк
(WindowCallback - функция обработки сообщений) и отлавливается сообщение WM_INPUT
(эта возможность появилась начиная с XP, DirectInput кстати тоже с этим сообщением работает)
Вместе с WM_INPUT приходит данные обрабатываемого устройства которые передаются в функцию ReadMousex,
где и разбираются "по полочкам"
Вот примерно так и рабоатет ^_^
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо Venom за это полезное сообщение:
Arles (11.06.2010), burovalex (06.04.2012), HolyDel (11.04.2008), impersonalis (11.04.2008), Main Cry (09.03.2009), Mhyhr (26.04.2010), moka (14.04.2008)