Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с хуком [D6, WinXP]


}{enon ©   (2003-03-01 16:18:00) 

В DLL ставится хук WH_GETMESSAGE. В качестве GetMsgProc используется следущая функция:
function PaintProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
AppWnd: HWND;
f: textfile;
m: tagMSG;
begin
if code < 0 then
begin
Result:= CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Exit;
end;
PeekMessage(m,0,0,0,PM_REMOVE);
if m.message=WM_PAINT then
---Обработка данных---
CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Result:= 0;
end;


Всё работает, но процедура, обрабатывающая полученный результат вызывается раз по десять - двадцать. Кто-нибудь знает, в чём дело?


}{enon   (2003-03-01 19:24:00) [1]

Спасибо. Пойду устранять.


Song   (2003-03-01 16:40:00) [2]

Потому что WM_PAINT посылает одновременно куча окон, вот ты их все и ловишь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо