MessageProc 函式
Description
應用程式定義或程式庫定義的回呼函式,用於SetWindowsHookExA/SetWindowsHookExW函式。 系統會在輸入事件發生于對話方塊、訊息方塊、功能表或捲軸之後呼叫此函式,但在處理輸入事件所產生的訊息之前。 攔截程式可以監視特定應用程式或所有應用程式所建立之對話方塊、訊息方塊、功能表或捲軸的訊息。
HOOKPROC類型會定義這個回呼函式的指標。 MessageProc 是應用程式定義或程式庫定義函數名稱的預留位置。
LRESULT CALLBACK MessageProc(
_In_ int code,
WPARAM wParam,
_In_ LPARAM lParam
);
參數
程式碼 [in]
類型: int
產生訊息的輸入事件種類。
如果 程式碼 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,並傳回 CallNextHookEx傳回的值。
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
MSGF_DDEMGR 0x8001 | 當動態資料交換管理程式庫 (DDEML) 等候同步交易完成時,就會發生輸入事件。 如需 DDEML 的詳細資訊,請參閱 動態資料交換管理程式庫。 |
MSGF_DIALOGBOX 0 | 輸入事件發生在訊息方塊或對話方塊中。 |
MSGF_MENU 2 | 輸入事件發生在功能表中。 |
MSGF_SCROLLBAR 5 | 輸入事件發生在捲軸中。 |
wParam
類型: WPARAM
不使用這個參數。
lParam [in]
類型: LPARAM
MSG結構的指標。
傳回
類型: LRESULT
如果 程式碼 小於零,攔截程式必須傳回 CallNextHookEx所傳回的值。
如果 程式碼 大於或等於零,且攔截程式未處理訊息,強烈建議您呼叫 CallNextHookEx 並傳回其傳回的值;否則,已安裝WH_MSGFILTER勾點 的其他 應用程式將不會收到攔截通知,因此可能會不正確運作。 如果攔截程式處理訊息,它可能會傳回非零值,以防止系統將訊息傳遞至攔截鏈結的其餘部分或目標視窗程式。
備註
應用程式會藉由在呼叫SetWindowsHookExA/SetWindowsHookExW函式中指定WH_MSGFILTER勾點類型和攔截程式的指標,來安裝攔截程式。
如果使用 DDEML 並執行同步交易的應用程式必須在分派訊息之前處理訊息,則必須使用 WH_MSGFILTER 勾點。