Merge the description functions into a single file.

svn path=/trunk/; revision=71628
This commit is contained in:
Eric Kohl
2016-06-12 20:12:15 +00:00
parent 3746117c61
commit c7664e0ded
3 changed files with 81 additions and 91 deletions
@@ -8,7 +8,6 @@ list(APPEND SOURCE
description.c
print.c
qc.c
qdescription.c
qfailure.c
query.c
sc.c
+81 -1
View File
@@ -2,13 +2,93 @@
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/sc/description.c
* PURPOSE: Change the service description
* PURPOSE: Query/Set the service description
* COPYRIGHT: Copyright 2016 Eric Kohl
*
*/
#include "sc.h"
BOOL QueryDescription(LPCTSTR ServiceName)
{
SC_HANDLE hManager = NULL;
SC_HANDLE hService = NULL;
BOOL bResult = TRUE;
DWORD cbBytesNeeded = 0;
LPSERVICE_DESCRIPTION pServiceDescription = NULL;
#ifdef SCDBG
_tprintf(_T("service to show description - %s\n\n"), ServiceName);
#endif
hManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_CONNECT);
if (hManager == NULL)
{
bResult = FALSE;
goto done;
}
hService = OpenService(hManager, ServiceName, SERVICE_QUERY_CONFIG);
if (hService == NULL)
{
bResult = FALSE;
goto done;
}
if (!QueryServiceConfig2(hService,
SERVICE_CONFIG_DESCRIPTION,
NULL,
0,
&cbBytesNeeded))
{
if (cbBytesNeeded == 0)
{
bResult = FALSE;
goto done;
}
}
pServiceDescription = HeapAlloc(GetProcessHeap(), 0, cbBytesNeeded);
if (pServiceDescription == NULL)
{
SetLastError(ERROR_OUTOFMEMORY);
bResult = FALSE;
goto done;
}
if (!QueryServiceConfig2(hService,
SERVICE_CONFIG_DESCRIPTION,
(LPBYTE)pServiceDescription,
cbBytesNeeded,
&cbBytesNeeded))
{
bResult = FALSE;
goto done;
}
_tprintf(_T("SERVICE_NAME: %s\n"), ServiceName);
_tprintf(_T(" DESCRIPTION : %s\n"),
(pServiceDescription->lpDescription) ? pServiceDescription->lpDescription : _T(""));
done:
if (bResult == FALSE)
ReportLastError();
if (pServiceDescription != NULL)
HeapFree(GetProcessHeap(), 0, pServiceDescription);
if (hService)
CloseServiceHandle(hService);
if (hManager)
CloseServiceHandle(hManager);
return bResult;
}
BOOL SetDescription(LPCTSTR ServiceName, LPCTSTR Description)
{
SC_HANDLE hManager = NULL;
@@ -1,89 +0,0 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/sc/qdescription.c
* PURPOSE: Show the service description
* COPYRIGHT: Copyright 2016 Eric Kohl
*
*/
#include "sc.h"
BOOL QueryDescription(LPCTSTR ServiceName)
{
SC_HANDLE hManager = NULL;
SC_HANDLE hService = NULL;
BOOL bResult = TRUE;
DWORD cbBytesNeeded = 0;
LPSERVICE_DESCRIPTION pServiceDescription = NULL;
#ifdef SCDBG
_tprintf(_T("service to show description - %s\n\n"), ServiceName);
#endif
hManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_CONNECT);
if (hManager == NULL)
{
bResult = FALSE;
goto done;
}
hService = OpenService(hManager, ServiceName, SERVICE_QUERY_CONFIG);
if (hService == NULL)
{
bResult = FALSE;
goto done;
}
if (!QueryServiceConfig2(hService,
SERVICE_CONFIG_DESCRIPTION,
NULL,
0,
&cbBytesNeeded))
{
if (cbBytesNeeded == 0)
{
bResult = FALSE;
goto done;
}
}
pServiceDescription = HeapAlloc(GetProcessHeap(), 0, cbBytesNeeded);
if (pServiceDescription == NULL)
{
SetLastError(ERROR_OUTOFMEMORY);
bResult = FALSE;
goto done;
}
if (!QueryServiceConfig2(hService,
SERVICE_CONFIG_DESCRIPTION,
(LPBYTE)pServiceDescription,
cbBytesNeeded,
&cbBytesNeeded))
{
bResult = FALSE;
goto done;
}
_tprintf(_T("SERVICE_NAME: %s\n"), ServiceName);
_tprintf(_T(" DESCRIPTION : %s\n"),
(pServiceDescription->lpDescription) ? pServiceDescription->lpDescription : _T(""));
done:
if (bResult == FALSE)
ReportLastError();
if (pServiceDescription != NULL)
HeapFree(GetProcessHeap(), 0, pServiceDescription);
if (hService)
CloseServiceHandle(hService);
if (hManager)
CloseServiceHandle(hManager);
return bResult;
}