Главная страница
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.027 c
15-1155789612
KilkennyCat
2006-08-17 08:40
2006.09.10
Ужос.


15-1155651735
hamster
2006-08-15 18:22
2006.09.10
Не запускается Windows


15-1155803907
ArtemESC
2006-08-17 12:38
2006.09.10
Запись в MBR


2-1156277463
DillerXX
2006-08-23 00:11
2006.09.10
CreateThread &amp;&amp; Strings


4-1147598731
MikeZ
2006-05-14 13:25
2006.09.10
Контекстное меню Проводника и передача данных