Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2014-10-15 11:31:40 ЛС | профиль | цитата
Я пытался разобраться. Проблема в том, что в сообщении WM_INPUT должен использоваться какой-то хендл на свою структуру RAWINPUT.
Целевое приложение вызывает функцию GetRawInputData с этим хендлом и получает данные структуры.
Если саму структуру RAWINPUT заполнить не проблема, то каким образом создать этот хендл на неё - непонятно.
Здесь предполагается, что такой хендл можно получить через функции выделения памяти GlobalAlloc. Я попробовал передать такой хендл в GetRawInputData - выдаёт ошибку "неправильный хендл".

Нужно искать в MS DDK, заполняют ли какие-нибудь драйвера (HID и т.п.) сами эту структуру. Если да - то должны быть примеры. Если нет (более вероятно) - то драйвера шлют сырые данные системе, а система сама строит структуру RAWINPUT. Тогда нужно в отладчике гонять, например, функцию SendInput и смотреть, где формируется эта структура и что собой представляет хендл на неё.

И все равно не факт, что приложение в неактивном состоянии захочет обрабатывать это сообщение.
карма: 26

0