CAtlServiceModuleT::Run, fonction
Run contient des appels à PreMessageLoop, à RunMessageLoop, et à PostMessageLoop. Après avoir appelé, PreMessageLoop stocke d'abord l'ID du thread du service Le service utilise cet ID pour se fermer en envoyant un message de WM_QUIT à l'aide de la fonction de l'API Win32, PostThreadMessage.
PreMessageLoop appelle ensuite InitializeSecurity. Par défaut, InitializeSecurity appelle CoInitializeSecurity avec le jeu de modèle de sécurité POUR ANNULER, ce qui signifie que tout utilisateur a accès à votre objet.
Si vous ne souhaitez pas que le service pour spécifier sa propre sécurité, la substitution PreMessageLoop et n'appellent pas InitializeSecurity, et COM détermine ensuite les paramètres de sécurité du Registre. Un moyen pratique de configurer les paramètres du Registre consiste à utiliser l'utilitaire de DCOMCNFG décrite plus loin dans cette section.
Une fois la sécurité est spécifiée, l'objet est enregistré avec COM afin que les nouveaux clients puissent se connecter au programme. Enfin, le programme indique le gestionnaire de contrôle des services (SCM) qu'il s'exécute et le programme écrit une boucle de message. Le programme reste exécution jusqu'à ce qu'elle publie un message quitté à l'arrêt du service.