CAtlServiceModuleT::Run Function
Run enthält Aufrufe PreMessageLoop, zu RunMessageLoop und zu PostMessageLoop. Nachdem er aufgerufen wurde speichert PreMessageLoop zuerst ID der Thread des Diensts Der Dienst verwendet diese ID, um zu schließen, indem er eine WM_QUIT Meldung mithilfe der Win32-API, PostThreadMessage sendet.
PreMessageLoop ruft dann InitializeSecurity auf. Standardmäßig ruft InitializeSecurityCoInitializeSecurity mit der Sicherheitsbeschreibung auf, die festgelegt wird, um in NULL, was bedeutet, dass jeder Benutzer Zugriff auf das Objekt verfügt.
Wenn Sie den Dienst seine eigene Sicherheit nicht angeben möchten, rufen PreMessageLoop Überschreibung und nicht InitializeSecurity auf, und COM bestimmt dann die Sicherheitseinstellungen aus der Registrierung. Eine einfache Möglichkeit, Registrierungseinstellungen konfiguriert ist mit dem DCOMCNFG Hilfsprogramm, das weiter unten in diesem Abschnitt erläutert wird.
Sobald Sicherheit angegeben wird, wird das Objekt mit COM registriert, damit neue Clients an das Programm herstellen können. Schließlich wird das Programm dem Dienststeuerungs-Manager (SCM) ausgeführt wird und dass das Programm eine Nachrichtenschleife eingibt. Das Programm wird ausgeführt, bis es eine fehlgeschlagene Meldung nach Dienstherunterfahren sendet.