summaryrefslogtreecommitdiff
path: root/sql/nt_servc.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/nt_servc.h')
-rw-r--r--sql/nt_servc.h80
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 -------------------------------------- */