Microsoft KB Archive/318597

= You receive an error message &quot;You do not have a license to use this control&quot; when you use Visual Basic 6.0 controls in Visual Studio 2005 or in Visual Studio .NET =

Article ID: 318597

Article Last Modified on 9/22/2006

-

APPLIES TO


 * Microsoft Visual Studio 2005 Standard Edition
 * Microsoft Visual Studio 2005 Professional Edition
 * Microsoft Visual Studio .NET 2003 Professional Edition
 * Microsoft Visual Studio .NET 2003 Enterprise Architect
 * Microsoft Visual Studio .NET 2003 Enterprise Developer
 * Microsoft Visual Studio .NET 2003 Academic Edition
 * Microsoft Visual Studio .NET 2002 Professional Edition
 * Microsoft Visual Studio .NET 2002 Enterprise Architect
 * Microsoft Visual Studio .NET 2002 Enterprise Developer
 * Microsoft Visual Studio .NET 2002 Academic Edition

-



This article was previously published under Q318597



Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows registry



SYMPTOMS
When you use Microsoft Visual Basic 6.0 ActiveX controls in Microsoft Visual Studio 2005 or in Microsoft Visual Studio .NET, you may experience the following problems:  When you try to add an ActiveX control that was included with Visual Basic 6.0 to a form in Visual Studio 2005 or in Visual Studio .NET, you receive the following error message:

You do not have a license to use this ActiveX control.

You can add the control to the toolbox successfully, but you receive this error message when you add the control at design time. When you upgrade a Visual Basic 6.0 project to Visual Studio 2005 or to Visual Studio .NET, you receive the following error message when the Upgrade Wizard parses in the forms:

Visual Basic Upgrade Wizard error

Upgrade failed: Exception occurred: Could not load referenced component: comdlg32.ocx(1.2.0)

You need to install this component before you upgrade the project. It is recommended you install VB6.0, with all referenced components, and ensure the application compiles and runs before upgrading.

When you click OK, the Upgrade Wizard closes, and the conversion process stops.



CAUSE
You must have a design-time license to use Visual Basic 6.0 ActiveX controls. These errors occur because the system registry does not contain the design-time license information. When you upgrade a project that contains Visual Basic 6.0 ActiveX controls, or when you try to use Visual Basic 6.0 ActiveX controls on a form in Visual Studio 2005 or in Visual Studio .NET, those controls must be installed and licensed on the target system.

Visual Studio 2005 and Visual Studio .NET do not install the license information for Visual Basic 6.0 ActiveX controls unless the Visual Basic 6.0 controls are installed on the computer that is running Visual Studio 2005 or Visual Studio .NET. This behavior may occur if Visual Basic 6.0 was never installed on the computer.

You do not receive these errors on a computer on which both Visual Basic 6.0 and Visual Studio 2005 or Visual Studio .NET are installed because Visual Basic 6.0 installs the components and registers the licenses.



RESOLUTION
To resolve this problem, you must install the .ocx files for the ActiveX controls on the computer before you upgrade the project or before you use Visual Basic 6.0 ActiveX controls on a form in Visual Studio 2005 or in Visual Studio .NET. To do this, use one of the following methods:
 * Install Visual Basic 6.0 on the computer that is running Visual Studio 2005 or Visual Studio .NET.
 * Add the licensing keys to the registry.

Method 1: Install Visual Basic 6.0 on the computer that is running Visual Studio 2005 or Visual Studio .NET
Unlike earlier versions of Visual Basic, there are no conflicts between Visual Basic 6.0 and Visual Studio 2005 or Visual Studio .NET when you install these programs on the same system. In many cases, Microsoft recommends that you install Visual Basic 6.0 on the computer that is running Visual Studio 2005 or Visual Studio .NET.

If Visual Basic 6.0 is available on the computer, you can change the original Visual Basic 6.0 project more easily before you upgrade to Visual Studio 2005 or to Visual Studio .NET. For more information about how to install Visual Basic 6.0 and how to upgrade a project from Visual Basic 6.0 to Visual Studio 2005 or to Visual Studio .NET, see the &quot;References&quot; section.

Method 2: Add the licensing keys to the registry
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

To add the licensing keys for the Visual Basic 6.0 controls to the registry, follow these steps:  Insert the Visual Studio 2005 or Visual Studio .NET Installation Disk that has the \Extras\VB6 Controls folder in the in the CD-ROM or DVD-ROM drive. The following list describes what disk to use for each product edition on CD-ROM:

Visual Studio 2005 (not the Microsoft Developer Network [MSDN] disk)  Professional Edition - Disk 2 Standard Edition - Disk 1</li></ul>

Note The VB6Controls.reg registry file is not on the distribution media for any Visual Studio 2005 product.

Visual Studio .NET 2003 (not the MSDN disk)  All Enterprise Editions - Disk 2</li> Professional Edition - Disk 2</li> Standard Edition - Disk 1</li> Academic Edition - Disk 2</li></ul>

Visual Studio .NET 2002 (not the MSDN disk)  All Enterprise Editions - Disk 4</li> Professional Edition - Disk 4</li> Standard Edition - Disk 3</li> Academic Edition - Disk 4</li></ul> </li> Click Start, and then click Run.</li> In the Run dialog box, type regedit, and then click OK.</li> In the Registry Editor dialog box, click Import on the File menu.</li> Locate the \Extras\VB6 Controls folder on the Installation CD-ROM, select the VB6Controls.reg file, and then click Open. This step inserts all of the Visual Basic 6.0 ActiveX Controls license keys in the registry.</li></ol>

<div class="status_section">

STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the &quot;Applies to&quot; section.

<div class="moreinformation_section">

MORE INFORMATION
The .ocx files are located in the SYSTEM32 subfolder of the Windows folder. The following list includes some of the ActiveX controls and their corresponding file names:
 * ADO Data Control 6.0 (OLEDB) - Msadodc.ocx
 * Chart Control 6.0 - Mschrt20.ocx
 * Chart Control 6.0 (OLEDB) - Mschrt20.ocx
 * Comm Control 6.0 - Mscomm32.ocx
 * Common Dialog Control 6.0 - Comdlg32.ocx
 * Data Bound Grid Control 5.0(SP3) - Dbgrid32.ocx
 * Data Bound List Controls 6.0 - Dblist32.ocx
 * DataGrid Control 6.0 (OLEDB) - Msdatgrd.ocx
 * DataList Control 6.0 (OLEDB) - Msdatlst.ocx
 * FlexGrid Control 6.0 - Msflxgrd.ocx*
 * Internet Transfer Control 6.0 - Msinet.ocx
 * MAPI Controls 6.0 - Msmapi32.ocx
 * Masked Edit Control 6.0 - Msmask32.ocx
 * Multimedia Control 6.0 - Mci32.ocx
 * RemoteData Control 6.0 - Msrdc20.ocx
 * PictureClip Control 6.0 - Picclp32.ocx
 * Rich TextBox Control 6.0 - Richtx32.ocx
 * SysInfo Control 6.0 - Sysinfo.ocx
 * Windowless Controls 6.0 - Mswless.ocx
 * Windows Common Controls - Comctl32.ocx
 * Windows Common Controls 6.0 - Mscomctl.ocx
 * Windows Common Controls-2 5.0 (SP2) - Comct232.ocx
 * Windows Common Controls-2 6.0 - Mscomct2.ocx
 * Windows Common Controls-3 6.0 - Comct332.ocx
 * Winsock Control 6.0 - Mswinsck.ocx


 * In Visual Studio .NET 2002, the VB6Controls.reg file that included the license for FlexGrid Control 6.0 is wrong. However, in Visual Studio .NET 2003, the VB6Controls.reg file has been corrected.

Note You must have a Visual Studio license agreement to get this corrected Vb6control.reg file. There is no charge for this support service.

For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

<div class="moreinformation_section">

Error when you try to add an ActiveX control to a form in Visual Studio 2005 or in Visual Studio .NET
<ol> Install Visual Studio 2005 or Visual Studio .NET on Computer A. Make sure that Visual Basic 6.0 has never been installed on this computer.</li> <li>Install only Visual Basic 6.0 on Computer B.</li> <li>Copy a Visual Basic .ocx file from the SYSTEM32 folder of Computer B to the SYSTEM32 folder of Computer A.</li> <li>On Computer A, start Visual Studio 2005 or Visual Studio .NET, and then create a new Windows Application project in Microsoft Visual Basic 2005 or in Microsoft Visual Basic .NET.</li> <li>Right-click in the toolbox, and then click Customize Toolbox.</li> <li>On the COM Components tab, click Browse.</li> <li>Select the .ocx file that you copied in step 3, and then click Open. Notice that the control is added to the list and that its check box is selected. Click OK.</li> <li>Drag the ActiveX control from the toolbox onto the form. You receive the following error message:

You do not have a license to use this ActiveX control.

</li></ol>

Upgrade Wizard error
<ol> <li>Install Visual Studio 2005 or Visual Studio .NET on a computer where Visual Basic 6.0 has never been installed.</li> <li>Start Visual Studio 2005 or Visual Studio .NET.</li> <li>On the File menu, click Open.</li> <li>Select a Visual Basic 6.0 project that contains an ActiveX control on the form, and then click OK. This starts the Upgrade Wizard.</li> <li>Complete the steps in the Upgrade Wizard. You receive the following error message:

Visual Basic Upgrade Wizard error

Upgrade failed: Exception occurred: Could not load referenced component: comdlg32.ocx(1.2.0)

You need to install this component before you upgrade the project. It is recommended you install VB6.0, with all referenced components, and ensure the application compiles and runs before upgrading.

</li> <li>Click OK in the error message dialog box. Notice that the Upgrade Wizard closes.</li></ol>

<div class="references_section">