changeWindowMessageFilter 函数 (winuser.h)
[不建议使用 ChangeWindowMessageFilter 函数,因为它具有进程范围的作用域。 请根据需要使用 ChangeWindowMessageFilterEx 函数来控制对特定窗口的访问。 将来版本的 Windows 可能不支持 ChangeWindowMessageFilter。]
在用户界面特权隔离 (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 或以下的进程更改筛选器。 如果这些进程调用此函数,它将失败。
有关完整性级别的详细信息,请参阅 了解和在受保护模式下工作 Internet Explorer。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |