CAtlServiceModuleT::ServiceMain-Funktion
Der Dienststeuerungs-Manager (SCM) ruft ServiceMain auf, wenn Sie die Dienste-Systemsteuerungs-Anwendung öffnen, den Dienst auswählen und auf Start klicken.
Nachdem das SCM ServiceMain aufruft, muss ein Dienst dem SCM eine Handlerfunktion geben.Diese Funktion ermöglicht das SCM Abrufen des Status des Diensts und bestimmte Anweisungen übergeben (wie Anhalten oder Beenden).Das SCM ruft diese Funktion wenn die Dienstübergaben _Handler an die Win32-API, RegisterServiceCtrlHandler.(_Handler ist eine statische Memberfunktion, die die nicht statische Memberfunktion Handler aufruft).
Am Start sollte ein Dienst das SCM über seinen aktuellen Status auch informieren.Das geschieht, indem SERVICE_START_PENDING zur Win32-API, SetServiceStatus übergibt.
ServiceMain ruft dann CAtlExeModuleT::InitializeCom auf, das die Win32-API CoInitializeEx aufruft.Standardmäßig wird das InitializeComCOINIT_MULTITHREADED-Flag für die Funktion.Dieses Flag gibt an, dass das Programm, ein Freethreadserver sein soll.
Jetzt wird CAtlServiceModuleT::Run aufgerufen, um die zentrale Arbeit des Diensts auszuführen.Run wird fortgesetzt, um auszuführen, bis der Dienst beendet wurde.