#include "sc.h"
+#define DEBUG
+#include <debug.h>
+
/* local function decs */
VOID PrintService(BOOL bExtended);
-BOOL EnumServices(LPCTSTR ServiceName, DWORD ServiceType, DWORD ServiceState);
+BOOL EnumServices(DWORD ServiceType, DWORD ServiceState);
BOOL QueryService(LPCTSTR ServiceName, BOOL bExtended);
/* global variables */
BOOL
Query(LPCTSTR ServiceName, LPCTSTR *ServiceArgs, BOOL bExtended)
{
-
if (! ServiceName) /* display all running services and drivers */
{
/* get default values */
- EnumServices(NULL, SERVICE_WIN32, SERVICE_ACTIVE);
+ EnumServices(SERVICE_WIN32, SERVICE_ACTIVE);
/* print default values */
PrintService(bExtended);
LPCTSTR Type = *ServiceArgs;
if (_tcsicmp(Type, _T("driver")) == 0)
- EnumServices(NULL, SERVICE_DRIVER, SERVICE_ACTIVE);
+ EnumServices(SERVICE_DRIVER, SERVICE_ACTIVE);
else if (_tcsicmp(Type, _T("service")) == 0)
- EnumServices(NULL, SERVICE_WIN32, SERVICE_ACTIVE);
+ EnumServices(SERVICE_WIN32, SERVICE_ACTIVE);
else if (_tcsicmp(Type, _T("all")) == 0)
- EnumServices(NULL, SERVICE_DRIVER|SERVICE_WIN32, SERVICE_ACTIVE);
+ EnumServices(SERVICE_DRIVER|SERVICE_WIN32, SERVICE_ACTIVE);
else
{
_tprintf(_T("\nERROR following \"type=\"!\n"));
LPCTSTR State = *ServiceArgs;
if (_tcsicmp(State, _T("inactive")) == 0)
- EnumServices(NULL, SERVICE_WIN32, SERVICE_INACTIVE);
+ EnumServices(SERVICE_WIN32, SERVICE_INACTIVE);
else if (_tcsicmp(State, _T("all")) == 0)
- EnumServices(NULL, SERVICE_WIN32, SERVICE_STATE_ALL);
+ EnumServices(SERVICE_WIN32, SERVICE_STATE_ALL);
else
{
_tprintf(_T("\nERROR following \"state=\"!\n"));
BOOL
-EnumServices(LPCTSTR ServiceName, DWORD ServiceType, DWORD ServiceState)
+EnumServices(DWORD ServiceType, DWORD ServiceState)
{
DWORD BufSize = 0;
DWORD BytesNeeded = 0;
VOID
PrintService(BOOL bExtended)
{
- int i;
+ DWORD i;
for (i=0; i < NumServices; i++)
{
DWORD ErrorCode = GetLastError();
if (ErrorCode != ERROR_SUCCESS)
{
- if ((RetVal = FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- ErrorCode,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
- (LPTSTR) &lpMsgBuf,
- 0,
- NULL )))
+ RetVal = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ ErrorCode,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL );
+
+ if (RetVal != 0)
{
_tprintf(_T("%s"), (LPTSTR)lpMsgBuf);
ServiceName = argv[2];
return ScControl(MachineName, Command, ServiceName, &argv[3], argc);
}
-
- return MainUsage();
}