Как IE регистрирует элементы управления ActiveX для использования в браузере?
Это просто запустить regsvr32 для DLL?
Как IE регистрирует элементы управления ActiveX для использования в браузере?
Это просто запустить regsvr32 для DLL?
Насколько я понимаю, он использует некоторые из базовых API, которые использует regsvr32, но он не вызывает regsvr.exe. Элементы управления ActiveX состоят из файла на диске, обычно.DLL-файл и некоторые записи реестра. Записи реестра используются для поиска местоположения фактического исполняемого кода, так как браузер не захочет указывать конкретные файлы. Записи реестра могут быть созданы несколькими способами, включая механизм, который использует regsvr32.
Создание записей реестра под Vista требует привилегий более высокого уровня и должно проходить UAC. Поэтому обычные пользователи не могут устанавливать элементы управления ActiveX. Существует вспомогательный сервис, который может выполнять регистрацию элементов управления от имени пользователя.
Компоненты ActiveX регистрируются самостоятельно, запускаемые известной точкой входа DLL (DllRegisterServer
).
regsvr32
- это просто оболочка для загрузки DLL и вызова этой точки входа. Другие инструменты могут сделать это напрямую. Иногда установщики просто обновляют реестр (записав изменения, которые необходимо внести при сборке установщика).
Это на самом деле не должно делать ничего из этого; CAB-файл определяет, что он будет делать. Он может использовать DllRegisterServer, и действительно, это наиболее распространенная вещь, но он также может запустить установщик MSI или EXE, который может зарегистрировать элемент управления ActiveX другим способом.