Condividi tramite


Funzione RegisterShellHookWindow (winuser.h)

[Questa funzione non è destinata all'uso generale. Potrebbe essere modificato o non disponibile nelle versioni successive di Windows.]

Registra una finestra shell specificata per ricevere determinati messaggi per eventi o notifiche utili per le applicazioni shell.

I messaggi di evento ricevuti sono solo quelli inviati alla finestra shell associata al desktop della finestra specificata. Molti dei messaggi sono uguali a quelli che possono essere ricevuti dopo aver chiamato la funzione SetWindowsHookEx e specificando WH_SHELL per il tipo di hook. La differenza con RegisterShellHookWindow è che i messaggi vengono ricevuti tramite WindowProc della finestra specificata e non tramite una routine di chiamata.

Sintassi

BOOL RegisterShellHookWindow(
  [in] HWND hwnd
);

Parametri

[in] hwnd

Tipo: HWND

Handle della finestra da registrare per i messaggi di hook shell.

Valore restituito

Tipo: BOOL

TRUE se la funzione ha esito positivo; in caso contrario, FALSE.

Commenti

Come per i messaggi di finestra normali, il secondo parametro della routine della finestra identifica il messaggio come WM_SHELLHOOKMESSAGE. Tuttavia, per questi messaggi di hook shell, il valore del messaggio non è una costante predefinita come altri ID messaggio, ad esempio WM_COMMAND. Il valore deve essere ottenuto in modo dinamico usando una chiamata a RegisterWindowMessage , come illustrato di seguito:

RegisterWindowMessage(TEXT("SHELLHOOK"));

Ciò impedisce la gestione di questi messaggi usando un'istruzione switch tradizionale che richiede valori ID noti in fase di compilazione. Per gestire i messaggi di hook di Shell, la procedura normale consiste nel codice di un'istruzione If nella sezione predefinita dell'istruzione switch e quindi gestire il messaggio se il valore dell'ID messaggio corrisponde al valore ottenuto dalla chiamata RegisterWindowMessage .

La tabella seguente descrive i valori dei parametri wParam e lParam passati alla routine della finestra per i messaggi di hook shell.

wParam lParam
HSHELL_GETMINRECT Puntatore a una struttura SHELLHOOKINFO .
HSHELL_WINDOWACTIVATED Handle alla finestra attivata.
HSHELL_RUDEAPPACTIVATED Handle alla finestra attivata.
HSHELL_WINDOWREPLACING Handle della finestra che sostituisce la finestra di primo livello.
HSHELL_WINDOWREPLACED Handle alla finestra da sostituire.
HSHELL_WINDOWCREATED Handle della finestra da creare.
HSHELL_WINDOWDESTROYED Handle alla finestra di primo livello distrutta.
HSHELL_ACTIVATESHELLWINDOW Non usato.
HSHELL_TASKMAN Può essere ignorato.
HSHELL_REDRAW Handle alla finestra che deve essere ridisegnata.
HSHELL_FLASH Handle per la finestra che deve essere flashata.
HSHELL_ENDTASK Handle alla finestra che deve essere costretta a uscire.
HSHELL_APPCOMMAND APPCOMMAND che non è stata gestita dall'applicazione o da altri hook. Per recuperare questo parametro, vedere WM_APPCOMMAND e usare la macro GET_APPCOMMAND_LPARAM .
HSHELL_MONITORCHANGED Handle alla finestra spostata in un monitor diverso.
 

Questa funzione non è stata inclusa nelle intestazioni e nelle librerie SDK fino a Quando Windows XP con Service Pack 1 (SP1) e Windows Server 2003. Se non si dispone di un file di intestazione e di una libreria di importazione per questa funzione, è possibile chiamare la funzione usando LoadLibrary e GetProcAddress.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche

Informazioni concettuali

DeregisterShellHookWindow

Altre risorse

Riferimento

Setwindowshookex

ShellProc

Uso di messaggi e code di messaggi

WinEvents

WindowProc

Windows