winuser.h (CHANGEFILTERSTRUCT 結構)

包含呼叫 ChangeWindowMessageFilterEx 函式所取得的擴充結果資訊。

語法

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

成員

cbSize

類型: DWORD

結構的大小,以位元組為單位。 必須設定為 sizeof(CHANGEFILTERSTRUCT) ,否則函式會因為 ERROR_INVALID_PARAMETER而失敗。

ExtStatus

類型: DWORD

如果函式成功,此欄位會包含下列其中一個值。

意義
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