VB Migration Partner

KNOWLEDGE BASE - Forms and controls

Previous | Index | Next 

[INFO] You need a runtime license for RDO and for ActiveX controls when running on a computer on which VB6 isn’t installed

VB Migration Partner converts most references to ActiveX controls into references to a native .NET control. However, in a few cases the converted VB.NET project still indirectly references the original ActiveX control (the direct reference is to a .NET class that wraps the ActiveX control). For this reason, it is necessary that a runtime license for the following components be installed on the computer where the converted VB.NET project runs:

RDO (the MSRDO20.DLL type library)
MSChart, DataGrid, MSInet, MSMapi32, MSWinsock, MSComm32, MCI32
CmdDlg32 (only if Print or Print Setup dialogs are used)

In general, the runtime license for these components is always present on computers where VB6 is installed. Because you typically run VB Migration Partner on a computer where VB6 is also installed, you never meet any problem when running the converted VB.NET project on the computer where the migration takes place.

However, if you later deploy the VB.NET project – either in source or compiled form – to a computer where VB6 is not installed, then you get the following fatal error:

        System.Runtime.InteropServices.COMException (0x80040154):
        Retrieving the COM  class factory for component with CLSID
        {9A8831F0-A263-11D1-8DCF-00A0C90FFFC2} failed due to the following error:…

Note that the actual CLSID displayed in the message depends on the ActiveX component that caused the problem.

The solution to this issue is simple: you just need to add a license to this controls, which you do by adding a set of keys to the registry. These keys are stored in the VB6Controls.reg file, which comes with Visual Studio .NET.

More details on the problem and its solution are provided in the following Microsoft KB article: http://support.microsoft.com/kb/318597/en-us.

Note: even if the abovementioned KB article explains that you need to merge the VB6Controls.reg file for all the ActiveX controls in the list, our tests show that you need to perform this operation on the end user’s computer only if the converted application uses RDO.DLL.

Previous | Index | Next 

Follow Francesco Balena on VB6 migration’s group on


Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.

Code Architects and its partners offers remote and onsite migration services.

More details

Subscribe to our free newsletter for useful VB6 migration tips and techniques.


To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice

A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial

The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote

Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers