Funzione ShellProc
Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione SetWindowsHookExA/SetWindowsHookExW . La funzione riceve le notifiche degli eventi shell dal sistema.
Il tipo HOOKPROC definisce un puntatore a questa funzione di callback. ShellProc è un segnaposto per il nome di funzione definito dall'applicazione o definito dalla libreria.
LRESULT CALLBACK ShellProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Tipo: int
Codice hook.
Se nCode è minore di zero, la routine hook deve passare il messaggio alla funzione CallNextHookEx senza ulteriori elaborazioni e deve restituire il valore restituito da CallNextHookEx.
Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
HSHELL_ACCESSIBILITYSTATE 11 | Lo stato di accessibilità è cambiato. |
HSHELL_ACTIVATESHELLWINDOW 3 | La shell deve attivare la finestra principale. |
HSHELL_APPCOMMAND 12 | L'utente ha completato un evento di input (ad esempio, ha premuto un pulsante di comando dell'applicazione sul mouse o un tasto di comando dell'applicazione sulla tastiera) e l'applicazione non ha gestito il messaggio WM_APPCOMMAND generato da tale input. Se la routine Shell gestisce il messaggio WM_COMMAND , non deve chiamare CallNextHookEx. Per altre informazioni, vedere la sezione Valore restituito. |
HSHELL_GETMINRECT 5 | Una finestra viene ridotta a icona o ingrandita. Il sistema necessita delle coordinate del rettangolo ridotto a icona per la finestra. |
HSHELL_LANGUAGE 8 | La lingua della tastiera è stata modificata o è stato caricato un nuovo layout della tastiera. |
HSHELL_REDRAW 6 | Il titolo di una finestra nella barra delle applicazioni è stato ridisegnato. |
HSHELL_TASKMAN 7 | L'utente ha selezionato l'elenco attività. Un'applicazione shell che fornisce un elenco di attività deve restituire TRUE per impedire a Windows di avviare l'elenco di attività. |
HSHELL_WINDOWACTIVATED 4 | L'attivazione è stata modificata in un'altra finestra di primo livello non creata. |
HSHELL_WINDOWCREATED 1 | È stata creata una finestra di primo livello non creata. La finestra esiste quando il sistema chiama questo hook. |
HSHELL_WINDOWDESTROYED 2 | Una finestra di primo livello, non vista, sta per essere distrutta. La finestra esiste ancora quando il sistema chiama questo hook. |
HSHELL_WINDOWREPLACED 13 | Viene sostituita una finestra di primo livello. La finestra esiste quando il sistema chiama questo hook. |
Tipo: WPARAM
Questo parametro dipende dal valore del parametro nCode , come illustrato nella tabella seguente.
Ncode | wParam |
---|---|
HSHELL_ACCESSIBILITYSTATE | Indica quale funzionalità di accessibilità è stata modificata. Questo valore è uno dei seguenti: ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS o ACCESS_STICKYKEYS. |
HSHELL_APPCOMMAND | Indica dove il messaggio WM_APPCOMMAND è stato originariamente inviato; ad esempio l'handle di una finestra. Per altre informazioni, vedere parametro cmd in WM_APPCOMMAND. |
HSHELL_GETMINRECT | Handle per la finestra ridotta a icona o ingrandita. |
HSHELL_LANGUAGE | Handle per la finestra. |
HSHELL_REDRAW | Handle per la finestra ridisegnata. |
HSHELL_WINDOWACTIVATED | Handle per la finestra attivata. |
HSHELL_WINDOWCREATED | Handle per la finestra creata. |
HSHELL_WINDOWDESTROYED | Handle per la finestra distrutta. |
HSHELL_WINDOWREPLACED | Handle per la finestra da sostituire. Windows 2000: non supportato. |
Tipo: LPARAM
Questo parametro dipende dal valore del parametro nCode , come illustrato nella tabella seguente.
Ncode | lParam |
---|---|
HSHELL_APPCOMMAND |
GET_APPCOMMAND_LPARAM(lParam) è il comando dell'applicazione corrispondente all'evento di input.
GET_DEVICE_LPARAM(lParam) indica l'evento di input generato; ad esempio il mouse o la tastiera. Per altre informazioni, vedere la descrizione del parametro uDevice in WM_APPCOMMAND.
GET_FLAGS_LPARAM(lParam) dipende dal valore di cmd in WM_APPCOMMAND. Ad esempio, potrebbe indicare quali chiavi virtuali sono state mantenute quando il messaggio WM_APPCOMMAND è stato inviato originariamente. Per altre informazioni, vedere il parametro di descrizione dwCmdFlags in WM_APPCOMMAND. |
HSHELL_GETMINRECT | Puntatore a una struttura RECT . |
HSHELL_LANGUAGE | Handle per un layout della tastiera. |
HSHELL_MONITORCHANGED | Handle per la finestra spostata in un monitor diverso. |
HSHELL_REDRAW | Il valore è TRUE se la finestra lampeggia o FALSE in caso contrario. |
HSHELL_WINDOWACTIVATED | Il valore è TRUE se la finestra è in modalità schermo intero o FALSE in caso contrario. |
HSHELL_WINDOWREPLACED | Handle per la nuova finestra. Windows 2000: non supportato. |
Tipo: LRESULT
Il valore restituito deve essere zero a meno che il valore di nCode non sia HSHELL_APPCOMMAND e la routine della shell gestisce il messaggio WM_COMMAND . In questo caso, il valore restituito deve essere diverso da zero.
Installare questa procedura hook specificando il tipo di hook WH_SHELL e un puntatore alla routine hook in una chiamata alla funzione SetWindowsHookEx .