CHANGEFILTERSTRUCT 结构 (winuser.h)

包含通过调用 ChangeWindowMessageFilterEx 函数获取的扩展结果信息。

语法

typedef struct tagCHANGEFILTERSTRUCT {
  DWORD cbSize;
  DWORD ExtStatus;
} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT;

成员

cbSize

类型:DWORD

结构大小(以字节为单位)。 必须设置为 sizeof(CHANGEFILTERSTRUCT),否则函数将失败并 ERROR_INVALID_PARAMETER

ExtStatus

类型:DWORD

如果函数成功,则此字段包含以下值之一。

Value 含义
MSGFLTINFO_NONE
0
请参阅“备注”部分。 适用于 MSGFLT_ALLOWMSGFLT_DISALLOW
MSGFLTINFO_ALLOWED_HIGHER
3
允许在高于窗口的范围内显示该消息。 适用于 MSGFLT_DISALLOW
MSGFLTINFO_ALREADYALLOWED_FORWND
1
此窗口的消息筛选器已允许该消息,因此该函数成功,且未更改窗口的消息筛选器。 适用于 MSGFLT_ALLOW
MSGFLTINFO_ALREADYDISALLOWED_FORWND
2
该消息已被此窗口的消息筛选器阻止,因此函数成功,且未更改窗口的消息筛选器。 适用于 MSGFLT_DISALLOW

注解

无论筛选器设置如何,值小于 WM_USER 的某些消息都需要通过筛选器。 尝试使用此函数允许或阻止此类消息时,将不起作用。

应用程序可以使用 ChangeWindowMessageFilter 函数以进程范围的方式允许或阻止消息。 如果进程消息筛选器或窗口消息筛选器允许该消息,则会将其传递到窗口。

下表列出了 ExtStatus 中返回的可能值。

已在较高范围内允许的消息 窗口的消息筛选器已允许邮件 请求的操作 成功时在 ExtStatus 中返回的指示器
MSGFLT_ALLOW MSGFLTINFO_NONE
MSGFLT_DISALLOW MSGFLTINFO_ALREADYDISALLOWED_FORWND
MSGFLT_RESET MSGFLTINFO_NONE
MSGFLT_ALLOW MSGFLTINFO_ALREADYALLOWED_FORWND
MSGFLT_DISALLOW MSGFLTINFO_NONE
MSGFLT_RESET MSGFLTINFO_NONE
MSGFLT_ALLOW MSGFLTINFO_NONE
MSGFLT_DISALLOW MSGFLTINFO_ALLOWED_HIGHER
MSGFLT_RESET MSGFLTINFO_NONE
MSGFLT_ALLOW MSGFLTINFO_ALREADYALLOWED_FORWND
MSGFLT_DISALLOW MSGFLTINFO_ALLOWED_HIGHER
MSGFLT_RESET MSGFLTINFO_NONE

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

另请参阅

ChangeWindowMessageFilterEx