39 static BOOL m_bInstance;
42 TCHAR m_lpServiceName[256];
43 TCHAR m_lpDisplayName[256];
47 SERVICE_STATUS m_ssStatus;
48 SERVICE_STATUS_HANDLE m_sshStatusHandle;
49 DWORD m_dwControlsAccepted;
56 BOOL m_bAssumeRunBlocks;
59 DWORD m_dwDesiredAccess;
60 DWORD m_dwServiceType;
62 DWORD m_dwErrorControl;
63 LPCTSTR m_pszLoadOrderGroup;
65 LPCTSTR m_pszDependencies;
66 LPCTSTR m_pszStartName;
67 LPCTSTR m_pszPassword;
72 CNTService(LPCTSTR ServiceName, LPCTSTR DisplayName = 0);
73 virtual ~CNTService();
76 CNTService(
const CNTService & );
77 CNTService & operator=(
const CNTService & );
113 virtual void Run(DWORD argc, LPTSTR * argv) = 0;
114 virtual void Stop() = 0;
125 virtual void Pause();
126 virtual void Continue();
135 virtual void Shutdown();
197 virtual BOOL RegisterService(
int argc,
char ** argv);
204 virtual BOOL StartDispatcher();
214 virtual BOOL InstallService();
224 virtual BOOL RemoveService();
231 virtual BOOL EndService();
236 virtual BOOL StartupService();
245 virtual BOOL DebugService(
int argc,
char **argv,BOOL faceless=FALSE);
260 virtual void RegisterApplicationLog(
261 LPCTSTR lpszProposedMessageFile,
262 DWORD dwProposedTypes
268 virtual void DeregisterApplicationLog();
274 LPTSTR GetLastErrorText(LPTSTR Buf, DWORD Size);
287 DWORD WaitHint = 3000,
300 virtual void AddToMessageLog(
302 WORD EventType = EVENTLOG_ERROR_TYPE,
303 DWORD dwEventID = DWORD(-1)
310 static void WINAPI ServiceCtrl(DWORD CtrlCode);
311 static void WINAPI ServiceMain(DWORD argc, LPTSTR * argv);
312 static BOOL WINAPI ControlHandler(DWORD CtrlType);
316 BOOL OsIsWin95()
const {
return ! m_bWinNT; }
323 CNTService * AfxGetService();
326 #endif // NTService_h