123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- #pragma once
- #include <WinSock2.h>
- #include <windows.h>
- class CServiceBase
- {
- public:
-
-
-
-
- static BOOL Run(CServiceBase &service);
-
-
-
-
- CServiceBase(LPSTR pszServiceName,
- BOOL fCanStop = TRUE,
- BOOL fCanShutdown = TRUE,
- BOOL fCanPauseContinue = FALSE);
-
- virtual ~CServiceBase(void);
-
- void Stop();
- protected:
-
-
-
-
- virtual void OnStart(DWORD dwArgc, PSTR *pszArgv);
-
-
-
- virtual void OnStop();
-
-
-
- virtual void OnPause();
-
-
-
- virtual void OnContinue();
-
-
-
- virtual void OnShutdown();
-
- void SetServiceStatus(DWORD dwCurrentState,
- DWORD dwWin32ExitCode = NO_ERROR,
- DWORD dwWaitHint = 0);
-
- void WriteEventLogEntry(PSTR pszMessage, WORD wType);
-
- void WriteErrorLogEntry(PSTR pszFunction,
- DWORD dwError = GetLastError());
- private:
-
-
- static void WINAPI ServiceMain(DWORD dwArgc, LPSTR *lpszArgv);
-
-
- static void WINAPI ServiceCtrlHandler(DWORD dwCtrl);
-
- void Start(DWORD dwArgc, PSTR *pszArgv);
-
-
- void Pause();
-
- void Continue();
-
- void Shutdown();
-
- static CServiceBase *s_service;
-
- LPSTR m_name;
-
- SERVICE_STATUS m_status;
-
- SERVICE_STATUS_HANDLE m_statusHandle;
- };
|