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 .