warwin32ntservice.h

来自「ftpserver very good sample」· C头文件 代码 · 共 97 行

H
97
字号
/**     NT service implementation.         Shamelessy stolen from the MSDN sample     "Creating a Simple Win32 Service in C++" by    Nigel Thompson.*/#ifndef WAR_WIN32_NT_SERVICE_H#define WAR_WIN32_NT_SERVICE_H/* SYSTEM INCLUDES *//* PROJECT INCLUDES *//* LOCAL INCLUDES *//* FORWARD REFERENCES */#ifdef __cplusplusextern "C" {#endif/****************** BEGIN OLD STYLE C spesific ********/#define WAR_SERVICE_CONTROL_USER 128/****************** END OLD STYLE C spesific **********/#ifdef __cplusplus }#endif/****************** BEGIN C++ spesific ****************/#ifdef __cplusplusclass WarWin32NtService {public:    // LIFECYCLE    WarWin32NtService(const TCHAR* szServiceName);    virtual ~WarWin32NtService();    // OPERATORS    // OPERATIONS             BOOL IsInstalled();    BOOL Install(LPCTSTR szVisualName = NULL,         LPCTSTR szCommandArgs = NULL,        bool doAutostartWhenBoot = false,        LPCTSTR szUserAccountName = NULL,        LPCTSTR szAccountpassword = NULL);    BOOL Uninstall();    BOOL StartService();    void SetStatus(DWORD dwState);    BOOL Initialize();    // ACCESS    // INQUIRY    protected:    virtual void Run() = 0;	virtual BOOL OnInit();    virtual void OnStop();    virtual void OnInterrogate();    virtual void OnPause();    virtual void OnContinue();    virtual void OnShutdown();    virtual BOOL OnUserControl(DWORD dwOpcode);    TCHAR mszServiceName[64];    int miMajorVersion;    int miMinorVersion;    SERVICE_STATUS_HANDLE mhServiceStatus;    SERVICE_STATUS mStatus;    BOOL mbIsRunning;private:    static void WINAPI ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);    static void WINAPI Handler(DWORD dwOpcode);    static WarWin32NtService* mpThis; // nasty hack to get object ptr};/* INLINE METHODS *//* EXTERNAL REFERENCES */#endif /* __cplusplus *//****************** END C++ spesific ******************/#endif  /* WAR_WIN32_NT_SERVICE_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?