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

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

Проблема с SetWindowsHookEx(WH_CallWndProc,...) [D7, WinXP]


Страницы:   1 2

KonstantinM ©   (2006-02-22 11:12:00) 

В программе установлен хук SetWindowsHookEx(WH_CallWndProc,...). После этого перестает работать SendMessageW(UnicodeEditHandle, EM_GETLINE, ...) - всегда возвращает путую строку. Проблема также проявляется, если запустить внешнюю программу, устанавливающую этот хук - например Winspector Spy.
Кто-нибудь сталкивался с такой проблемой? Можно как-нибудь заставить SendMessageW работать?


Сергей М.   (2006-02-22 11:51:00) [21]

Этот код даже скомпилирован быть не может, не говоря уже о его исполнении.

HookHandle:= SetWindowsHookExW(WH_CALLWNDPROC, @CallWndProcHook, 0, GetCurrentThreadId);


> Обработчик:
> function CallWndProcHook(Code: Integer; WParam: WPARAM;
> LParam: LPARAM): RESULT; stdcall;


Какой еще RESULT ?

Зачем изобретать сомнительные идентификаторы ? Ведь Result - зарезервированный идентификатор !

Чем HHOOK не угодил ?


KonstantinM   (2006-02-22 11:29:00) [22]

Установка:
HookHandle:= SetWindowsHookExW(WH_CALLWNDPROC, CallWndProcHook, 0, GetCurrentThreadId);

Обработчик:
function CallWndProcHook(Code: Integer; WParam: WPARAM; LParam: LPARAM): RESULT; stdcall;
begin
Result := CallNextHookEx(HookHandle, Code, WParam, LParam);
end;

После этого SendMessageW(UnicodeEditHandle, EM_GETLINE, ...) перестает работать. Сообщение EM_GETLINE до обработчика хука не доходит.


Сергей М.   (2006-02-22 11:18:00) [23]

Устрани ошибки в коде обработчика хука WH_CallWndProc


Страницы:   1 2

Наверх

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