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
Altre risorse
Riferimento