BoxedApp

BoxedApp: примеры использования, советы, приемы

Виртуальная регистрация ActiveX и других COM-библиотек


Приложение может использовать ActiveX-компонент, при этом регистрировать его в реестре может быть нежелательно по ряду причин:

  • требуются администраторские права;
  • регистрация может затронуть другие приложения;
    например, вы желаете использовать Flash 7, а сейчас в реестре прописан Flash 9
  • ActiveX нужен только на время работы приложения;
    например, вы пишете portable приложение

Как решить эту задачу с помощью BoxedApp SDK?

BoxedApp SDK предлагает любопытный механизм, реализованный функцией BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry. Эта функция делает ровно тоже, что и утилита regsvr32. BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry загружает файл (неважно, виртуальный или реальный) и вызывает функцию DllRegisterServer. Но что важно: при этом все изменения, которые затрагивают реестр, сохраняются в виртуальном реестре!

Таким образом, когда приложение создает ActiveX-компонент, подсистема COM находит все, что ей требуется, в виртуальном реестре.

Как результат, реальный (системный) реестр не меняется, а ActiveX создается ровно так же, как если бы он был реально зарегистрирован в системе.







Написать комментарий

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