Поделиться через


CAtlServiceModuleT::ServiceMain Function

Диспетчеру служб вызывает ServiceMain при открытии приложение панель управления службы, выберите служба и нажмите кнопку Пуск.

После того, как диспетчер служб вызывает ServiceMain служба должна предоставить диспетчер служб функцию обработчика. Эта функция позволяет диспетчеру служб получить состояние службы и передать определенных инструкций (такие как приостанавливать или останавливать). Диспетчер служб возвращает эту функцию, когда служба передает _Handler к функции api-интерфейса Win32, RegisterServiceCtrlHandler. (_Handler функция статического члена, которая вызывает функцию-член обработчик), не являющихся статическими.

При запуске служба должна также информировать диспетчер служб его текущего состояния. Это делается путем передачи SERVICE_START_PENDING к функции api-интерфейса Win32, SetServiceStatus.

ServiceMain затем вызывает CAtlExeModuleT::InitializeCom, который вызывает функцию Win32 API CoInitializeEx. По умолчанию InitializeCom передает пометить COINIT_MULTITHREADED функции. Этот пометить указывает, что программа продетым быть свободен- потоков сервером.

Теперь, вызываются CAtlServiceModuleT::Run выполнения главный работы службы. Запуск продолжает выполняться до тех пор, пока служба не остановлена.

См. также

Ссылки

Службы ATL

CAtlServiceModuleT::ServiceMain