nt_servc.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  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. // main application thread
  7. typedef void (*THREAD_FC)(void *);
  8. class NTService
  9. {
  10.   public:
  11.     NTService();
  12.    ~NTService();
  13.     BOOL    bOsNT;       // true if OS is NT, false for Win95
  14.     //install optinos
  15.     DWORD   dwDesiredAccess;
  16.     DWORD   dwServiceType;
  17.     DWORD   dwStartType;
  18.     DWORD   dwErrorControl;
  19.     LPSTR   szLoadOrderGroup;
  20.     LPDWORD lpdwTagID;
  21.     LPSTR   szDependencies;
  22.     OSVERSIONINFO osVer;
  23.     // time-out (in milisec)
  24.     int     nStartTimeOut;
  25.     int     nStopTimeOut;
  26.     int     nPauseTimeOut;
  27.     int     nResumeTimeOut;
  28.     //
  29.     DWORD   my_argc;
  30.     LPTSTR *my_argv;
  31.     HANDLE  hShutdownEvent;
  32.     int     nError;
  33.     DWORD   dwState;
  34.     BOOL GetOS();       // returns TRUE if WinNT
  35.     BOOL IsNT() { return bOsNT;}
  36.     //init service entry point
  37.     long Init(LPCSTR szInternName,void *ServiceThread);
  38.     //application shutdown event
  39.     void SetShutdownEvent(HANDLE hEvent){ hShutdownEvent=hEvent; }
  40.     //service install / un-install
  41.     BOOL Install(int startType,LPCSTR szInternName,LPCSTR szDisplayName,LPCSTR szFullPath,
  42.     LPCSTR szAccountName=NULL,LPCSTR szPassword=NULL);
  43.     BOOL SeekStatus(LPCSTR szInternName, int OperationType);
  44.     BOOL Remove(LPCSTR szInternName);
  45.     BOOL IsService(LPCSTR ServiceName);
  46.     BOOL got_service_option(char **argv, char *service_option);
  47.     BOOL is_super_user();
  48.     void Stop(void); //to be called from app. to stop service
  49.   protected:
  50.     LPSTR    ServiceName;
  51.     HANDLE    hExitEvent;
  52.     SERVICE_STATUS_HANDLE  hServiceStatusHandle;
  53.     BOOL    bPause;
  54.     BOOL    bRunning;
  55.     HANDLE    hThreadHandle;
  56.     THREAD_FC    fpServiceThread;
  57.     void PauseService();
  58.     void ResumeService();
  59.     void StopService();
  60.     BOOL StartService();
  61.     static void ServiceMain(DWORD argc, LPTSTR *argv);
  62.     static void ServiceCtrlHandler (DWORD ctrlCode);
  63.     void Exit(DWORD error);
  64.     BOOL SetStatus (DWORD dwCurrentState,DWORD dwWin32ExitCode,
  65.     DWORD dwServiceSpecificExitCode,
  66.     DWORD dwCheckPoint,DWORD dwWaitHint);
  67. };
  68. /* ------------------------- the end -------------------------------------- */