Сообщение от Vyacheslav
Спасибо, Venom. Знаю, для сишников исходник всё говорит, а можешь мне немного рассказать о принципе работы?
|
В библиотеке User32 есть некоторые функции, которые позволяют определить подключеные устройства ввода типа
клавиатур, мышей, джойстиков и т.п - GetRawInputDeviceList, GetRawInputDeviceInfo и RegisterRawInputDevices
Так вот библиотека обрабатывает этот список, находя устройства подходящие под
категорию "манипулятор мышь" ^_^ формируя массив структур данных (для дальнейшей обработки)
После чего регистрирует в системе обработчик мышей
Все это делает функция InitMousex
Далее, с помощью функции CreateMousex, на блицевское окно ставится коллбэк
(WindowCallback - функция обработки сообщений) и отлавливается сообщение WM_INPUT
(эта возможность появилась начиная с XP, DirectInput кстати тоже с этим сообщением работает)
Вместе с WM_INPUT приходит данные обрабатываемого устройства которые передаются в функцию ReadMousex,
где и разбираются "по полочкам"
Вот примерно так и рабоатет ^_^