Здравствуйте kanych, вы писали:
K>В МСДН и в хелпе по Win32 API точно говорится что при выходе из цепочки поставившей ловушку система сама ловушку снимает. Но не снимая ловушки можно выхватить глюк.
K>У Рихтера по этому поводу в примере сделано так: ставит ловушку, зацикливает цепочку на выбор месседжей, при определенном месседже цикл завершается и ловушка снимается.
K>kanych
Так и сделали. Вместо ::SetwindowsHookEx() вызывается ::CreateThread(), а ::SetwindowsHookEx() вызывается от-туда.
Соответственно, вместо ::UnHookWindowsHookEx() имеем ::PostThreadMessage() + ::WaitForSingleObject().