Есть ли способ запроса, если фильтр сообщений уже действует? - PullRequest
1 голос
/ 11 октября 2019

В связи с повышенными требованиями к безопасности, чтобы использовать сообщение WM_COPYDATA в современных версиях Windows, необходимо сначала вызвать функцию ChangeWindowMessageFilter () для MSGFLT_ADD, чтобы разрешить фильтрацию.

См. MSDNChangeWindowMessageFilter ()

Есть ли способ сделать запрос, если он уже разрешен (без использования SendMessage () или PostMessage (), чтобы подождать и посмотреть, проходит ли он)?

1 Ответ

3 голосов
/ 11 октября 2019

Ответ - да. Я исследовал его на MSDN.

Используйте ChangeWindowMessageFilterEx вместо ChangeWindowMessageFilter, который в любом случае должен быть устаревшим. Передайте в pChangeFilterStruct, чтобы содержать расширенный результат. См. https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-changefilterstruct

Проверьте, содержит ли ExtStatus значение MSGFLTINFO_ALREADYALLOWED_FORWND

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...