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