Share via


Funzione ShellProc

Descrizione

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
);

Parametri

nCode [in]

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.

wParam [in]

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.

lParam [in]

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.

Restituisce

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.

Commenti

Installare questa procedura hook specificando il tipo di hook WH_SHELL e un puntatore alla routine hook in una chiamata alla funzione SetWindowsHookEx .

Vedi anche

CallNextHookEx

SendMessage

Setwindowshookex

WM_APPCOMMAND

WM_COMMAND

Hook