CAtlServiceModuleT::Run Function
Запуск содержит вызовы PreMessageLoop, RunMessageLoop и PostMessageLoop. После вызова, PreMessageLoop сначала сохраняет идентификатор потока, службы Служба может использовать этот идентификатор для того, чтобы закрыть, отправляя сообщение WM_QUIT с помощью функции api-интерфейса Win32, PostThreadMessage.
PreMessageLoop затем вызывает InitializeSecurity. По умолчанию InitializeSecurity вызывает CoInitializeSecurity со значением дескриптора безопасности null, означающее, что любой пользователь имеет доступ к объекту.
Если не нужно, чтобы определить собственную службу безопасность, то переопределение PreMessageLoop и не вызывает InitializeSecurity и модели COM затем определяет параметры безопасности из реестра. Удобный способ настройки параметров реестра, программа DCOMCNFG обсуженная далее в этом разделе.
Как только безопасность указана, объект регистрации в модели COM, чтобы новые клиенты могут подключаться к программе. Наконец, программа сообщает диспетчеру служб что она работает и программа входит в цикл обработки сообщений. Программа остается выполнение до тех пор, пока она не будет создать прекращенное сообщение при завершении работы службы.