in src/ServiceMonitor/ServiceMonitor.cpp [254:278]
HRESULT Service_Monitor::GetServiceHandle(LPCTSTR pServiceName, SC_HANDLE* pHandle)
{
HRESULT hr = S_OK;
if (pServiceName == NULL)
{
_tprintf(L"\nERROR: Null parameter for GetServiceHandle()\n");
hr = HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER);
goto Finished;
}
hr = EnsureInitialized();
if (SUCCEEDED(hr))
{
*pHandle = OpenService(_hSCManager, pServiceName, SERVICE_START | SERVICE_STOP | SERVICE_QUERY_STATUS);
if (*pHandle == NULL)
{
hr = HRESULT_FROM_WIN32(GetLastError());
goto Finished;
}
}
Finished:
return hr;
}