Блокировка WM_QUIT - PullRequest
       5

Блокировка WM_QUIT

1 голос
/ 27 февраля 2010

Быстрый вопрос.

У меня есть приложение, которое использует собственную DLL через PInvoke, эта DLL может вызывать PostQuitMessage ().

Как мне этого избежать? (так как мое приложение не должно закрываться)

Я пробовал AddMessageFilter, но он не вызывает WM_QUIT.

Ответы [ 2 ]

3 голосов
/ 27 февраля 2010

Да, IMessageFilter не может работать. WM_QUIT заставляет функцию GetMessage () возвращать FALSE. Он никогда не доходит до вызова фильтра сообщений, цикл сообщений немедленно завершается. Переопределение WndProc () или отмена OnFormClosing () также не будет работать. Единственный обходной путь, о котором я могу подумать, - это Detours для отключения PostQuitMessage () Это требует некоторых навыков C / C ++.

0 голосов
/ 28 февраля 2010

PostQuitMessage () не будет иметь эффекта, если вы вызываете из потока, которому не принадлежат окна.

...