Development : Is Visual Basic 6.0 Runtime still supported?

We get many request/references regarding support of Visual Basic 6.0 runtime support for various Microsoft Operating systems including MS Windows 7.

There is a wonderful article regarding this MSDN article titled “Support Statement for Visual Basic 6.0 on Windows Vista, Windows”. It states that the “…Visual Basic team is committed to “It Just Works” compatibility for Visual Basic 6.0 applications on Windows Vista, Windows Server 2008 including R2, and Windows 7. The Visual Basic team’s goal is that Visual Basic 6.0 applications that run on Windows XP will also run on Windows Vista, Windows Server 2008 and Windows 7. The Visual Basic team is also committed to the Visual Basic 6.0 development environment running on Windows Vista, Windows Server 2008 and Windows 7…”   

In short, as detailed in this document, the core Visual Basic 6.0 runtime will be supported for the full lifetime of Windows Vista, Windows Server 2008 and Windows 7, which is five years of mainstream support followed by five years of extended support (http://support.microsoft.com/gp/lifepolicy).

We need to understand certain things here. I want to provide certain excerpts out of this Support statement. In general, Visual Basic 6.0 is made up of these key deliverables:

· Visual Basic 6.0 IDE [Integrated Development Environment]
· Visual Basic 6.0 Runtime -- the base libraries and execution engine used to run VB 6.0 applications
· Visual Basic 6.0 Runtime Extended Files – select ActiveX control OCX files, libraries, and tools shipping with the IDE media and as an online release

The Visual Basic 6.0 IDE

The Visual Basic 6.0 IDE will be supported on Windows Vista and Windows Server 2008 as part of the Visual Basic 6.0 Extended Support policy until April 8, 2008.  Both the Windows and Visual Basic teams tested the Visual Basic 6.0 IDE on Windows Vista and Windows Server 2008.  This announcement does not change the support policy for the IDE.

The Visual Basic 6.0 Runtime

The Visual Basic 6.0 runtime is defined as the compiled binary files originally included in the redistribution list for Visual Basic 6.0.  These files were marked as distributable in the original Visual Basic 6.0 license.  Examples of these files include the Visual Basic 6.0 runtime library (msvbvm60.dll), controls (i.e. msflxgrd.ocx) along with runtime support files for other major functional areas (i.e. MDAC).     

The runtime is divided into the three groups:

· Supported Runtime Files – Shipping in the OS: Key Visual Basic 6.0 runtime files, used in the majority of application scenarios, are shipping in and supported for the lifetime of Windows Vista, or Windows Server 2008, or Windows 7. This lifetime is five years of mainstream support and five years of extended support from the time that a given version of Windows ships.  These files have been tested for compatibility as part of our testing of Visual Basic 6.0 applications running on Windows Vista.  Note: the list of files shipping in Windows Vista, Windows Server 2008, Windows 7, and Windows XP are nearly identical and redist requirements for applications should be nearly identical.  One key difference is TriEdit.dll was removed from Windows Vista and later versions.  

· Supported Runtime Files – Extended Files to Distribute with your application: extended list of key controls, libraries, and tools that are installed from the IDE media or from Microsoft.com to the developer machine.  Typically the VB6 IDE installed these controls to the developer machine by default.  The developer still needs to redistribute these files with the application.  The supported version of the files is available online on the Microsoft Download Center (http://go.microsoft.com/fwlink/?LinkID=142927).

· Unsupported Runtime Files: Some files have either fallen out of mainstream support or they were never included as a part of the runtime redist (e.g. they were included in \Tools folder on the IDE media to support legacy VB4/VB5 applications or they were 3rd party controls).  These files are not supported on Windows Vista or Windows Server 2008; instead they are subject to whatever support agreement applies to the media they were shipped with.  These files have been tested to work on Vista as part of our application compatibility and testing process, but this implies no warranties around support and servicing.  In some instances, later versions of these libraries are supported.  Details on backward compatibility or migration to supported versions are provided below.

The Visual Basic 6.0 runtime has been tested for compatibility between Windows XP and Windows Vista / Windows Server 2008/Windows 7 with a goal that applications work similarly on these operating systems.  As with any release of the operating system, there may be differences in functionality that will require modifications to your applications.  These differences will be addressed on a case-by-case basis via normal support channels.  Any issues that are found will be documented on the Visual Basic Support site (http://msdn2.microsoft.com/en-us/vbasic/ms789193.aspx).  

For specific details on the files included in each support group see the “Runtime Definition” section below.

Visual Basic 6.0 Support Lifetime

Supporting and/or shipping Visual Basic 6.0 runtime binaries on Windows Vista/Windows Server 2008/Windows 7 does not change the support policy for the Visual Basic 6.0 IDE or Visual Studio 6.0 IDE as a whole.  Those products will move out of extended support in April 8, 2008.

Further details on the support policy for the Visual Basic 6.0 and Visual Studio 6.0 products can be found at http://msdn2.microsoft.com/en-us/vstudio/aa718686.aspx.     Details on the support lifecycle of Microsoft products can be found at http://support.microsoft.com/gp/lifepolicy.   As a part of this support lifecycle, Microsoft will continue to support the Visual Basic 6.0 runtime on Windows NT 4.0, Windows 2000, Windows XP and Windows Server 2003 for the support lifetime of those operating systems.  This means, for example, that the Visual Basic 6.0 runtime will be supported on Windows Server 2003 until June, 2008 for Mainstream Support and June, 2013 for Extended Support.

For more details on the support lifecycle or to find out about additional support options, please visit our support page at http://www.microsoft.com/support

64-Bit Windows

Visual Basic 6.0 runtime files are 32-bit.  These files ship in 64-bit Windows Operating Systems referenced in the table below.  32-bit VB6 applications and components are supported in the WOW emulation environment only.  32-bit components must also be hosted in 32-bit application processes.

The Visual Basic 6.0 IDE has never been offered in a native 64-bit version, nor has the 32-bit IDE been supported on 64-bit Windows.  VB6 development on 64-bit Windows is not and will not be supported.

Windows 7

Since the initial release of this support statement, the Windows 7 operating system has been announced.  This document has been updated to clarify Microsoft’s support for VB6 on Windows 7.

VB6 runtime will ship and will be supported in Windows 7 for the lifetime of the OS.  Developers can think of the support story for Vista being the same as it is for Windows 7.  However there are no plans to include VB6 runtime in future versions of Windows beyond Windows 7.

Supported Windows Operating System Versions

This section provides additional information regarding the operating systems that offer some level of support for VB6. 

Windows Operating System

Has support?

VB6 Supported Runtime - Files Shipping in Windows

VB6 Supported Runtime – Extended Files to Distribute with Your Application

VB6 IDE

Windows 7, all 32bit editions

Yes *

Yes *

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows 7, all 64bit editions

Yes* 32bit apps running in WOW only

Yes* 32bit apps running in WOW only

No

Windows Vista, all 32bit editions

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows Vista, all x64 editions

Yes*

32bit apps running in WOW only

Yes*

32bit apps running in WOW only

No

Windows Server 2008, all 32bit editions including R2

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows Server 2008, all x64 editions including R2

Yes*

32bit apps running in WOW only

Yes*

32bit apps running in WOW only

No

Windows XP, all 32bit editions

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows XP, all x64 editions

Yes*

32bit apps running in WOW only

Yes*

32bit apps running in WOW only

No

Windows 2003 server, all 32bit editions including R2

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows 2003 server. all x64 editions including R2

Yes*

32bit apps running in WOW only

Yes*

32bit apps running in WOW only

No

Windows 2000 Professional, all editions

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

Windows 2000 Server, all editions

Yes*

Yes*

Yes*, Extended support until April 2008, Custom Support after April 2008

* VB6 runtime support is limited by the OS support lifecycle.  E.g. if the target OS is in Extended support, VB6 cannot have a higher level of support than Extended support.  

Visual Basic 6.0 Runtime Usage Inside VBA and Office

Visual Basic for Applications, or VBA, is a distinct technology commonly used for application automation and macros inside of other applications, most commonly inside Microsoft Office applications.  VBA ships as a part of Office and therefore the support for VBA is governed by the support policy of Office.  However, there are situations where VBA is used to call or host Visual Basic 6.0 runtime binaries and controls.  In these situations, Visual Basic 6.0 supported runtime files in the OS and the extended file list are also supported when used inside of a supported VBA environment.

For VB6 runtime scenarios to be supported inside VBA, all of the following must be true:

· The host OS version for VB runtime is still supported

· The host version of Office for VBA is still supported

· The runtime files in question are still supported

Visual Basic Script (VBScript)

VBScript is unrelated to Visual Basic 6.0 and this support statement.  However, VBScript is currently shipping as a part Windows Vista, Windows Server 2008 and Windows 7 and is governed by the OS support lifecycle.   

Third Party Components

Microsoft is unable to provide support for third party components, such as OCX/ActiveX controls.  Customers are encouraged to contact the original control vendor for details on support for those components.

Reporting Issues with VB 6.0 Application Running on Windows Vista, and Windows 7

Developers planning to use Visual Basic 6.0 with Windows Vista should install Windows Vista and begin application compatibility testing using original application acceptance testing.

If you find an issue with your Visual Basic 6.0 application running on Windows Vista or Windows 7 (where the same code worked as expected on Windows XP), please follow your normal support channels to report the issue.

Supported and Shipping in Windows Vista, Windows Server 2008, and Windows 7

atl.dll asycfilt.dll comcat.dll compobj.dll dbnmpntw.dll dcomcnfg.exe dllhost.exe ds16gt.dll ds32gt.dll expsrv.dll hh.exe hhctrl.ocx imagehlp.dll iprop.dll itircl.dll itss.dll mfc40.dll mfc42.dll mfc42enu.dll msadce.dll msadcer.dll msadcf.dll msadcfr.dll msadco.dll

msadcor.dll msadcs.dll msadds.dll msaddsr.dll msader15.dll msado15.dll msador15.dll msadrh15.dll mscpxl32.dll msdadc.dll msdaenum.dll msdaer.dll msdaora.dll msdaosp.dll msdaprst.dll msdaps.dll msdasc.dll msdasql.dll msdasqlr.dll msdatsrc.tlb msdatt.dll msdfmap.dll msdfmap.ini msjtes40.dll

msorcl32.dll msvbvm60.dll msvcirt.dll msvcrt.dll msvcrt40.dll mtxdm.dll mtxoci.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbcad32.exe odbccp32.cpl odbccp32.dll odbccr32.dll odbccu32.dll odbcint.dll odbcji32.dll odbcjt32.dll odbctrac.dll oddbse32.dll odexl32.dll odfox32.dll odpdx32.dll odtext32.dll

ole2.dll ole32.dll oleaut32.dll oleaut32.dll oledb32.dll oledb32r.dll oledlg.dll olepro32.dll olethk32.dll regsvr32.exe rpcns4.dll rpcrt4.dll scrrun.dll secur32.dll simpdata.tlb sqloledb.dll sqlsrv32.dll stdole2.tlb stdole32.tlb storage.dll vbajet32.dll vfpodbc.dll

Supported Runtime Files to Distribute with Your Application

comct232.ocx comct332.ocx comctl32.ocx comdlg32.ocx dbadapt.dll dbgrid32.ocx dblist32.ocx mci32.ocx msadodc.ocx

msbind.dll mscdrun.dll mschrt20.ocx mscomct2.ocx mscomctl.ocx mscomm32.ocx msdatgrd.ocx msdatlst.ocx msdatrep.ocx

msdbrptr.dll msflxgrd.ocx mshflxgd.ocx mshtmpgr.dll msinet.ocx msmapi32.ocx msmask32.ocx msrdc20.ocx msrdo20.dll

msstdfmt.dll msstkprp.dll mswcrun.dll mswinsck.ocx picclp32.ocx richtx32.ocx sysinfo.ocx tabctl32.ocx

Unsupported, But Supported and Compatible Updates or Upgrades are Available

dao350.dll mdac_typ.exe mschart.ocx msdaerr.dll msdatl2.dll

msexch35.dll msexcl35.dll msjet35.dll msjint35.dll msjt4jlt.dll

msjter35.dll msjtor35.dll msltus35.dll mspdox35.dll msrd2x35.dll

msrepl35.dll mstext35.dll msxbse35.dll odbctl32.dll oledb32x.dll

Unsupported Runtime Files

anibtn32.ocx graph32.ocx keysta32.ocx autmgr32.exe autprx32.dll racmgr32.exe racreg32.dll grid32.ocx msoutl32.ocx

spin32.ocx gauge32.ocx gswdll32.dll ciscnfg.exe olecnv32.dll rpcltc1.dll rpcltc5.dll rpcltccm.dll rpclts5.dll

rpcltscm.dll rpcmqcl.dll rpcmqsvr.dll rpcss.exe dbmsshrn.dll dbmssocn.dll windbver.exe msderun.dll odkob32.dll

rdocurs.dll vbar332.dll visdata.exe vsdbflex.srg threed32.ocx MSWLess.ocx tlbinf32.dll triedit.dll

Localization Support Binaries

The following binaries are necessary for supporting Visual Basic 6.0 applications running on localized versions of the Vista and Windows 7 operating system.  They are supported but are not shipped in Vista.  These files are required to be shipped with your application setup.

Supported Runtime Files to Distribute with Your Application

JPN

KOR

CHT

CHS

mfc42jpn.dll scrrnjp.dll vb6jp.dll cmct2jp.dll cmct3jp.dll mscc2jp.dll cmctljp.dll cmdlgjp.dll mscmcjp.dll dbgrdjp.dll dblstjp.dll mcijp.dll msadnjp.dll adodcjp.dll mschtjp.dll msch2jp.dll mscomjp.dll datgdjp.dll datlsjp.dll datrpjp.dll dbrprjp.dll flxgdjp.dll mshfgjpn.dll htmprjp.dll inetjp.dll msmpijp.dll msmskjp.dll rdc20jp.dll rdo20jp.dll stdftjp.dll mswcrjp.dll winskjp.dll pcclpjp.dll rchtxjp.dll sysinjp.dll tabctjp.dll

mfc42kor.dll scrrnko.dll vb6ko.dll cmct2ko.dll cmct3ko.dll mscc2ko.dll cmctlko.dll cmdlgko.dll mscmcko.dll dbgrdko.dll dblstko.dll mciko.dll msadnko.dll adodcko.dll mschtko.dll msch2ko.dll mscomko.dll datgdko.dll datlsko.dll datrpko.dll dbrprko.dll flxgdko.dll mshfgkor.dll htmprko.dll inetko.dll msmpiko.dll msmskko.dll rdc20ko.dll rdo20ko.dll stdftko.dll mswcrko.dll winskko.dll pcclpko.dll rchtxko.dll sysinko.dll tabctko.dll

mfc42cht.dll scrrncht.dll vb6cht.dll cmct2cht.dll cmct3cht.dll mscc2cht.dll cmctlcht.dll mscmccht.dll cmdlgcht.dll dbgrdcht.dll dblstcht.dll mcicht.dll msadncht.dll adodccht.dll mschtcht.dll msch2cht.dll mscomcht.dll datgdcht.dll datlscht.dll datrpcht.dll dbrprcht.dll flxgdcht.dll mshfgcht.dll htmprcht.dll inetcht.dll msmpicht.dll msmskcht.dll rdc20cht.dll rdo20cht.dll stdftcht.dll mswcrcht.dll winskcht.dll pcclpcht.dll rchtxcht.dll sysincht.dll tabctcht.dll

mfc42chs.dll scrrnchs.dll vb6chs.dll cmct2chs.dll mscc2chs.dll cmct3chs.dll cmctlchs.dll mscmcchs.dll cmdlgchs.dll dbgrdchs.dll dblstchs.dll mcichs.dll msadnchs.dll adodcchs.dll mschtchs.dll msch2chs.dll mscomchs.dll datgdchs.dll datlschs.dll datrpchs.dll dbrprchs.dll flxgdchs.dll mshfgchs.dll htmprchs.dll inetchs.dll msmpichs.dll msmskchs.dll rdc20chs.dll rdo20chs.dll stdftchs.dll mswcrchs.dll winskchs.dll pcclpchs.dll rchtxchs.dll sysinchs.dll tabctchs.dll

ITA

FRA

ESP

DEU

mfc42ita.dll scrrnit.dll vb6it.dll cmct2it.dll mscc2it.dll cmct3it.dll cmctlit.dll mscmcit.dll cmdlgit.dll dbgrdit.dll dblstit.dll mciit.dll msadnit.dll adodcit.dll mschtit.dll msch2it.dll mscomit.dll datgdit.dll datlsit.dll datrpit.dll dbrprit.dll flxgdit.dll mshfgit.dll htmprit.dll inetit.dll msmpiit.dll msmskit.dll rdc20it.dll rdo20it.dll stdftit.dll mswcrit.dll winskit.dll pcclpit.dll rchtxit.dll sysinit.dll tabctit.dll

mfc42fra.dll scrrnfr.dll vb6fr.dll cmct2fr.dll mscc2fr.dll cmct3fr.dll cmctlfr.dll mscmcfr.dll cmdlgfr.dll dbgrdfr.dll dblstfr.dll mcifr.dll msadnfr.dll adodcfr.dll mschtfr.dll msch2fr.dll mscomfr.dll datgdfr.dll datlsfr.dll datrpfr.dll dbrprfr.dll flxgdfr.dll mshfgfr.dll htmprfr.dll inetfr.dll msmpifr.dll msmskfr.dll rdc20fr.dll rdo20fr.dll stdftfr.dll mswcrfr.dll winskfr.dll pcclpfr.dll rchtxfr.dll sysinfr.dll tabctfr.dll

mfc42esp.dll scrrnes.dll vb6es.dll cmct2es.dll mscc2es.dll cmct3es.dll cmctles.dll mscmces.dll cmdlges.dll dbgrdes.dll dblstes.dll mcies.dll msadnes.dll adodces.dll mschtes.dll msch2es.dll mscomes.dll datgdes.dll datlses.dll datrpes.dll dbrpres.dll flxgdes.dll mshfges.dll htmpres.dll inetes.dll msmpies.dll msmskes.dll rdc20es.dll rdo20es.dll stdftes.dll mswcres.dll winskes.dll pcclpes.dll rchtxes.dll sysines.dll tabctes.dll

mfc42deu.dll scrrnde.dll vb6de.dll cmct2de.dll mscc2de.dll cmct3de.dll cmctlde.dll mscmcde.dll cmdlgde.dll dbgrdde.dll dblstde.dll mcide.dll msadnde.dll adodcde.dll mschtde.dll msch2de.dll mscomde.dll datgdde.dll datlsde.dll datrpde.dll dbrprde.dll flxgdde.dll mshfgde.dll htmprde.dll inetde.dll msmpide.dll msmskde.dll rdc20de.dll rdo20de.dll stdftde.dll mswcrde.dll winskde.dll pcclpde.dll rchtxde.dll sysinde.dll tabctde.dll

Hope this helps.