diff options
Diffstat (limited to 'sql/nt_servc.h')
-rw-r--r-- | sql/nt_servc.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/sql/nt_servc.h b/sql/nt_servc.h new file mode 100644 index 00000000000..5fda96dc4d8 --- /dev/null +++ b/sql/nt_servc.h @@ -0,0 +1,80 @@ +/* ------------------------------------------------------------------------ + Windows NT Service class library + Copyright Abandoned 1998 Irena Pancirov - Irnet Snc + This file is public domain and comes with NO WARRANTY of any kind + -------------------------------------------------------------------------- */ + +// main application thread +typedef void (*THREAD_FC)(void *); + +class NTService +{ + public: + NTService(); + ~NTService(); + + BOOL bOsNT; // true if OS is NT, false for Win95 + //install optinos + DWORD dwDesiredAccess; + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + + LPSTR szLoadOrderGroup; + LPDWORD lpdwTagID; + LPSTR szDependencies; + OSVERSIONINFO osVer; + + // time-out (in milisec) + int nStartTimeOut; + int nStopTimeOut; + int nPauseTimeOut; + int nResumeTimeOut; + + // + DWORD my_argc; + LPTSTR *my_argv; + HANDLE hShutdownEvent; + int nError; + DWORD dwState; + + BOOL GetOS(); // returns TRUE if WinNT + BOOL IsNT() { return bOsNT;} + //init service entry point + long Init(LPCSTR szInternName,void *ServiceThread); + + //application shutdown event + void SetShutdownEvent(HANDLE hEvent){ hShutdownEvent=hEvent; } + + + //service install / un-install + BOOL Install(LPCSTR szInternName,LPCSTR szDisplayName,LPCSTR szFullPath, + LPCSTR szAccountName=NULL,LPCSTR szPassword=NULL); + BOOL Remove(LPCSTR szInternName); + + void Stop(void); //to be called from app. to stop service + + protected: + LPSTR ServiceName; + HANDLE hExitEvent; + SERVICE_STATUS_HANDLE hServiceStatusHandle; + BOOL bPause; + BOOL bRunning; + HANDLE hThreadHandle; + THREAD_FC fpServiceThread; + + void PauseService(); + void ResumeService(); + void StopService(); + BOOL StartService(); + + static void ServiceMain(DWORD argc, LPTSTR *argv); + static void ServiceCtrlHandler (DWORD ctrlCode); + + void Exit(DWORD error); + BOOL SetStatus (DWORD dwCurrentState,DWORD dwWin32ExitCode, + DWORD dwServiceSpecificExitCode, + DWORD dwCheckPoint,DWORD dwWaitHint); + +}; +/* ------------------------- the end -------------------------------------- */ |