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

DeregisterShellHookWindow

Outros recursos

Referência

SetWindowsHookEx

ShellProc

Usando mensagens e filas de mensagens

WinEvents

WindowProc

Windows