bool ServiceBase::OnCommand(DWORD dwControl, DWORD dwEventType, void *lpEventData) { TRC(2, ServiceName << ": " << ServiceControlToString(dwControl)); switch (dwControl) { case SERVICE_CONTROL_STOP: Stop(); break; case SERVICE_CONTROL_SHUTDOWN: Status = SERVICE_STOP_PENDING; OnShutdown(); break; case SERVICE_CONTROL_PAUSE: Status = SERVICE_PAUSE_PENDING; OnPause(); break; case SERVICE_CONTROL_CONTINUE: Status = SERVICE_CONTINUE_PENDING; OnContinue(); break; case SERVICE_CONTROL_INTERROGATE: Status = m_status; break; case SERVICE_CONTROL_POWEREVENT: OnPowerEvent((PowerBroadcastStatus)dwEventType); break; case SERVICE_CONTROL_SESSIONCHANGE: { SessionChangeDescription scd = { (SessionChangeReason)dwEventType, (int)((WTSSESSION_NOTIFICATION*)lpEventData)->dwSessionId }; TRC(2, ReasonToString(scd.Reason)); OnSessionChange(scd); } break; case SERVICE_CONTROL_PARAMCHANGE: OnParamChange(); break; case SERVICE_CONTROL_TIMECHANGE: OnTimeChange(); break; case SERVICE_CONTROL_HARDWAREPROFILECHANGE: OnHardwareProfileChange(); break; default: if (dwControl >= 128 && dwControl <= 255) OnCustomCommand(dwControl); else return false; } return true; }
void CMSFadeBar::UpdateTime() { OnTimeChange(); }