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) |
程式庫 | User32.lib |
Dll | User32.dll |