Função de CAtlServiceModuleT::ServiceMain
O gerenciador (SCM) do controle de serviço chama ServiceMain quando você abre o aplicativo do painel de controle de serviços, selecione o serviço, e clique Iniciar.
Após SCM chama ServiceMain, um serviço deve dar a SCM uma função do manipulador.Essa função deixa SCM obter o status de serviço e passar instruções específicas (como pausar ou parar).SCM obter essa função quando passa _Handler à função da API do Win32, RegisterServiceCtrlHandlerde serviço.(_Handler é uma função de membro estático que chama a função de membro manipuladorde não-estáticos.)
Em a inicialização, um serviço deve também informar SCM de seu status atual.Isso SERVICE_START_PENDING passando à função da API do Win32, SetServiceStatus.
ServiceMain então chama CAtlExeModuleT::InitializeCom, que chama a função CoInitializeExda API do Win32.Por padrão, InitializeCom passa o sinalizador de COINIT_MULTITHREADED à função.Este sinalizador que indica o programa é de segmentação livre ser um servidor.
Agora, CAtlServiceModuleT::Run é chamado para realizar o trabalho do serviço.Executar continuará a ser executado até que o serviço está parado.