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 勾點。

另請參閱

CallNextHookEx

SetWindowsHookEx

味精

勾點