CAtlServiceModuleT::Run 関数
Run は PreMessageLoop、RunMessageLoopと PostMessageLoopの呼び出しが含まれます。を呼び出した後で、PreMessageLoop 1 番目のは、サービスのスレッド ID が格納されます。サービスは、Win32 API の関数、PostThreadMessageを使用して WM_QUIT のメッセージを送信してそれ自体を閉じるには、この ID を使用します。
PreMessageLoop は、InitializeSecurityを呼び出します。既定では、InitializeSecurity または無効にするセキュリティ記述子のセットに CoInitializeSecurity を呼び出します。したがってすべてのユーザーが、オブジェクトにアクセスできることを意味します。
サービスに独自のセキュリティを指定します。オーバーライド PreMessageLoop は InitializeSecurityを呼び出さないようにし、COM は、レジストリからセキュリティ設定を行います。レジストリ設定を構成する簡単な方法は、このセクションで後述する DCOMCNFG ユーティリティとあります。
セキュリティが指定されている場合、オブジェクトは COM と新しいクライアントがプログラムに接続できるように登録されます。最後に、プログラムが実行され、プログラムがメッセージ ループに入ることは、Services Control Manager (SCM) を示します。プログラムは、サービスの停止に終了られたメッセージをポストするまで実行されます。残り。