The WM_ENDSESSION message is sent to an application after Windows processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the Windows session is ending.
WM_ENDSESSION fEndSession = (BOOL) wParam; // end-session flag fLogOff = lParam // logoff flag
If an application processes this message, it should return zero.
If the fEndSession parameter is TRUE, the Windows session can end any time after all applications have returned from processing this message. Therefore, an application should perform all tasks required for termination before returning from this message.
The application need not call the DestroyWindow or PostQuitMessage function when the session is ending.