TNB Library
TnbMfcPowerListener.h
[詳解]
1#pragma once
11#include "TnbMfcCommon.h"
12
13
14
15#ifndef __AFX_H__
16 #error
17#endif
18
19
20
21//TNB Library
22namespace TNB {
23namespace MFC {
24
25
39template<typename TYP = CDialog>
40class CPowerListenerAddinT : public TYP
41{
42 DEFSUPER(TYP);
43protected:
44
54 virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
55 {
56 if ( message == WM_QUERYENDSESSION )
57 {
58 return CanLogoff();
59 }
60 else if ( message == WM_ENDSESSION )
61 {
62 if ( wParam != 0 )
63 {
64 OnLogoff();
65 }
66 else
67 {
69 }
70 return 0;
71 }
72 else if ( message == WM_POWERBROADCAST )
73 {
74 switch ( wParam )
75 {
76 case PBT_APMQUERYSUSPEND: // サスペンド問い合わせ
77 return CanSuspend() ? TRUE : BROADCAST_QUERY_DENY;
78 case PBT_APMQUERYSUSPENDFAILED: //サスペンドキャンセル
80 break;
81 case PBT_APMSUSPEND: //サスペンド開始。拒否できません。
82 OnSuspend();
83 break;
84 case PBT_APMRESUMESUSPEND: //レジューム。
86 break;
87 }
88 return 0;
89 }
90 return _super::WindowProc(message, wParam, lParam);
91 }
92public:
93
95 CPowerListenerAddinT(void) : _super()
96 {
97 }
98
106 CPowerListenerAddinT(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL)
107 : _super(lpszTemplateName, pParentWnd)
108 {
109 }
110
118 CPowerListenerAddinT(UINT nIDTemplate, CWnd* pParentWnd = NULL)
119 : _super(nIDTemplate, pParentWnd)
120 {
121 }
122
125 {
126 ::SetThreadExecutionState(ES_CONTINUOUS);
127 }
128
134 {
135 ::SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED | ES_CONTINUOUS);
136 }
137
142 {
143 ::SetThreadExecutionState(ES_CONTINUOUS);
144 }
145
152 virtual bool CanLogoff(void) = 0;
153
158 virtual void OnCancelLogoff(void) = 0;
159
164 virtual void OnLogoff(void) = 0;
165
172 virtual bool CanSuspend(void) = 0;
173
178 virtual void OnCancelSuspend(void) = 0;
179
184 virtual void OnSuspend(void) = 0;
185
190 virtual void OnResumeSuspend(void) = 0;
191};
192
193
194
195}; //MFC
196}; //TNB
197
198
MFCコントロール共通のヘッダ
ウィンドウ管理.
電源管理アドインクラス
virtual void OnCancelSuspend(void)=0
[通知] サスペンドキャンセル.
virtual bool CanLogoff(void)=0
[通知] ログOFF可能か?.
CPowerListenerAddinT(LPCTSTR lpszTemplateName, CWnd *pParentWnd=NULL)
コンストラクタ
void NormalSuspendMode(void)
[設定] サスペンドモード保護解除
CPowerListenerAddinT(void)
コンストラクタ
virtual void OnCancelLogoff(void)=0
[通知] ログOFFキャンセル.
CPowerListenerAddinT(UINT nIDTemplate, CWnd *pParentWnd=NULL)
コンストラクタ
virtual ~CPowerListenerAddinT(void)
デストラクタ
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
[通知] for processing Windows messages.
virtual bool CanSuspend(void)=0
[通知] サスペンド可能か?.
void SaveSuspendMode(void)
[設定] サスペンドモード保護
virtual void OnLogoff(void)=0
[通知] ログOFF開始.
virtual void OnResumeSuspend(void)=0
[通知] レジューム.
virtual void OnSuspend(void)=0
[通知] サスペンド開始.
TNB Library
Definition: TnbDoxyTitle.txt:2