1 // Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
3 // This file was part of the ups system.
5 // The ups system is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20 // If the source code for the ups system is not available from the place
21 // whence you received this file, check http://www.uk.research.att.com/vnc or contact
22 // the authors on ups@uk.research.att.com for information on obtaining it.
24 // This file has been adapted to the Win32 version of Bacula
25 // by Kern E. Sibbald. Many thanks to ATT and James Weatherall,
26 // the original author, for providing an excellent template.
28 // Copyright (C) 2000-2006 Kern E. Sibbald
36 // This class provides access to service-oriented routines, under both
37 // Windows NT and Windows 95. Some routines only operate under one
38 // OS, others operate under any OS.
40 #if (!defined(_win_bacService))
41 #define _win_bacService
43 // The NT-specific code wrapper class
49 // SERVICE INSTALL & START FUNCTIONS
51 // Routine called by WinMain to cause Bacula to be installed
53 static int BaculaServiceMain();
55 // Routine to install the Apcupsd service on the local machine
56 static int InstallService(const char *pszCmdLine);
58 // Routine to remove the Apcupsd service from the local machine
59 static int RemoveService();
61 // SERVICE SUPPORT FUNCTIONS
63 // Routines to establish which OS we're running on
64 static BOOL IsWin95();
65 static BOOL IsWinNT();
67 // Routine to establish whether the current instance is running
68 // as a service or not
69 static BOOL RunningAsService();
71 // Routine to kill any other running copy of Apcupsd
72 static BOOL KillRunningCopy();
74 // Routine to make the an already running copy of Apcupsd bring up its
75 // About box so you can check the version!
76 static BOOL ShowAboutBox();
78 // Routine to make the an already running copy of Apcupsd bring up its
80 static BOOL ShowStatus();