Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

зачем нужен CallNextHookEx   Найти похожие ветки 

 
Mr tray   (2006-05-14 23:21) [0]

Здравствуйте. Объясните пожалуйста, что делает функция CallNextHookEx. Я уже читал, что она передает сообщение следующей хук-функции. Но зачем это делается? И когда это надо делать, а когда - нет?


 
Leonid Troyanovsky ©   (2006-05-14 23:26) [1]


> Mr tray   (14.05.06 23:21)  

>  Но зачем это делается? И когда это надо делать, а когда
> - нет?


RTFM: msdn.

--
Regards, LVT.


 
Mr tray   (2006-05-14 23:38) [2]

The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. This function supersedes the DefHookProc function.
Перевод:
Функция CallNextHookEx передает хук-информацию следующей хук-процедуре в текущей цепи хуков. Эта функция заменяет функцию DefHookProc.

И ещё про keyboardproc:
If code is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx.
Перевод:
Если code меньше нуля, хук-процедура должна передать сообщение функции (то есть, вызвать функцию) CallNextHookEx без дальнейшего функционирования и должна возвратить значение, возвращенное функцией CallNextHookEx.

Но зачем передавать хук-информацию следующей хук-процедуре? И когда это надо делать?


 
Mr tray   (2006-05-14 23:40) [3]

Только ли когда code в keyboardproc меньше нуля?


 
Leonid Troyanovsky ©   (2006-05-15 00:00) [4]


> Mr tray   (14.05.06 23:40) [3]

> Только ли когда code в keyboardproc меньше нуля?


RTFM: msdn.

--
Regards, LVT.


 
Mr tray   (2006-05-15 00:08) [5]

Блин. Да скажи ты мне наконец!! Нах... следующей процедуре-хуку что-то вообще передавать. Зачем это надо?


 
Leonid Troyanovsky ©   (2006-05-15 00:10) [6]


> Mr tray   (15.05.06 00:08) [5]

> Блин. Да скажи ты мне наконец!!


Читать умеешь?
Все равно, вслух-то я не скажу.

--
Regards, LVT.


 
Mr tray   (2006-05-15 00:23) [7]

if a hook procedure does not call CallNextHookEx, Windows does not call the hook procedures installed before the current hook procedure was installed.

Если хук-процедура не вызывает CallNextHookEx, Виндоус не вызывает хук-процедуры, установленные перед установкой данной хук-процедуры.

То есть, если моя программа с моим DLL использует только одну хук-процедуру (то есть, нет хук-проуедур, установленных "перед установкой данной хук-процедуры"), то мне нужно вызывать CallNextHookEx только в
случае code<0:
if code<0 then begin
 result:=CallNextHookEx(code,handle,wparam,lparam);
 exit;
end;

так?


 
Leonid Troyanovsky ©   (2006-05-15 00:28) [8]


> Mr tray   (15.05.06 00:23) [7]

> так?


А то.
Только, откуда можно знать, что установлен перед.

--
Regards, LVT.


 
Nostradamus   (2006-05-15 14:06) [9]

Да всегда вызывай и не мороч себе голову - хуже не будет :)



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
15-1155985488
Nic
2006-08-19 15:04
2006.09.10
Наручные механические часы


2-1156146595
novill
2006-08-21 11:49
2006.09.10
Философское. Как правильнее выйти из процедуры?


2-1155966178
LLL|
2006-08-19 09:42
2006.09.10
TPanel смена цвета


3-1152192063
mefisto
2006-07-06 17:21
2006.09.10
"Наглядный" SQL Запрос : )


15-1155117731
Аноним
2006-08-09 14:02
2006.09.10
Есть ли в Windows возможность использовать несколько мышей?