|
終了がログオフなのか電源を切る/再起動なのかを判定する |
|
afx_msg LRESULT OnQueryEndSession(WPARAM, LPARAM lEndReason); |
|
BEGIN_MESSAGE_MAP(CFooWnd, CWnd) ON_MESSAGE(WM_QUERYENDSESSION, OnQueryEndSession) END_MESSAGE_MAP() |
|
private: // ログオフか? BOOL m_bEndLogOff; |
|
// --------------------------------------------------------------------- // Windows 終了の確認メッセージを受け取った // --------------------------------------------------------------------- LRESULT CFooWnd::OnQueryEndSession(WPARAM, LPARAM lEndReason) { m_bEndLogOff = BOOL(lEndReason & ENDSESSION_LOGOFF); return TRUE; } |
|
// --------------------------------------------------------------------- // Windows が終了するかの通知メッセージを受け取った // --------------------------------------------------------------------- void CBaseWnd::OnEndSession(BOOL bEnding) { CWnd::OnEndSession(bEnding); if (bEnding) { // Windows 終了が確定した if (m_bEndLogOff) { // ログオフ時の処理を記述する } else { // 電源を切る/再起動時の処理を記述する } } } |