Registration-free COM
От: xhalt Украина  
Дата: 13.01.06 16:52
Оценка:
Привет всем!

Задача:
Обеспечить возможность использования СOM-компонентов (DLL-серверов) инсталлированных локально в каталоге приложения без (обязательной) предварительной регистрации в реестре.
С такими COM-компонентами должны работать клиенты, написанные с помощью
ATL/MFC.По возможности, должна обеспечиваться поддержка любых других COM-клиентов и
COM-серверов выполняющиеся в адресном пространстве приложения без необходимости внесения изменения в их код, например таких как .NET COM Interop (RCW/CCW в CLR), VB6-контролы, использующие другие ActiveX'ы и т.п.
Операционные системы: Win9x,NT,2000,XP,2003
Мотивация:
Видимый вариант решения:
Перехват системного CoCreateInstance, по схеме "Detours".
Написание собственного CustomCoCreateInstance, который читает некоторые метаданные хранимые в каталоге .exe (аналогичные по структуре записям реестра для COM-компонентов), если находит информацию — загружает вручную DLL и выполняет цепочку действий для инстанциации COM-объекта и получения интерфейса. В случае отсутствия информации — обращается к системной CoCreateInstance.

Какие будут идеи, замечания, альтернативные предложения, дополнительные мотивации, другие пути решения?

--
Regards, xhalt


Предлагаю работу в Киеве
Автор:
Дата: 04.05.06
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.