home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / mysql / mysql-3.23.28g-win-source.exe / sql / nt_servc.h < prev    next >
C/C++ Source or Header  |  2000-08-31  |  2KB  |  81 lines

  1. /* ------------------------------------------------------------------------
  2.    Windows NT Service class library
  3.    Copyright Abandoned 1998 Irena Pancirov - Irnet Snc
  4.    This file is public domain and comes with NO WARRANTY of any kind
  5.  -------------------------------------------------------------------------- */
  6.  
  7. // main application thread
  8. typedef void (*THREAD_FC)(void *);
  9.  
  10. class NTService
  11. {
  12.   public:
  13.     NTService();
  14.    ~NTService();
  15.  
  16.     BOOL    bOsNT;          // true if OS is NT, false for Win95
  17.     //install optinos
  18.     DWORD   dwDesiredAccess;
  19.     DWORD   dwServiceType;
  20.     DWORD   dwStartType;
  21.     DWORD   dwErrorControl;
  22.  
  23.     LPSTR   szLoadOrderGroup;
  24.     LPDWORD lpdwTagID;
  25.     LPSTR   szDependencies;
  26.     OSVERSIONINFO osVer;
  27.  
  28.     // time-out (in milisec)
  29.     int     nStartTimeOut;
  30.     int     nStopTimeOut;
  31.     int     nPauseTimeOut;
  32.     int     nResumeTimeOut;
  33.  
  34.     //
  35.     DWORD   my_argc;
  36.     LPTSTR *my_argv;
  37.     HANDLE  hShutdownEvent;
  38.     int     nError;
  39.     DWORD   dwState;
  40.  
  41.     BOOL GetOS();          // returns TRUE if WinNT
  42.     BOOL IsNT() { return bOsNT;}
  43.     //init service entry point
  44.     long Init(LPCSTR szInternName,void *ServiceThread);
  45.  
  46.     //application shutdown event
  47.     void SetShutdownEvent(HANDLE hEvent){ hShutdownEvent=hEvent; }
  48.  
  49.  
  50.     //service install / un-install
  51.     BOOL Install(LPCSTR szInternName,LPCSTR szDisplayName,LPCSTR szFullPath,
  52.             LPCSTR szAccountName=NULL,LPCSTR szPassword=NULL);
  53.     BOOL Remove(LPCSTR szInternName);
  54.  
  55.     void Stop(void); //to be called from app. to stop service
  56.  
  57.   protected:
  58.     LPSTR           ServiceName;
  59.     HANDLE           hExitEvent;
  60.     SERVICE_STATUS_HANDLE  hServiceStatusHandle;
  61.     BOOL           bPause;
  62.     BOOL           bRunning;
  63.     HANDLE           hThreadHandle;
  64.     THREAD_FC           fpServiceThread;
  65.  
  66.     void PauseService();
  67.     void ResumeService();
  68.     void StopService();
  69.     BOOL StartService();
  70.  
  71.     static void ServiceMain(DWORD argc, LPTSTR *argv);
  72.     static void ServiceCtrlHandler (DWORD ctrlCode);
  73.  
  74.     void Exit(DWORD error);
  75.     BOOL SetStatus (DWORD dwCurrentState,DWORD dwWin32ExitCode,
  76.             DWORD dwServiceSpecificExitCode,
  77.             DWORD dwCheckPoint,DWORD dwWaitHint);
  78.  
  79. };
  80. /* ------------------------- the end -------------------------------------- */
  81.