共用方式為


GetMsgProc 函式

-描述

與 SetWindowsHookExA/SetWindowsHookExW 函式搭配使用的應用程式定義或連結庫定義的回呼函式。 每當 GetMessage PeekMessageA/PeekMessageW 函式從應用程式訊息佇列擷取訊息時,系統就會呼叫此函式。 將擷取的訊息傳回給呼叫端之前,系統會將訊息傳遞至攔截程式。

HOOKPROC 類型會定義這個回呼函式的指標。 GetMsgProc 是應用程式定義或連結庫定義函式名稱的佔位元。

LRESULT CALLBACK GetMsgProc(
  _In_ int    code,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

-參數

程式代碼 [in]

類型: int

指定攔截程式是否必須處理訊息。 如果程式代碼HC_ACTION,攔截程式必須處理訊息。 如果程式代碼小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx回的值。

wParam [in]

類型: WPARAM

指定訊息是否已從佇列中移除。 此參數可以是下列其中一個值。

意義
PM_NOREMOVE 0x0000 訊息尚未從佇列中移除。 (稱為 的應用程式PeekMessage 函式,指定 PM_NOREMOVE 旗標。)
PM_REMOVE 0x0001 訊息已從佇列中移除。 (名為 的應用程式GetMessage,或稱為 PeekMessage 函式,並 指定PM_REMOVE 旗標。

lParam [in]

類型: LPARAM

MSG 結構的指標,其中包含訊息的詳細數據。

-返回

如果程式代碼小於零,攔截程式必須傳回 CallNextHookEx傳回的值。

如果 程式代碼 大於或等於零,強烈建議您呼叫 CallNextHookEx 並傳回它傳回的值;否則,安裝 WH_GETMESSAGE 攔截的其他應用程式將不會收到攔截通知,因此可能會不正確。 如果攔截程式未呼叫 CallNextHookEx,則傳回值應該是零。

-言論

GetMsgProc 攔截程式可以檢查或修改訊息。

攔截程式將控制權傳回系統之後,GetMessagePeekMessageA/PeekMessageW 函式會將訊息連同任何修改傳回至原本呼叫它的應用程式。

應用程式會在呼叫 SetWindowsHookExA/SetWindowsHookExW 函式時,指定WH_GETMESSAGE勾點類型和攔截程式的指標,以安裝此攔截程式。

另請參閱

CallNextHookEx

GetMessage

味精

PeekMessage

SetWindowsHookEx

勾點