12 #error TnbCePowerWatcher.h is only supported on Windows CE platforms.
88 m_inner.pListener = NULL;
112 m_inner.pListener = P;
122 return m_handle != NULL;
131 bool Start(DWORD flag = POWER_NOTIFY_ALL)
135 if ( m_msgQueue.
Start(3,
true, _T(
"PowerWatch")) )
137 m_handle = ::RequestPowerNotifications(m_msgQueue, flag);
139 if ( m_handle != NULL )
143 DWORD r = ::GetLastError();
155 if ( m_handle != NULL )
157 ::StopPowerNotifications(m_handle);
165 struct TMyPowerBroadcast
172 POWER_BROADCAST_POWER_INFO powerInfo;
188 if ( pListener != NULL )
190 switch ( data.Message )
192 case PBT_POWERINFOCHANGE:
193 ASSERT( data.Length ==
sizeof(POWER_BROADCAST_POWER_INFO) );
194 pListener->OnPowerInfoChange(data.powerInfo);
196 case PBT_POWERSTATUSCHANGE:
197 pListener->OnPowerStatusChange();
200 pListener->OnPowerResumeEvent();
203 pListener->OnPowerTransitionEvent(data.Flags, data.state);
void SetListener(IListener *P)
[設定] リスナー設定.
bool Start(size_t maxMessagesCount=0, bool isRead=true, LPCTSTR lpszThreadName=NULL)
[設定] 監視開始.
bool Stop(void)
[設定] 監視停止.
void SetListener(IListener *P)
[設定] リスナー設定.
bool Start(DWORD flag=POWER_NOTIFY_ALL)
[設定] 監視開始.
bool IsStarted(void) const
[確認] 監視確認.
HANDLE GetSafeHandle(void) const
[取得] ハンドル取得.
void Stop(void)
[設定] 監視停止.
CPowerWatcher(void)
コンストラクタ
~CPowerWatcher(void)
デストラクタ
virtual void OnMsgQueueWatcherEvent(const TYP &data, size_t length, bool isAlert)=0
[通知] 受信通知.
電源監視のリスナーインターフェース (CE専用).
virtual void OnPowerInfoChange(const POWER_BROADCAST_POWER_INFO &info)
[通知] 電源状態変化通知.
virtual void OnPowerResumeEvent(void)
[通知] レジューム通知.
virtual void OnPowerTransitionEvent(DWORD flag, LPCTSTR lpszState)
[通知] 電源状態変化通知.
virtual ~IListener(void)
デストラクタ
virtual void OnPowerStatusChange(void)
[通知] DC/AC切り替え通知.