Я уверен, что вы знаете, что WindowProc обрабатывает много трафика. Любой код вне цикла (сообщение) будет выполняться каждым сообщением, проходящим через насос.
Я только что создал небольшое диалоговое приложение MFC, в котором я переопределяю WindowProc и просто считаю, сколько раз он вызывается. Тест показал, что простое перемещение курсора мыши над диалогом генерирует более 1000 вызовов WindowProc в секунду.
Просто о чем подумать.
p.s. Я бы добавил это в качестве комментария, но мне пока не хватает оценки репутации.