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 >
Wrap
C/C++ Source or Header
|
2000-08-31
|
2KB
|
81 lines
/* ------------------------------------------------------------------------
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 -------------------------------------- */