// Copyright (c) 2015 Egor Tensin // This file is part of the "Windows 7 drivers" project. // For details, see https://github.com/egor-tensin/windows7-drivers. // Distributed under the MIT License. #include "libservice/all.hpp" #include #include #include namespace libservice { ServiceManager ServiceManager::open() { SC_HANDLE raw = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (NULL == raw) { const auto ec = GetLastError(); throw std::system_error( ec, WindowsErrorCategory::get(), LIBSERVICE_ERROR_PREFIX); } return ServiceHandle(raw); } void swap(ServiceManager& a, ServiceManager& b) LIBSERVICE_NOEXCEPT { a.swap(b); } } namespace std { template <> void swap( libservice::ServiceManager& a, libservice::ServiceManager& b) LIBSERVICE_NOEXCEPT { a.swap(b); } }