Стоит задача выравнивания всех окон по направляющим, эдакие "прилипающие" окна.
Со своими окнами проблем нет: перезаписываю позицию в событии WM_WINDOWPOSCHANGING.
Проблемы возникают с окнами других процессов. Пытался использовать хуки. По описанию должен подходить хук WH_GETMESSAGE, но события, связанные с перемещением окна или изменением его размеров, в нем не отлавливаются, т.е. их нет вообще. Хук WH_CBT не совсем подходит, там события приходят после совершения всех действий.
Собственно, не понятно, почему не приходят сообщения WM_WINDOWPOSCHANGING и т.п. в хуке WH_GETMESSAGE.
И, в правильном ли направлении я иду? Может такие задачи решаются подменой оконных функций или чем-то другим, а я тут с обычными хуками копаюсь. Хотя подмена, на мой взгляд, это как-то уж чересчур, попахивает хакерством и черной магией.
Сам проект на .NET, dll-ки на C++.
UPD. Наверняка, подобные темы уже обсуждались, буду рад ссылкам на похожие темы.