Prior to Windows XP, an
ActiveX control had to be registered on the system before it could be used by an application. This registration creates a few issues among which:
Registering a control requires administrative rights on a system.
Registering a control affects multiple applications as the same
DLL is shared among all applications using the same version of the control (some developers refer to this issue as the
DLL hell.)
An application that unregisters a control will prevent all other applications from using it.
The solution to these issues is to use side-by-side activation, or registration-free components; a concept that is very similar to what was introduced with .NET.
When side-by-side registration is used, two things happen:
scvncctrl.dll can be placed in each application's folder and is not shared with other applications.
The
ActiveX control is not registered in the system wide registry but each application acts as if it had its own registered component.