Я пытаюсь осмыслить концепцию написания службы Windows с использованием ATL.
Я создал проект и понимаю, что могу переопределить функции CAtlServiceModuleT, чтобы удовлетворить свои потребности в службе.
Я хотел бы, чтобы служба создала COM-объект (называемый диспетчером), который занимается планированием и выполнением заданий.
Как я могу создать один экземпляр моего COM-объекта, который будет доступен в течение всего жизненного цикла службы, работающей со всеми заданиями?
Я предполагаю написание клиентской программы, которая вызывает функции на интерфейсах, предоставляемыхДиспетчер, для создания / чтения / обновления / удаления заданий.
Я думаю, что служба не будет создавать объект диспетчера, пока моя клиентская программа не подключится к нему - и когда последний клиент отключится от него, COM будетуничтожить менеджера - тем самым убив его способность обрабатывать задания.
Любая хорошая документация по этому вопросу будет принята!
Обновление:
Было бы так же просто, как вызвать CoCreateInstance изпроизнесите переопределенную версию CAtlServiceModuleT :: Run (), а затем, когда служба завершит работу, сделав окончательный вызов Release?!