Функция ChangeWindowMessageFilter (winuser.h)
[Использовать функцию ChangeWindowMessageFilter не рекомендуется, так как она имеет область для всего процесса. Вместо этого используйте функцию ChangeWindowMessageFilterEx для управления доступом к определенным окнам при необходимости. ChangeWindowMessageFilter может не поддерживаться в будущих версиях Windows.]
Добавляет или удаляет сообщение из фильтра изоляции привилегий пользовательского интерфейса (UIPI).
Синтаксис
BOOL ChangeWindowMessageFilter(
[in] UINT message,
[in] DWORD dwFlag
);
Параметры
[in] message
Тип: UINT
Сообщение, которое нужно добавить в фильтр или удалить из него.
[in] dwFlag
Тип: DWORD
Выполняемое действие. Одно из следующих значений.
Значение | Значение |
---|---|
|
Добавляет сообщение в фильтр. Это позволяет получить сообщение. |
|
Удаляет сообщение из фильтра. Это действие блокирует сообщение. |
Возвращаемое значение
Тип: BOOL
Значение TRUE в случае успешного выполнения; в противном случае — FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
UIPI — это функция безопасности, которая предотвращает получение сообщений от отправителя более низкого уровня целостности. Все такие сообщения со значением выше WM_USER блокируются по умолчанию. Фильтр, несколько вопреки интуиции, представляет собой список сообщений, которые разрешены. Таким образом, добавление сообщения в фильтр позволяет получать это сообщение от отправителя с более низкой целостностью, а удаление сообщения блокирует его получение.
Некоторые сообщения со значением меньше WM_USER должны проходить через фильтр независимо от параметра фильтра. Эту функцию можно вызвать, чтобы удалить одно из этих сообщений из фильтра, и она вернет значение TRUE. Тем не менее, сообщение по-прежнему будет получено вызывающим процессом.
Процессы на SECURITY_MANDATORY_LOW_RID или ниже не могут изменять фильтр. Если эти процессы вызывают эту функцию, она завершится ошибкой.
Дополнительные сведения об уровнях целостности см. в статье Общие сведения и работа в защищенном режиме интернет-Обозреватель.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |