How does IE register ActiveX controls for use in the browser?
Does it just run regsvr32 for the DLL?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityHow does IE register ActiveX controls for use in the browser?
Does it just run regsvr32 for the DLL?
ActiveX components register themselves, triggered by a well known DLL entry point (DllRegisterServer
).
regsvr32
is just a wrapper around loading the DLL and calling that entry point. Other tools can do this directly. Installers sometimes just directly update the registry (having recorded the changes to make when building the installer).
My understanding is that it uses some of the underlying APIs that regsvr32 uses, but it doesn't call the regsvr.exe. ActiveX controls are composed of a file on disk, typically a .DLL file, and some registry entries. The registry entries are used to lookup the the location of the actual executable code since the browser would not want to specify a particular files. It is possible for the registry entries to be created in a number of ways including the mechanism that regsvr32 uses.
Creation of registry entries under Vista requires higher level privileges and must pass UAC. Therefore standard users cannot install ActiveX controls. There is a helper service that can do the registration of controls on behalf of the user.
It actually doesn't have to do any of these things; the CAB file specifies what it will actually do. It may use DllRegisterServer, and indeed this is the most common thing, but it could also launch an MSI or EXE installer that may register the ActiveX control in another way.