Funzione GetMsgProc
-Descrizione
Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookExA/SetWindowsHookExW. Il sistema chiama questa funzione ogni volta che la funzione GetMessage o PeekMessageA/PeekMessageW ha recuperato un messaggio da una coda di messaggi dell'applicazione. Prima di restituire il messaggio recuperato al chiamante, il sistema passa il messaggio alla routine hook.
Il tipo HOOKPROC definisce un puntatore a questa funzione di callback. GetMsgProc è un segnaposto per il nome di funzione definito dall'applicazione o definito dalla libreria.
LRESULT CALLBACK GetMsgProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
-Parametri
codice [in]
Tipo: int
Specifica se la routine hook deve elaborare il messaggio. Se il codice è HC_ACTION, la routine hook deve elaborare il messaggio. Se il codice è minore di zero, la routine hook deve passare il messaggio alla funzione CallNextHookEx senza ulteriore elaborazione e deve restituire il valore restituito da CallNextHookEx.
wParam [in]
Tipo: WPARAM
Specifica se il messaggio è stato rimosso dalla coda. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
PM_NOREMOVE 0x0000 | Il messaggio non è stato rimosso dalla coda. (Un'applicazione denominata Funzione PeekMessage , specificando il flag PM_NOREMOVE . |
PM_REMOVE 0x0001 | Il messaggio è stato rimosso dalla coda. (Un'applicazione denominata GetMessage, o ha chiamato la funzione PeekMessage, specificando il flag PM_REMOVE. |
lParam [in]
Tipo: LPARAM
Puntatore a una struttura MSG che contiene dettagli sul messaggio.
-Restituisce
Se il codice è minore di zero, la routine hook deve restituire il valore restituito da CallNextHookEx.
Se il codice è maggiore o uguale a zero, è consigliabile chiamare CallNextHookEx e restituire il valore restituito. In caso contrario, altre applicazioni che hanno installato WH_GETMESSAGE hook non riceveranno notifiche di hook e potrebbero comportarsi in modo non corretto come risultato. Se la routine hook non chiama CallNextHookEx, il valore restituito deve essere zero.
-Osservazioni
La procedura hook GetMsgProc può esaminare o modificare il messaggio.
Dopo che la routine hook restituisce il controllo al sistema, la funzione GetMessage o PeekMessageA/PeekMessageW restituisce il messaggio, insieme alle eventuali modifiche, all'applicazione che lo ha originariamente chiamato.
Un'applicazione installa questa procedura hook specificando il tipo di hook WH_GETMESSAGE e un puntatore alla routine hook in una chiamata alla funzione SetWindowsHookExA/SetWindowsHookExW.