Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IRP_MJ_READ, Не пойму размерность 
:(
    Опции темы
Baa
Дата 10.9.2003, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Запрос IRP_MJ_READ передает енту структуру с внутреннего буфера в буфер Win32.
Написал фильтр драйвер мыши. Но вот загвоздка, никак не могу понять, LastX и LastY - в каких координатах?
А точнее как рассчитать координаты относительно экрана? Мне нужно, чтобы мышь висела от левого края в 30% от разрешения экрана.
Соотв. как получить разрешение экрана? Надо ли посылать запрос видео драйверу или можно сделать проще?
Структура определена в ntddmou.h, что в NTDDK 2000
Код

typedef struct MOUSE_INPUT_DATA {
   USHORT UnitId;     // zero-based unit number of the mouse port
   USHORT Flags;      // indicator flags
   union {
       ULONG Buttons; // transition state of the mouse buttons
       struct {
           USHORT ButtonFlags; // transition state of mouse buttons
           USHORT ButtonData;  // data for flags (such as amount
                               // of movement if MOUSE_WHEEL is set)
       };
   };
   ULONG RawButtons;  // the raw state of the mouse buttons,
                      // currently not used by the Win32 subsystem
   LONG LastX;        // the signed relative or absolute motion
                      // in the X direction
   LONG LastY;        // the signed relative or absolute motion
                      // in the Y direction
   ULONG ExtraInformation;  // device-specific information
                            // for the event
} MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Gorbatovsky
Дата 10.9.2003, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 4.9.2003
Где: Киев

Репутация: нет
Всего: нет



///получаем разрешение монитора
int maxX=GetSystemMetrics(SM_CXSCREEN);
int maxY=GetSystemMetrics(SM_CYSCREEN);
//Кординаты мыши могут быть даны или экранными или оконными.
//Узнай при помощи отладки
PM MAIL ICQ   Вверх
Baa
Дата 10.9.2003, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Gorbatovsky, эээ... какими-такими оконными? Какими-такими экранными? Какой-такой WinApi? Если бы все так просто было, то я бы и не мучался smile.gif Нет, из драйвера нельзя вызывать WinApi функции, ответ не принимается smile.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
mr.DUDA
Дата 10.9.2003, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
Но вот загвоздка, никак не могу понять, LastX и LastY - в каких координатах?

Наверное, в твипсах или HIMETRIC/LOMETRIC единицах, относительно последнего положения мышки.

Это сообщение отредактировал(а) mr.DUDA - 10.9.2003, 23:04


--------------------
user posted image
PM MAIL WWW   Вверх
Baa
Дата 10.9.2003, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Хорошо... чего можно в моем случае придумать?


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.