/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/system/sc/delete.c
+ * FILE: base/applications/sc/delete.c
* PURPOSE: Delete a service
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <gedmurphy@gmail.com>
*
{
SC_HANDLE hSCManager = NULL;
SC_HANDLE hSc = NULL;
+ BOOL bRet = TRUE;
#ifdef SCDBG
_tprintf(_T("service to delete - %s\n\n"), ServiceName);
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_CONNECT);
- if (hSCManager != NULL)
+ if (hSCManager == NULL)
{
- hSc = OpenService(hSCManager, ServiceName, DELETE);
- if (hSc != NULL)
- {
- if (DeleteService(hSc))
- {
- _tprintf(_T("[SC] DeleteService SUCCESS\n"));
-
- CloseServiceHandle(hSc);
- CloseServiceHandle(hSCManager);
-
- return TRUE;
- }
- }
+ _tprintf(_T("[SC] OpenSCManager FAILED %lu:\n\n"), GetLastError());
+ bRet = FALSE;
+ goto done;
}
- ReportLastError();
+ hSc = OpenService(hSCManager, ServiceName, DELETE);
+ if (hSc == NULL)
+ {
+ _tprintf(_T("[SC] OpenService FAILED %lu:\n\n"), GetLastError());
+ bRet = FALSE;
+ goto done;
+ }
+
+ if (!DeleteService(hSc))
+ {
+ _tprintf(_T("[SC] DeleteService FAILED %lu:\n\n"), GetLastError());
+ bRet = FALSE;
+ goto done;
+ }
+
+ _tprintf(_T("[SC] DeleteService SUCCESS\n\n"));
+
+done:
+ if (bRet == FALSE)
+ ReportLastError();
+
+ if (hSc)
+ CloseServiceHandle(hSc);
- if (hSc) CloseServiceHandle(hSc);
- if (hSCManager) CloseServiceHandle(hSCManager);
+ if (hSCManager)
+ CloseServiceHandle(hSCManager);
- return FALSE;
+ return bRet;
}