Hook

Un hook è un punto nel meccanismo di gestione dei messaggi di sistema in cui un'applicazione può installare una subroutine per monitorare il traffico dei messaggi nel sistema ed elaborare determinati tipi di messaggi prima di raggiungere la procedura della finestra di destinazione.

Contenuto della sezione

Nome Descrizione
Panoramica degli hook Viene illustrato come usare gli hook.
Uso degli hook Illustra come eseguire attività associate agli hook.
Riferimento hook Contiene il riferimento all'API.

Funzioni hook

Nome Descrizione
CallMsgFilter Passa il messaggio e il codice hook specificati alle procedure di hook associate alle procedure hook WH_SYSMSGFILTER e WH_MSGFILTER .
CallNextHookEx Passa le informazioni sull'hook alla procedura di hook successiva nella catena di hook corrente. Una routine hook può chiamare questa funzione prima o dopo l'elaborazione delle informazioni sugli hook.
CallWndProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione prima di chiamare la routine window per elaborare un messaggio inviato al thread.
CallWndRetProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione dopo la chiamata della funzione SendMessage . La procedura hook può esaminare il messaggio; non può modificarlo.
CBTProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione prima di attivare, creare, distruggere, ridurre al minimo, massimizzare, spostare o ridimensionare una finestra; prima di completare un comando di sistema; prima di rimuovere un evento del mouse o della tastiera dalla coda dei messaggi di sistema; prima di impostare lo stato attivo della tastiera; o prima della sincronizzazione con la coda dei messaggi di sistema. Un'applicazione CBT (Computer-Based Training) usa questa procedura di hook per ricevere notifiche utili dal sistema.
DebugProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione prima di chiamare le procedure hook associate a qualsiasi tipo di hook. Il sistema passa informazioni sull'hook da chiamare alla routine hook DebugProc , che esamina le informazioni e determina se consentire la chiamata dell'hook.
ForegroundIdleProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che il thread in primo piano sta per diventare inattiva.
GetMsgProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che la funzione GetMessage o PeekMessage 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.
JournalPlaybackProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . In genere, un'applicazione usa questa funzione per riprodurre una serie di messaggi del mouse e della tastiera registrati in precedenza dalla procedura hook JournalRecordProc . Se viene installata una routine hook JournalPlaybackProc , l'input normale del mouse e della tastiera è disabilitato.
JournalRecordProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . La funzione registra i messaggi che il sistema rimuove dalla coda dei messaggi di sistema. Successivamente, un'applicazione può usare una routine hook JournalPlaybackProc per riprodurre i messaggi.
KeyboardProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che un'applicazione chiama la funzione GetMessage o PeekMessage ed è presente un messaggio di tastiera (WM_KEYUP o WM_KEYDOWN) da elaborare.
LowLevelKeyboardProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che un nuovo evento di input della tastiera sta per essere inserito in una coda di input del thread.
LowLevelMouseProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che un nuovo evento di input del mouse sta per essere inserito in una coda di input del thread.
MessageProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione dopo che si verifica un evento di input in una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento, ma prima dell'elaborazione del messaggio generato dall'evento di input. La procedura hook consente di monitorare i messaggi per una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento creata da una determinata applicazione o da tutte le applicazioni.
MouseProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione ogni volta che un'applicazione chiama la funzione GetMessage o PeekMessage ed è presente un messaggio del mouse da elaborare.
Setwindowshookex Installa una routine hook definita dall'applicazione in una catena di hook. Si installerebbe una procedura hook per monitorare il sistema per determinati tipi di eventi. Questi eventi sono associati a un thread specifico o a tutti i thread nello stesso desktop del thread chiamante.
ShellProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . La funzione riceve le notifiche degli eventi shell dal sistema.
SysMsgProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookEx . Il sistema chiama questa funzione dopo che si verifica un evento di input in una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento, ma prima dell'elaborazione del messaggio generato dall'evento di input. La funzione può monitorare i messaggi per qualsiasi finestra di dialogo, finestra di messaggio, menu o barra di scorrimento nel sistema.
UnhookWindowsHookEx Rimuove una routine hook installata in una catena di hook dalla funzione SetWindowsHookEx .

Notifiche hook

Nome Descrizione
WM_CANCELJOURNAL Inviato a un'applicazione quando un utente annulla le attività di inserimento nel journal dell'applicazione. Il messaggio viene inviato con un handle di finestra NULL .
WM_QUEUESYNC Inviato da un'applicazione CBT per separare i messaggi di input dell'utente da altri messaggi inviati tramite la procedura di WH_JOURNALPLAYBACK .

Strutture hook

Nome Descrizione
CBT_CREATEWND Contiene informazioni passate a una procedura hook WH_CBT, CBTProc, prima della creazione di una finestra.
CBTACTIVATESTRUCT Contiene informazioni passate a una procedura hook WH_CBT, CBTProc, prima dell'attivazione di una finestra.
CWPRETSTRUCT Definisce i parametri del messaggio passati a una routine hook WH_CALLWNDPROCRET, CallWndRetProc.
CWPSTRUCT Definisce i parametri del messaggio passati a una WH_CALLWNDPROC routine hook , CallWndProc.
DEBUGHOOKINFO Contiene informazioni di debug passate a una routine di hook WH_DEBUGDebugProc.
EVENTMSG Contiene informazioni su un messaggio hardware inviato alla coda dei messaggi di sistema. Questa struttura viene usata per archiviare le informazioni sui messaggi per la funzione di callback JournalPlaybackProc .
KBDLLHOOKSTRUCT Contiene informazioni su un evento di input della tastiera di basso livello.
MOUSEHOOKSTRUCT Contiene informazioni su un evento del mouse passato a una routine WH_MOUSE hook, MouseProc.
MOUSEHOOKSTRUCTEX Contiene informazioni su un evento del mouse passato a una routine WH_MOUSE hook, MouseProc.
MSLLHOOKSTRUCT Contiene informazioni su un evento di input del mouse di basso livello.

SetWinEventHook