Имеется изолированная полностью контролируемая локальная сеть с машинами, вопросы безопасности не имеют значения. Еще есть несколько комовских DLL с реализациями и заместителями/заглушками для интерфейсов (proxy/stub). Необходимо создавать экземпляры этих реализаций на удаленных машинах в разных процессах. То есть должна быть возможность поднимать несколько отдельных процессов на одной машине с этими объектами. Причем иногда процессы нужны консольные, а иногда оконные, ну или пусть всегда будут оконные. Экземпляров одной реализации в процессе так же может быть по несколько штук. Предполагается что учет всех объектов ведет одна из машин.
Так вот вопрос, как реализовать это средствами DCOM?
Непонятно вот что. Процесс при старте должен вызывать для каждой фабрики функцию CoRegisterClassObject
с ней нужно передать CLSID реализации, указатель на фабрику и флажки с параметрами активации. Это понятно, допустим процесс знает список реализаций и спокойно их регистрирует. Но на клиентской стороне я должен вызвать CoCreateInstance
и передать с ней имя машины, CLSID реализации и все. Больше ничего нет чтобы идентифицировать процесс. Как быть, свой механиз воротить?
Смежный вопрос. Если я одновременно зарегистрирую реализации из DLL и из процессов, как DCOM их отличит? Регистрация DLL нужна чтобы их можно было активировать локально из процессов. Как вариант конечно, DLL можно не регистрировать, а подгружать вручную.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеются две переменные типа stringПодскажите методы их сравнения
Требуется написать функцию пересечения двух множеств, но возникла проблема, как проверять, что в одном множестве есть данный элемент а в другом...