SysMsgProc 函式
與SetWindowsHookExA/SetWindowsHookExW函式搭配使用的應用程式定義或程式庫定義回呼函式。 系統會在輸入事件發生在對話方塊、訊息方塊、功能表或捲軸之後呼叫此函式,但在處理輸入事件所產生的訊息之前。 函式可以監視系統中任何對話方塊、訊息方塊、功能表或捲軸的訊息。
HOOKPROC類型會定義這個回呼函式的指標。 SysMsgProc 是應用程式定義或程式庫定義函數名稱的預留位置。
LRESULT CALLBACK SysMsgProc(
_In_ int nCode,
WPARAM wParam,
_In_ LPARAM lParam
);
類型: int
產生訊息的輸入事件種類。
如果 nCode 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx傳回的值。
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
MSGF_DIALOGBOX 0 | 輸入事件發生在訊息方塊或對話方塊中。 |
MSGF_MENU 2 | 輸入事件發生在功能表中。 |
MSGF_SCROLLBAR 5 | 輸入事件發生在捲軸中。 |
類型: WPARAM
不使用這個參數。
類型: LPARAM
MSG訊息結構的指標。
類型: LRESULT
如果 nCode 小於零,攔截程式必須傳回 CallNextHookEx傳回的值。
如果 nCode 大於或等於零,且攔截程式未處理訊息,強烈建議您呼叫 CallNextHookEx 並傳回傳回的值;否則,已安裝 WH_SYSMSGFILTER 勾點的其他應用程式將不會收到勾點通知,因此行為不正確。
如果攔截程式處理訊息,它可能會傳回非零值,以防止系統將訊息傳遞至目標視窗程式。
應用程式會藉由在呼叫SetWindowsHookExA/SetWindowsHookExW函式中指定WH_SYSMSGFILTER勾點類型和攔截程式的指標,來安裝攔截程式。