tdcservice.h
上传用户:qdlite
上传日期:2007-01-07
资源大小:26k
文件大小:1k
源码类别:

系统编程

开发平台:

Visual C++

  1. // tdcservice.h
  2. //
  3. // Definitions for TDCService
  4. //
  5. #ifndef _NTSERVICE_H_
  6. #define _NTSERVICE_H_
  7. #include "ntservmsg.h" // Event message ids
  8. #include <windows.h>
  9. #define SERVICE_CONTROL_USER 128
  10. class TDCService
  11. {
  12. public:
  13.     TDCService(const char* szServiceName);
  14.     virtual ~TDCService();
  15.     BOOL ParseStandardArgs(int argc, char* argv[]);
  16.     BOOL IsInstalled();
  17.     BOOL Install();
  18.     BOOL Uninstall();
  19.     void LogEvent(WORD wType, DWORD dwID,
  20.                   const char* pszS1 = NULL,
  21.                   const char* pszS2 = NULL,
  22.                   const char* pszS3 = NULL);
  23.     BOOL StartService();
  24.     void SetStatus(DWORD dwState);
  25.     BOOL Initialize();
  26.     virtual void Run();
  27. virtual BOOL OnInit();
  28.     virtual void OnStop();
  29.     virtual void OnInterrogate();
  30.     virtual void OnPause();
  31.     virtual void OnContinue();
  32.     virtual void OnShutdown();
  33.     virtual BOOL OnUserControl(DWORD dwOpcode);
  34.     void DebugMsg(const char* pszFormat, ...);
  35.     
  36.     // static member functions
  37.     static void WINAPI ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);
  38.     static void WINAPI Handler(DWORD dwOpcode);
  39.     // data members
  40.     char m_szServiceName[64];
  41.     int m_iMajorVersion;
  42.     int m_iMinorVersion;
  43.     SERVICE_STATUS_HANDLE m_hServiceStatus;
  44.     SERVICE_STATUS m_Status;
  45.     BOOL m_bIsRunning;
  46.     // static data
  47.     static TDCService* m_pThis; // nasty hack to get object ptr
  48. private:
  49.     HANDLE m_hEventSource;
  50. };
  51. #endif // _NTSERVICE_H_