Função RegisterShellHookWindow (winuser.h)
[Essa função não se destina ao uso geral. Ele pode estar alterado ou indisponível em versões subsequentes do Windows.]
Registra uma janela do Shell especificada para receber determinadas mensagens para eventos ou notificações que são úteis para aplicativos Shell.
As mensagens de evento recebidas são apenas aquelas enviadas para a janela shell associada à área de trabalho da janela especificada. Muitas das mensagens são as mesmas que podem ser recebidas depois de chamar a função SetWindowsHookEx e especificar WH_SHELL para o tipo de gancho. A diferença com RegisterShellHookWindow é que as mensagens são recebidas por meio do WindowProc da janela especificada e não por meio de um procedimento de chamada de volta.
Sintaxe
BOOL RegisterShellHookWindow(
[in] HWND hwnd
);
Parâmetros
[in] hwnd
Digite: HWND
Um identificador para a janela a ser registrada para mensagens de gancho do Shell.
Retornar valor
Tipo: BOOL
TRUE se a função for bem-sucedida; caso contrário, FALSE.
Comentários
Assim como acontece com as mensagens de janela normais, o segundo parâmetro do procedimento de janela identifica a mensagem como um WM_SHELLHOOKMESSAGE. No entanto, para essas mensagens de gancho do Shell, o valor da mensagem não é uma constante predefinida, como outras IDs de mensagem, como WM_COMMAND. O valor deve ser obtido dinamicamente usando uma chamada para RegisterWindowMessage , conforme mostrado aqui:
RegisterWindowMessage(TEXT("SHELLHOOK"));
Isso impede o tratamento dessas mensagens usando uma instrução switch tradicional que exige valores de ID conhecidos no tempo de compilação. Para lidar com mensagens de gancho do Shell, a prática normal é codificar uma instrução If na seção padrão da instrução switch e manipular a mensagem se o valor da ID da mensagem for o mesmo que o valor obtido da chamada RegisterWindowMessage .
A tabela a seguir descreve os valores dos parâmetros wParam e lParam passados para o procedimento de janela para as mensagens de gancho do Shell.
wParam | lParam |
---|---|
HSHELL_GETMINRECT | Um ponteiro para uma estrutura SHELLHOOKINFO . |
HSHELL_WINDOWACTIVATED | Um identificador para a janela ativada. |
HSHELL_RUDEAPPACTIVATED | Um identificador para a janela ativada. |
HSHELL_WINDOWREPLACING | Um identificador para a janela substituindo a janela de nível superior. |
HSHELL_WINDOWREPLACED | Um identificador para a janela que está sendo substituída. |
HSHELL_WINDOWCREATED | Um identificador para a janela que está sendo criada. |
HSHELL_WINDOWDESTROYED | Um identificador para a janela de nível superior que está sendo destruída. |
HSHELL_ACTIVATESHELLWINDOW | Não usado. |
HSHELL_TASKMAN | Pode ser ignorado. |
HSHELL_REDRAW | Um identificador para a janela que precisa ser redesenhada. |
HSHELL_FLASH | Um identificador para a janela que precisa ser piscada. |
HSHELL_ENDTASK | Um identificador para a janela que deve ser forçado a sair. |
HSHELL_APPCOMMAND | O APPCOMMAND que foi sem tratamento pelo aplicativo ou outros ganchos. Consulte WM_APPCOMMAND e use a macro GET_APPCOMMAND_LPARAM para recuperar esse parâmetro. |
HSHELL_MONITORCHANGED | Um identificador para a janela que foi movida para um monitor diferente. |
Essa função não foi incluída nos cabeçalhos e bibliotecas do SDK até o Windows XP com Service Pack 1 (SP1) e o Windows Server 2003. Se você não tiver um arquivo de cabeçalho e uma biblioteca de importação para essa função, poderá chamar a função usando LoadLibrary e GetProcAddress.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Confira também
Conceitual
Outros recursos
Referência
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de