Função ShellProc

Descrição

Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookExA/SetWindowsHookExW . A função recebe notificações de eventos do Shell do sistema.

O tipo HOOKPROC define um ponteiro para essa função de retorno de chamada. ShellProc é um espaço reservado para o nome da função definida pelo aplicativo ou definida pela biblioteca.

LRESULT CALLBACK ShellProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

Parâmetros

nCode [in]

Tipo: int

O código do gancho.

Se nCode for menor que zero, o procedimento de gancho deverá passar a mensagem para a função CallNextHookEx sem processamento adicional e deverá retornar o valor retornado por CallNextHookEx.

Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
HSHELL_ACCESSIBILITYSTATE 11 O estado de acessibilidade foi alterado.
HSHELL_ACTIVATESHELLWINDOW 3 O shell deve ativar sua janela de main.
HSHELL_APPCOMMAND 12 O usuário concluiu um evento de entrada (por exemplo, pressionou um botão de comando do aplicativo no mouse ou em uma tecla de comando do aplicativo no teclado) e o aplicativo não lidou com a mensagem WM_APPCOMMAND gerada por essa entrada. Se o procedimento Shell manipular a mensagem WM_COMMAND , ele não deverá chamar CallNextHookEx. Consulte a seção Valor retornado para obter mais informações.
HSHELL_GETMINRECT 5 Uma janela está sendo minimizada ou maximizada. O sistema precisa das coordenadas do retângulo minimizado para a janela.
HSHELL_LANGUAGE 8 O idioma do teclado foi alterado ou um novo layout de teclado foi carregado.
HSHELL_REDRAW 6 O título de uma janela na barra de tarefas foi redesenhado.
HSHELL_TASKMAN 7 O usuário selecionou a lista de tarefas. Um aplicativo shell que fornece uma lista de tarefas deve retornar TRUE para impedir que o Windows inicie sua lista de tarefas.
HSHELL_WINDOWACTIVATED 4 A ativação foi alterada para uma janela diferente de nível superior sem proprietário.
HSHELL_WINDOWCREATED 1 Uma janela sem proprietário de nível superior foi criada. A janela existe quando o sistema chama esse gancho.
HSHELL_WINDOWDESTROYED 2 Uma janela sem proprietário de nível superior está prestes a ser destruída. A janela ainda existe quando o sistema chama esse gancho.
HSHELL_WINDOWREPLACED 13 Uma janela de nível superior está sendo substituída. A janela existe quando o sistema chama esse gancho.

wParam [in]

Tipo: WPARAM

Esse parâmetro depende do valor do parâmetro nCode , conforme mostrado na tabela a seguir.

nCode wParam
HSHELL_ACCESSIBILITYSTATE Indica qual recurso de acessibilidade alterou o estado. Esse valor é um dos seguintes: ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS ou ACCESS_STICKYKEYS.
HSHELL_APPCOMMAND Indica para onde a mensagem de WM_APPCOMMAND foi originalmente enviada; por exemplo, o identificador para uma janela. Para obter mais informações, consulte parâmetro cmd em WM_APPCOMMAND.
HSHELL_GETMINRECT Um identificador para a janela minimizada ou maximizada.
HSHELL_LANGUAGE Um identificador para a janela.
HSHELL_REDRAW Um identificador para a janela redesenhada.
HSHELL_WINDOWACTIVATED Um identificador para a janela ativada.
HSHELL_WINDOWCREATED Um identificador para a janela criada.
HSHELL_WINDOWDESTROYED Um identificador para a janela destruída.
HSHELL_WINDOWREPLACED Um identificador para a janela que está sendo substituída. Windows 2000: sem suporte.

lParam [in]

Tipo: LPARAM

Esse parâmetro depende do valor do parâmetro nCode , conforme mostrado na tabela a seguir.

nCode lParam
HSHELL_APPCOMMAND GET_APPCOMMAND_LPARAM(lParam) é o comando do aplicativo correspondente ao evento de entrada. GET_DEVICE_LPARAM(lParam) indica o que gerou o evento de entrada; por exemplo, o mouse ou teclado. Para obter mais informações, consulte a descrição do parâmetro uDevice em WM_APPCOMMAND. GET_FLAGS_LPARAM(lParam) depende do valor de cmd em WM_APPCOMMAND. Por exemplo, pode indicar quais chaves virtuais foram mantidas pressionadas quando a mensagem WM_APPCOMMAND foi originalmente enviada. Para obter mais informações, consulte o parâmetro de descrição dwCmdFlags em WM_APPCOMMAND.
HSHELL_GETMINRECT Um ponteiro para uma estrutura RECT .
HSHELL_LANGUAGE Um identificador para um layout de teclado.
HSHELL_MONITORCHANGED Um identificador para a janela que foi movida para um monitor diferente.
HSHELL_REDRAW O valor será TRUE se a janela estiver piscando ou FALSE caso contrário.
HSHELL_WINDOWACTIVATED O valor será TRUE se a janela estiver no modo de tela inteira ou FALSE caso contrário.
HSHELL_WINDOWREPLACED Um identificador para a nova janela. Windows 2000: sem suporte.

Retornos

Tipo: LRESULT

O valor retornado deve ser zero, a menos que o valor de nCode seja HSHELL_APPCOMMAND e o procedimento de shell manipule a mensagem WM_COMMAND . Nesse caso, o retorno deve ser diferente de zero.

Comentários

Instale esse procedimento de gancho especificando o tipo de gancho WH_SHELL e um ponteiro para o procedimento de gancho em uma chamada para a função SetWindowsHookEx .

Confira também

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

Ganchos