Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

зачем нужен 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.059 c
1-1153769260
ronyn
2006-07-24 23:27
2006.09.10
QProgress


2-1156349211
B.T.R.
2006-08-23 20:06
2006.09.10
Form1 and Form2


15-1155547420
Darkwing
2006-08-14 13:23
2006.09.10
Оценка труда программиста.


15-1156156747
TJulia
2006-08-21 14:39
2006.09.10
Документы на английском языке


2-1156190271
Id
2006-08-21 23:57
2006.09.10
Запуск Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский