DllRegisterServer Fails with Error 0x80040200

When attempting to manually register a control from the command line using the RegSvr32.exe utility, an error is displayed stating that the ActiveX control was loaded but the call to DllRegisterServer failed with error code 0x80040200.

More Information

This error can occur on Windows Vista or Windows Server 2008 and later platforms with UAC enabled. Because registration requires access to a restricted area of the registry, it must be done with elevated privileges using an administrative command prompt. This can be done by right-clicking on the Command Prompt icon and selecting “Run as Administrator” or, on Widows 8.1 or Windows 10, right-clicking on the Windows icon in the taskbar and selecting “Command Prompt (Admin)”.

If you are using a 64-bit version of Windows, you should also make sure that you’re registering the correct version of the control. On 32-bit versions of Windows, the SocketTools ActiveX controls are installed in C:\Windows\System32. On 64-bit Windows, the 32-bit ActiveX controls are installed in C:\Windows\Syswow64 and the 64-bit ActiveX controls are installed in C:\Windows\System32. To register a 32-bit control on a 64-bit Windows system, the command should look like this:

%windir%\syswow64\regsvr32 %windir%\syswow64\control.ocx

Where control is the file name of the ActiveX control you want to register. If you are manually copying a control from one system to another, it should also be noted that registering a control is different from licensing. To deploy an application that uses a SocketTools ActiveX control, it must be compiled on the system with a SocketTools development license. A registered control will still generate a runtime licensing error if the application is not properly licensed for redistribution.