Виртуальная регистрация ActiveX и других COM-библиотек
Приложение может использовать ActiveX-компонент, при этом регистрировать его в реестре может быть нежелательно по ряду причин:
- требуются администраторские права;
- регистрация может затронуть другие приложения;
например, вы желаете использовать Flash 7, а сейчас в реестре прописан Flash 9 - ActiveX нужен только на время работы приложения;
например, вы пишете portable приложение
Как решить эту задачу с помощью BoxedApp SDK?
BoxedApp SDK предлагает любопытный механизм, реализованный функцией BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry. Эта функция делает ровно тоже, что и утилита regsvr32. BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry загружает файл (неважно, виртуальный или реальный) и вызывает функцию DllRegisterServer. Но что важно: при этом все изменения, которые затрагивают реестр, сохраняются в виртуальном реестре!
Таким образом, когда приложение создает ActiveX-компонент, подсистема COM находит все, что ей требуется, в виртуальном реестре.
Как результат, реальный (системный) реестр не меняется, а ActiveX создается ровно так же, как если бы он был реально зарегистрирован в системе.


Написать комментарий
Вы должны залогиниться чтобы комментировать. Залогиниться