Создание COM при запуске? (посоветуйте структуру приложения)
От: Doc Россия http://andrey.moveax.ru
Дата: 09.11.04 18:20
Оценка:
Необходимо реализовать алгоритм, работающий (сбор и анализ данных) в течении работы системы и передающий результаты по запросам клиентов. Все происходит на локальной машине, сеть не нужна в принципе.

Как лучше сделать, с учетом что работать будет только под Win2k/XP?

Я реализовал процесс сбора и обработки данных как Singleton COM. В результате все клиенты получают доступ к единственному экземпляру. Осталось только создавать его при запуске ОС (и что бы приложение любого юзера получило к нему доступ).

Пробовал сделать так:
1) Service с COM-интерфейсом.
Создал визардом ATL Service, добавил реализацию своего COM интерфейса.
В итоге запускается сервис при старте ОС, а клиенты, еще при запросе IUnknown, получают E_ACCESSDENIED.
Проблема решается если запускать сервис от текущего юзера. Однако это не решение...

2) Сделал так:
— COM в отдельном EXE-сервере
— сервис, создающий экземпляр и "удерживающий" его в течении работы системы. Сам ничего больше не делает, главное что все последующий клиенты получат этот же экземпляр.
— клиенты получают доступ к единственному экземпляру.
Вроде все ок, но как-то криво получилось.

Может есть варианты лучше?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.