Udostępnij za pośrednictwem


Funkcja CAtlServiceModuleT::Run

Run zawiera wywołania metody PreMessageLoop, RunMessageLoopi PostMessageLoop. Po wywołaniu PreMessageLoop najpierw przechowuje identyfikator wątku usługi. Usługa użyje tego identyfikatora, aby zamknąć się, wysyłając komunikat WM_QUIT przy użyciu funkcji interfejsu API Win32 PostThreadMessage.

PreMessageLoop następnie wywołuje metodę InitializeSecurity. Domyślnie InitializeSecurity wywołuje metodę CoInitializeSecurity z deskryptorem zabezpieczeń ustawionym na wartość NULL, co oznacza, że każdy użytkownik ma dostęp do obiektu.

Jeśli nie chcesz, aby usługa określała własne zabezpieczenia, przesłonięć PreMessageLoop i nie wywoływać InitializeSecurityparametrów , a com określi ustawienia zabezpieczeń z rejestru. Wygodnym sposobem konfigurowania ustawień rejestru jest użycie narzędzia DCOMCNFG omówionego w dalszej części tej sekcji.

Po określeniu zabezpieczeń obiekt jest zarejestrowany w modelu COM, aby nowi klienci mogli łączyć się z programem. Na koniec program informuje menedżera kontroli usług (SCM), że jest uruchomiony, a program wprowadza pętlę komunikatu. Program pozostaje uruchomiony, dopóki nie opublikuje komunikatu zakończenia po zamknięciu usługi.

Zobacz też

Usługi
Klasa CSecurityDesc
Klasa CSid
Klasa CDacl
CAtlServiceModuleT::Run