WarService.h
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:2k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // This is part of the WAR SOFTWARE SERIES initiated by Jarle Aase
  2. // Copyright 1996 by Jarle Aase. All rights reserved.
  3. // See the "War Software Series Licende Agreement" for details concerning 
  4. // use and distribution.
  5. // ---
  6. // This source code, executables and programs containing source code or
  7. // binaries or proprietetary technology from the War Software Series are
  8. // NOT alloed used, viewed or tested by any governmental agencies in
  9. // any countries. This includes the government, departments, police, 
  10. // military etc.
  11. // ---
  12. // This file is intended for use with Tab space = 2
  13. // Created and maintained in MSVC Developer Studio
  14. // ---
  15. // NAME : WarService.h
  16. // PURPOSE : NT Service class
  17. // PROGRAM : 
  18. // DATE : Sept. 19 1996
  19. // AUTHOR : Jarle Aase
  20. // ---
  21. // REVISION HISTORY
  22. // 
  23. #ifndef NTSERVICE_H_
  24. #define NTSERVICE_H_
  25. #include "winsvc.h"
  26. #define SERVICE_CONTROL_USER 128
  27. class DLL_WAR_DAEMON_ CNTService
  28. {
  29. public:
  30.     CNTService(LPCSTR ServiceName, CRuntimeClass* MainThreadClass);
  31.     virtual ~CNTService();
  32.     BOOL IsInstalled();
  33.     BOOL StartService();
  34.     void SetStatus(DWORD dwState);
  35.     BOOL Initialize();
  36.     virtual void Run();
  37. virtual BOOL OnInit();
  38.     virtual void OnStop();
  39.     virtual void OnInterrogate();
  40.     virtual void OnPause();
  41.     virtual void OnContinue();
  42.     virtual void OnShutdown();
  43.     virtual BOOL OnUserControl(DWORD dwOpcode);
  44.     void DebugMsg(const char* pszFormat, ...);
  45. static void LogEvent(WORD wType, DWORD dwID, LPCSTR Format, ...);
  46. static CNTService *GetService() {return m_pThis; }
  47. static BOOL IsService() {return (m_pThis != NULL); }
  48.     
  49.     // static member functions
  50.     static void WINAPI ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);
  51.     static void WINAPI Handler(DWORD dwOpcode);
  52.     // data members
  53.     char m_szServiceName[64];
  54.     int m_iMajorVersion;
  55.     int m_iMinorVersion;
  56.     SERVICE_STATUS_HANDLE m_hServiceStatus;
  57.     SERVICE_STATUS m_Status;
  58.     BOOL m_bIsRunning;
  59. CRuntimeClass* m_MainThreadClass;
  60. CWinThread *m_MainThread;
  61.     // static data
  62.     static CNTService* m_pThis; // nasty hack to get object ptr
  63. private:
  64.     HANDLE m_hEventSource;
  65. };
  66. #endif // NTSERVICE_H_