157 lines
3.3 KiB
C++
157 lines
3.3 KiB
C++
#ifndef _SERVICE_SERVICESTATUS_HPP_
|
|
#define _SERVICE_SERVICESTATUS_HPP_
|
|
#ifndef _COMMON_WINSVC_HPP_
|
|
#include <common/winsvc.hpp>
|
|
#endif
|
|
|
|
class ServiceStatus : private SERVICE_STATUS
|
|
{
|
|
public:
|
|
ServiceStatus(void);
|
|
ServiceStatus(DWORD svcType,DWORD svcState,DWORD ctlsAccept,DWORD w32Exit,DWORD svcExit,DWORD ckPoint,DWORD waitHint);
|
|
virtual ~ServiceStatus();
|
|
DWORD serviceType(void)const;
|
|
void serviceType(DWORD serviceType);
|
|
DWORD currentState(void)const;
|
|
void currentState(DWORD currentState);
|
|
DWORD controlsAccepted(void)const;
|
|
void controlsAccepted(DWORD controlsAccepted);
|
|
DWORD win32ExitCode(void)const;
|
|
void win32ExitCode(DWORD win32ExitCode);
|
|
DWORD serviceExitCode(void)const;
|
|
void serviceExitCode(DWORD serviceExitCode);
|
|
DWORD checkPoint(void)const;
|
|
void checkPoint(DWORD checkPoint);
|
|
DWORD waitHint(void)const;
|
|
void waitHint(DWORD waitHint);
|
|
SERVICE_STATUS &getSERVICESTATUS(void);
|
|
private:
|
|
void zeroInit(void);
|
|
};
|
|
|
|
inline
|
|
ServiceStatus::ServiceStatus(void)
|
|
{
|
|
zeroInit();
|
|
}
|
|
|
|
inline
|
|
ServiceStatus::ServiceStatus(DWORD svcType,DWORD svcState,DWORD ctlsAccept,DWORD w32Exit,DWORD svcExit,DWORD ckPoint,DWORD waitHint)
|
|
{
|
|
SERVICE_STATUS::dwServiceType=svcType;
|
|
SERVICE_STATUS::dwCurrentState=svcState;
|
|
SERVICE_STATUS::dwControlsAccepted=ctlsAccept;
|
|
SERVICE_STATUS::dwWin32ExitCode=w32Exit;
|
|
SERVICE_STATUS::dwServiceSpecificExitCode=svcExit;
|
|
SERVICE_STATUS::dwCheckPoint=ckPoint;
|
|
SERVICE_STATUS::dwWaitHint=waitHint;
|
|
}
|
|
|
|
inline
|
|
ServiceStatus::~ServiceStatus()
|
|
{
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::serviceType(void)const
|
|
{
|
|
return SERVICE_STATUS::dwServiceType;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::serviceType(DWORD serviceType)
|
|
{
|
|
SERVICE_STATUS::dwServiceType=serviceType;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::currentState(void)const
|
|
{
|
|
return SERVICE_STATUS::dwCurrentState;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::currentState(DWORD currentState)
|
|
{
|
|
SERVICE_STATUS::dwCurrentState=currentState;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::controlsAccepted(void)const
|
|
{
|
|
return SERVICE_STATUS::dwControlsAccepted;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::controlsAccepted(DWORD controlsAccepted)
|
|
{
|
|
SERVICE_STATUS::dwControlsAccepted=controlsAccepted;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::win32ExitCode(void)const
|
|
{
|
|
return SERVICE_STATUS::dwWin32ExitCode;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::win32ExitCode(DWORD win32ExitCode)
|
|
{
|
|
SERVICE_STATUS::dwWin32ExitCode=win32ExitCode;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::serviceExitCode(void)const
|
|
{
|
|
return SERVICE_STATUS::dwServiceSpecificExitCode;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::serviceExitCode(DWORD serviceExitCode)
|
|
{
|
|
SERVICE_STATUS::dwServiceSpecificExitCode=serviceExitCode;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::checkPoint(void)const
|
|
{
|
|
return SERVICE_STATUS::dwCheckPoint;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::checkPoint(DWORD checkPoint)
|
|
{
|
|
SERVICE_STATUS::dwCheckPoint=checkPoint;
|
|
}
|
|
|
|
inline
|
|
DWORD ServiceStatus::waitHint(void)const
|
|
{
|
|
return SERVICE_STATUS::dwWaitHint;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::waitHint(DWORD waitHint)
|
|
{
|
|
SERVICE_STATUS::dwWaitHint=waitHint;
|
|
}
|
|
|
|
inline
|
|
SERVICE_STATUS &ServiceStatus::getSERVICESTATUS(void)
|
|
{
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
void ServiceStatus::zeroInit(void)
|
|
{
|
|
SERVICE_STATUS::dwServiceType=0;
|
|
SERVICE_STATUS::dwCurrentState=0;
|
|
SERVICE_STATUS::dwControlsAccepted=0;
|
|
SERVICE_STATUS::dwWin32ExitCode=0;
|
|
SERVICE_STATUS::dwServiceSpecificExitCode=0;
|
|
SERVICE_STATUS::dwCheckPoint=0;
|
|
SERVICE_STATUS::dwWaitHint=0;
|
|
}
|
|
#endif
|