WM_ENDSESSION 메시지

시스템에서 WM_QUERYENDSESSION 메시지의 결과를 처리한 후 WM_ENDSESSION 메시지가 애플리케이션으로 전송됩니다. WM_ENDSESSION 메시지는 세션이 종료되는지 여부를 애플리케이션에 알릴 수 있습니다.

창은 WindowProc 함수를 통해 이 메시지를 받습니다.

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

매개 변수

hwnd

창에 대한 핸들입니다.

uMsg

WM_ENDSESSION 식별자입니다.

wParam

세션이 종료되는 경우 이 매개 변수는 TRUE이고, 세션은 모든 애플리케이션이 이 메시지 처리에서 반환된 후 언제든지 종료할 수 있습니다. 그렇지 않으면 FALSE입니다.

lParam

이 매개 변수는 다음 값 중 하나 이상일 수 있습니다. 이 매개 변수가 0이면 시스템이 종료되거나 다시 시작됩니다(어떤 이벤트가 발생하는지 확인할 수 없음).

의미
ENDSESSION_CLOSEAPP
0x1
wParamTRUE이면 애플리케이션을 종료해야 합니다. 사용자에게 메시지를 표시하지 않고 모든 데이터를 자동으로 저장해야 합니다(자세한 내용은 설명 참조). 다시 시작 관리자는 애플리케이션이 교체해야 하는 파일을 사용하는 경우, 시스템을 서비스해야 하는 경우 또는 시스템 리소스가 소진된 경우 이 메시지를 보냅니다. RegisterApplicationRestart 함수를 사용하여 다시 시작에 등록한 경우 애플리케이션이 다시 시작됩니다. 자세한 내용은 애플리케이션에 대한 지침을 참조하세요.
wParamFALSE이면 애플리케이션이 종료되지 않아야 합니다.
ENDSESSION_CRITICAL
0x40000000
애플리케이션은 강제로 종료됩니다.
ENDSESSION_LOGOFF
0x80000000
사용자가 로그오프하고 있습니다. 자세한 내용은 로그오프를 참조하세요.

 

이 매개 변수는 비트 마스크입니다. 이 값을 테스트하려면 비트 단위 연산을 사용합니다. 는 같음을 테스트하지 않습니다.

반환 값

애플리케이션이 이 메시지를 처리하면 0을 반환해야 합니다.

설명

저장되지 않은 데이터가 있는 애플리케이션은 데이터를 임시 위치에 저장하고 다음에 애플리케이션이 시작될 때 복원할 수 있습니다. 애플리케이션은 데이터와 상태를 자주 저장하는 것이 좋습니다. 예를 들어 사용자가 시작한 저장 작업 간에 데이터를 자동으로 저장하여 종료 시 저장할 데이터의 양을 줄입니다.

세션이 종료되면 애플리케이션에서 DestroyWindow 또는 PostQuitMessage 함수를 호출할 필요가 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱 | UWP 앱]
헤더
WinUser.h(Windows.h 포함)

추가 정보

로그오프

종료

DestroyWindow

PostQuitMessage

SetProcessShutdownParameters

WM_QUERYENDSESSION