From 56590de5de831e5bcea79b47d9ef7fcd2e1e489f Mon Sep 17 00:00:00 2001 From: Dmitry Fleytman Date: Sun, 18 May 2014 11:32:19 +0300 Subject: [PATCH] UsbDkHelper: Make service manager class use generic handle holder Signed-off-by: Dmitry Fleytman --- UsbDkHelper/Installer.h | 1 - UsbDkHelper/ServiceManager.cpp | 1 - UsbDkHelper/ServiceManager.h | 24 ++---------------------- UsbDkHelper/stdafx.h | 2 ++ 4 files changed, 4 insertions(+), 24 deletions(-) diff --git a/UsbDkHelper/Installer.h b/UsbDkHelper/Installer.h index 6d64fa5..9f90709 100644 --- a/UsbDkHelper/Installer.h +++ b/UsbDkHelper/Installer.h @@ -25,7 +25,6 @@ #include "Exception.h" #include "WdfCoinstaller.h" -#include "ServiceManager.h" #include "UsbDkHelper.h" #include "RegAccess.h" diff --git a/UsbDkHelper/ServiceManager.cpp b/UsbDkHelper/ServiceManager.cpp index 6f39335..7b2e865 100644 --- a/UsbDkHelper/ServiceManager.cpp +++ b/UsbDkHelper/ServiceManager.cpp @@ -22,7 +22,6 @@ **********************************************************************/ #include "stdafx.h" -#include "ServiceManager.h" //-------------------------------------------------------------------------------- diff --git a/UsbDkHelper/ServiceManager.h b/UsbDkHelper/ServiceManager.h index 6a8d454..4766ea5 100644 --- a/UsbDkHelper/ServiceManager.h +++ b/UsbDkHelper/ServiceManager.h @@ -23,7 +23,6 @@ #pragma once - //----------------------------------------------------------------------------------- #define SERVICE_MANAGER_EXCEPTION_STRING TEXT("ServiceManager throw the exception. ") @@ -38,27 +37,6 @@ public: }; //----------------------------------------------------------------------------------- -class SCMHandleHolder -{ -public: - SCMHandleHolder(SC_HANDLE Handle) - : m_Handle(Handle) - {} - - ~SCMHandleHolder() - { - if (m_Handle != nullptr) - { - CloseServiceHandle(m_Handle); - } - } - - operator bool() const { return m_Handle != nullptr; } - operator SC_HANDLE() const { return m_Handle; } -private: - SC_HANDLE m_Handle; -}; - class ServiceManager { public: @@ -68,6 +46,8 @@ public: void DeleteServiceObject(const tstring &ServiceName); private: + typedef UsbDkHandleHolder SCMHandleHolder; + static void WaitForServiceStop(const SCMHandleHolder &schService); SCMHandleHolder m_schSCManager; diff --git a/UsbDkHelper/stdafx.h b/UsbDkHelper/stdafx.h index 72c7ce1..6f21e13 100644 --- a/UsbDkHelper/stdafx.h +++ b/UsbDkHelper/stdafx.h @@ -43,5 +43,7 @@ #include "tstrings.h" #include "Exception.h" +#include "Utils.h" +#include "ServiceManager.h" using namespace std;