MouseProc 函式
與SetWindowsHookExA/SetWindowsHookExW函式搭配使用的應用程式定義或程式庫定義回呼函式。 每當應用程式呼叫GetMessage或PeekMessageA/PeekMessageW函式,而且有要處理的滑鼠訊息時,系統就會呼叫此函式。
HOOKPROC類型會定義這個回呼函式的指標。 MouseProc 是應用程式定義或程式庫定義函數名稱的預留位置。
LRESULT CALLBACK MouseProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
類型: int
攔截程式用來判斷如何處理訊息的程式碼。
如果 nCode 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx傳回的值。
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
HC_ACTION 0 | wParam和lParam參數包含滑鼠訊息的相關資訊。 |
HC_NOREMOVE 3 | wParam和lParam參數包含滑鼠訊息的相關資訊,而且尚未從訊息佇列中移除滑鼠訊息。 (名為 PeekMessage 函式的應用程式,指定 PM_NOREMOVE flag.) |
類型: WPARAM
滑鼠訊息的識別碼。
類型: LPARAM
MOUSEHOOKSTRUCT結構的指標。
類型: LRESULT
如果 nCode 小於零,攔截程式必須傳回 CallNextHookEx傳回的值。
如果 nCode 大於或等於零,且攔截程式未處理訊息,強烈建議您呼叫 CallNextHookEx 並傳回傳回的值;否則,已安裝 WH_MOUSE 勾點的其他應用程式將不會收到勾點通知,因此的行為可能會不正確。
如果攔截程式處理訊息,它可能會傳回非零值,以防止系統將訊息傳遞至目標視窗程式。
應用程式會藉由指定WH_MOUSE勾點類型和呼叫SetWindowsHookExA/SetWindowsHookExW函式中的攔截程式指標來安裝攔截程式。
攔截程式不得安裝 WH_JOURNALPLAYBACK 回呼函式。
這個勾點可以在安裝它的執行緒內容中呼叫。 呼叫是藉由將訊息傳送至已安裝攔截的執行緒來進行。 因此,安裝攔截的執行緒必須有訊息迴圈。