WM_ENDSESSION mensagem

A mensagem WM_ENDSESSION é enviada a um aplicativo depois que o sistema processa os resultados da mensagem WM_QUERYENDSESSION . A mensagem WM_ENDSESSION informa ao aplicativo se a sessão está terminando.

Uma janela recebe essa mensagem por meio da função WindowProc.

LRESULT CALLBACK WindowProc( 
  HWND hwnd,      // handle to window 
  UINT uMsg,      // message identifier 
  WPARAM wParam,  // end-session option 
  LPARAM lParam   // logoff option
);

Parâmetros

hwnd

Um identificador para a janela.

uMsg

O identificador WM_ENDSESSION .

wParam

Se a sessão estiver sendo encerrada, esse parâmetro será TRUE; a sessão pode terminar a qualquer momento depois que todos os aplicativos retornarem do processamento dessa mensagem. Caso contrário, será FALSE.

lParam

Esse parâmetro pode usar um dos valores a seguir. Se esse parâmetro for 0, o sistema será desligado ou reiniciado (não é possível determinar qual evento está ocorrendo).

Valor Significado
ENDSESSION_CLOSEAPP
0x1
Se wParam for TRUE, o aplicativo deverá ser desligado. Todos os dados devem ser salvos automaticamente sem avisar o usuário (para obter mais informações, consulte Comentários). O Gerenciador de Reinicialização envia essa mensagem quando o aplicativo está usando um arquivo que precisa ser substituído, quando deve atender ao sistema ou quando os recursos do sistema estão esgotados. O aplicativo será reiniciado se tiver se registrado para reiniciar usando a função RegisterApplicationRestart . Para obter mais informações, consulte Diretrizes para aplicativos.
Se wParam for FALSE, o aplicativo não deverá ser desligado.
ENDSESSION_CRITICAL
0x40000000
O aplicativo é forçado a desligar.
ENDSESSION_LOGOFF
0x80000000
O usuário está fazendo logoff. Para obter mais informações, consulte Log Off.

 

Observe que esse parâmetro é uma máscara de bits. Para testar esse valor, use uma operação bit a bit; não teste a igualdade.

Retornar valor

Se um aplicativo processar essa mensagem, ele deverá retornar zero.

Comentários

Aplicativos que têm dados não salvos podem salvar os dados em um local temporário e restaurá-los na próxima vez que o aplicativo for iniciado. É recomendável que os aplicativos salvem seus dados e estado com frequência; por exemplo, salve automaticamente os dados entre as operações de salvamento iniciadas pelo usuário para reduzir a quantidade de dados a serem salvos no desligamento.

O aplicativo não precisa chamar a função DestroyWindow ou PostQuitMessage quando a sessão está terminando.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte
Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho
WinUser.h (inclua Windows.h)

Confira também

Fazer logon

Desligar

DestroyWindow

Postquitmessage

SetProcessShutdownParameters

WM_QUERYENDSESSION