Visual Studio 97 Service Pack 2 Readme

Article translations Article translations
Article ID: 172610 - View products that this article applies to.
This article was previously published under Q172610
Expand all | Collapse all


This is a copy of the Visual Studio 97 Service Pack 2 Readme (English language version).


Microsoft Visual Studio 97 Service Pack 2 Readme

The Microsoft Visual Studio 97 Service Pack 2 Readme contains the following

 - Microsoft Visual Studio 97 Service Pack 2 provides an overview of Visual
   Studio Service Pack 2.

 - Installing the Microsoft Visual Studio 97 Service Pack 2 provides
   installation and setup instructions.

 - Notes on Fixes in the Visual Studio 97 Service Pack 2 provides overall
   information on the fixes and the interactions with other products.

 - Finding More Information on Issues Resolved with This Service Pack
   provides instructions on how to search online for the Knowledge Base
   articles, and a list of the fixes and their summaries.

 - Welcome to Visual Basic 5.0 Service Pack 2 contains the Visual Basic
   Readme for this Service Pack.

Microsoft Visual Studio 97 Service Pack 2

The Microsoft Visual Studio 97 Service Pack 2 includes all of the fixes in
Service Pack 1 and upgrades the following Visual Studio applications:

 Microsoft Visual Studio 97 (Professional and Enterprise Editions)
 Microsoft Visual Basic, version 5.0 (Professional and Enterprise Editions)
 Microsoft Visual C++, version 5.0 (Professional and Enterprise Editions)
 Microsoft Visual InterDev
 Microsoft Visual J++, version 1.1
 Microsoft Visual SourceSafe, version 5.0
 Microsoft Visual FoxPro, version 5.0
 Microsoft Developer Network (MSDN) Library

These Visual Studio applications should be shut down before installing this
Service Pack. Install this Service Pack whenever you have updated or
changed any of the applications in Visual Studio to ensure that you have
the latest fixes.

Installing the Microsoft Visual Studio 97 Service Pack 2

To install the Service Pack, insert the compact disc into your computer's
CD-ROM drive. If you have downloaded and decompressed the Service Pack, or
if the Service Pack Setup does not automatically launch, go to the root
directory of the Service Pack and run Setup. The setup.exe will detect the
language of your computer's operating system and run one of the following

 \fra\setup (French)
 \deu\setup (German)
 \enu\setup (English)
 \jpn\setup (Japanese)
 \esp\setup (Spanish)
 \kor\setup (Korean)
 \chs\setup (Simplified Chinese)
 \cht\setup (Traditional Chinese)
 \ita\setup (Italian)

The Service Pack Setup detects any installed Visual Studio applications and
the specific languages those applications use. (Files are checked for
language, determined by the operating system settings and the individual
file settings.) This Service Pack supports the following languages: Czech,
English, French, German, Italian, Japanese, Korean, Portuguese, Russian,
Simplified Chinese, Spanish, and Traditional Chinese.

During the installation, the Service Pack displays the files to be
installed or updated based on the installed applications detected. After
updating your installation of any of the Visual Studio applications, the
Service Pack appends any actions to the VS97SP2.log file, which is stored
in the root directory of the drive where Windows is installed. If you run
the Service Pack again, any additional file updates are appended to the end
of the log file.

Determining the Files That Setup Installs

Setup does not install all the files included in this Service Pack on your

If the file does not exist already on your computer, in most cases Setup
will not install an update for it. Setup does not make any entries in the
log for files that are not present.

If the file on your computer is a more recent version than the one in the
Service Pack, Setup will not update the file on your computer. The setup
log will state "File is up to date" for each file on your computer that is
the same version or more recent than what is on the Service Pack.

Some .cab files are included in the Service Pack for redistribution only.
Setup does not install them as part of the product update. You must copy
them from the compact disc as needed.

Interpreting the Setup Log File

Setup will perform one of two actions for each file in its file list. If
Setup detects that a file is not installed on your computer and the file is
not required, Setup will neither install it nor create a report in the log.
Otherwise, Setup will report in the log one of the following conditions for
each file in its list:

 - "Copied successfully": The file on your computer was successfully
   updated with the file in Setup's list.

 - "Rename on reboot": The file on your computer was in use during the
   copy process. It will be replaced with the Service Pack copy on the next
   system reboot.

 - "File is up to date": The Service Pack file contains version
   information and the file on your computer is the same or a later
   version. (Setup will also report this message if the date of any file
   that does not contain version information, such as a text file, on your
   computer is later than the date of the Service Pack file.)

All other errors, such as "Access denied" or "The system cannot find the
path specified," are the operating system's error message for a particular
problem. These errors indicate that Setup could not update the file.

Updating Files You Previously Modified

The primary way Setup determines which files to replace is by checking the
version information in a file's resources. However, some files, such as
text files and non-binary files, have no resource information. In these
cases, Setup uses the time stamp to determine which files need to be

If you have altered the time stamp on any of the Visual Studio component
text files or files that do not have version information, then Setup may
not replace those files. Source files and header files are examples of some
files you might have changed.  Please check the setup log to determine
which files have been updated. You must evaluate each of the files that is
not updated to determine whether you should use the Service Pack version.

Determining the Update History of the Products Based on File Versions

To determine which updates have been made since the initial release of a
product, you will need to examine the version number in the properties of
one or more files.

To determine the update status of a product:

1. Look in the table below to determine which file you want to examine. In
   some cases, you may need to examine more than one file to determine
   fully the product's update history.

2. For each file, right-click the file in Windows Explorer, then click

3. Click the Versions tab and compare the version listed with the version
   in the table.

The following table lists the developer tools that shipped in 1997 and have
been updated in a Visual Studio 97 Service Pack. It also lists the key
files you should check to ascertain version information:

                                       Version on
   Product               Files         Release     SP1         SP2
   Visual Basic 5.0      setupwiz.exe  5.00.3716   5.00.3905   5.00.3905
                         vb5ide.dll    5.00.3724   ---         5.00.4319

   Visual C++ 5.0        link.exe      5.00.7022   5.02.7132   5.02.7132
                         eecxx.dll     5.00.7122   ---         5.00.7198

   Visual InterDev 1.0   devisws.pkg   5.00.7022   5.00.7087   No update

   Visual J++ 1.1        devjava.pkg   5.00.7022   5.00.7128   5.00.7128
                         devdbg.pkg    5.00.7022   5.00.7128   5.00.7198

   Visual SourceSafe 5.0 ssscc.dll     5.00.2218   5.00.2219   5.00.2220

   Visual FoxPro 5.0     vfp.exe       Build 402   No update   Build 412

NOTE: "No update" means that the product has no updates in the Service
Pack. Also note that even for updated products, some of the files did not
change from one service pack to the next.

The InfoViewer tool is used to display online help for Visual Studio and
MSDN. It has also been updated several times.

               Version on
   Files       Release     MSDN April  SP1         MSDN July   SP2
   ivauto.dll  5.00.7022   5.00.7022   5.00.7055   5.00.7055   5.00.7198
   deviv.pkg   5.00.7022   5.00.7022   ---         5.00.7022   5.00.7198

Uninstalling the Visual Studio 97 Service Pack

The Service Pack cannot be uninstalled independently of the product tools
being updated. To uninstall the Service Pack updates to a Visual Studio 97
tool, such as Visual C++ or Visual Basic, you must uninstall the tool. The
Service Pack updates will be uninstalled with it. Then, reinstall the tools
without the updates.

Because many interdependent components of the Visual Studio 97 tools are
simultaneously updated by the Service Pack, the products may become
unstable if you roll back of some of the updates, or if you run Setup in
maintenance mode from the original product compact disc. This instability
can occur because of the combination of files that are updated and files
that are not updated.

To avoid an unstable combination of updated and old files, you must remove
all of the Visual Studio 97 tools completely if you want to remove the
Service Pack updates or if you want to remove parts of the product. If you
had not installed everything in your Visual Studio suite before applying
the Service Pack and you now want to add some of the remaining components,
make the additions first, then apply the Service Pack.

Notes on Fixes in the Visual Studio Service Pack 2

Microsoft Visual Studio 97 Service Pack 2 includes all of the fixes in
Service Pack 1.

NOTE: Do not use the Microsoft Utility RegClean 4.1 with Visual Studio or
any Visual Studio Applications.

If you run RegClean 4.1 (build 97.71), you might find (if you have Visual
C++ Enterprise or Visual Basic Enterprise installed) that the Database
Designer no longer works, or (if you have Visual InterDev installed)
the Database Designer and LinkView tools no longer work. If you have run
RegClean, then reinstall the Visual Studio applications as appropriate.

Active Server Pages (ASP) Browser Component Does Not Recognize the Browser

If you are installing a new release of Microsoft Internet Explorer or
Netscape Navigator, the ASP browser component object may not work in Visual
Studio. The string identifying the browser may not be present in the
browsecap.ini file, which is located on the Web server. The solution is to
either manually change the file or download a newer version of the file
from the Internet Information Server (IIS) Web site.

The version of the browsecap.ini file that currently ships with the Visual
InterDev server components does not recognize Microsoft Internet Explorer
3.02 as a valid browser. This results in an error when running an .asp page
using the browser component in Microsoft Internet Explorer 3.02.

An updated version of the browsecap.ini file as well as a 1.0b updated
version of Active Server Pages is available at: Once there, click the "get IIS" button and
choose "Other free software," then "Updates for IIS." Choose a new
compressed or uncompressed browsecap.ini file to download.

A full download of Active Server Pages English 1.0b is available under "get
iis" as well. The 1.0b English version provides full DBCS enabling and some

Updates to SQL Server and Visual Database Tools

You must download SQL Server Service Pack 3 for working with Visual
Database Tools and/or Visual InterDev.

The SQL Server Service Pack 3 is available at:

SQL Server Service Pack 3 fixes several issues with the relational engine
of Visual Database Tools including:

 - A query with two or more RIGHT/LEFT OUTER JOIN clauses resulted in a
   syntax error.  Now they parse correctly and generate the correct result.

 - Some "complex" queries and views with five or more tables would stop the
   server.  This resulted in a TDS Protocol error and a subsequent stop of
   Visual Studio. This issue has been corrected.

Visual Database Tools/Visual InterDev still requires, as a minimum, SQL
Server Service Pack 1, but installing SQL Server Service Pack 3 is

Microsoft Internet Explorer Security Options and InfoViewer

InfoViewer, the integrated online documentation viewer included with MSDN
and Visual Studio, relies on the Microsoft Internet Explorer security
settings for active content. The online documentation included with MSDN
and Visual Studio includes some active content. If you set your Microsoft
Internet Explorer security's maximum security options while browsing the
World Wide Web, some types of hyperlinks in your online documentation will
not work.

Allowing Microsoft Internet Explorer to download an ActiveX control and
then automatically executing the downloaded code is a legitimate security
concern. However, you can protect against this problem and still use the
online documentation included with MSDN and Visual Studio. To do so,
complete the following steps.

1. On the View menu in Microsoft Internet Explorer, click Options.

2. Click Security.

3. Make the following changes under "Active Content:"

   a. Clear the "Allow downloading of active content" check box.
   (This option ensures that no unknown active content will be downloaded
   from a World Wide Web site.)

   b. Select the "Enable ActiveX controls and plug-ins" check box.
   (This option enables local ActiveX controls, such as those supplied with
   MSDN and InfoViewer, to execute.)

   c. Select the "Run ActiveX scripts" check box.
   (This option allows local ActiveX scripts to execute.)

4. Click OK.

5. Restart Visual Studio.

Special Instructions for Visual C++ for Microsoft Windows CE

Customers of Visual C++ for Windows CE may experience problems with the
Visual Studio family of products. If you want to install any part of the
Visual Studio Service Pack, please uninstall Visual C++ for Windows CE
first. If you encounter any problems using Visual C++ for Windows CE with
Visual Studio, please call Visual C++ for Windows CE product support. If
further information becomes available, it will be posted on the web site
for Visual Studio 97 Service Packs (
and in the Knowledge Base (available on the web at

Updating Visual C++ .map Files

Visual Studio 97 Service Pack 2 updates the following .map files if you
installed them in your system or system32 directory with Visual C++ 5.0.
If you installed these .map files to a different location, used some
derivative of these files, or used the .map files directly from the Visual
C++ 5.0 compact disc, you will need to update these files manually or
reference them directly from the Service Pack 2 compact disc. You can find
the Service Pack 2 updates to these files in the \all\vc\debug directory on
the Visual Studio Service 97 Pack 2 compact disc:

Microsoft Transaction Server Updates

This Service Pack does not include any updates to the Microsoft Transaction
Server. To gain access to the Microsoft Transaction Server service packs
released since it shipped with the Enterprise Editions of Visual Studio 97,
Visual Basic 5.0, and Visual C++ 5.0, go to  This site contains pointers
to Microsoft Transaction Server 1.1 for x86, Service Pack 2 for Digital
Alpha, and the Microsoft Transaction Server SDK beta.

InstallShield Express for Japanese Visual C++ 5.0

The additional files required for the custom edition of InstallShield
Express that is included with the Japanese release of Visual C++ 5.0 are
now available. Please refer to \jpn\IShield\readme.txt for details.

Finding More Information on Issues Resolved with This Service Pack

The Microsoft Knowledge Base contains articles that provide more in-depth
information about the Visual Studio issues that are fixed in this Service
Pack. To locate these articles, go to 
and follow the instructions below to build a query.

To build a Visual Studio Service Pack query:

1. Choose a product. (In this case, click "Any Products.")

2. Specify the type of search. This should be set to "Search the article

3. Enter the following as your search phrase:


4. Click "Begin Search."

Knowledge Base articles that contain VS97FixlistSP2 but do not contain
VS97FixlistSP1 describe fixes that were added in Service Pack 2. Because
Service Pack 2 includes all of the fixes in Service Pack 1, all of the
articles describing the fixes in Service Pack 1 will contain both keywords
VS97FixlistSP1 and VS97FixlistSP2. To find just those new items that were
fixed in Service Pack 2, search for:

    VS97FixlistSP2 and not VS97FixlistSP1

For a file containing all of the text from all of the Knowledge Base
articles, look on the web site for Visual Studio 97 Service Packs:

InfoViewer KB Articles

Service Pack 1 fixes some problems with saving samples to directories that
contain high-ASCII characters in the path.

Q168264   Copying Samples to a Dir with High ASCII Stops File I/O
Q168265   Error "Microsoft Jscript error" After Copying Sample

Service Pack 2 fixes a bug preventing the download of samples with certain
versions of Microsoft Internet Explorer. It also fixes a search results-
related performance problem in which Developer Studio sometimes uses 100
percent of idle time. The Service Pack fixes a bug that causes repeated
"Merging keywords" for anyone who does not have administrator privileges in
Windows NT. It fixes a limitation on the total number of
InfoViewer titles.

Q171844   InfoViewer Cannot Download Samples if IE4.0 is Installed
Q171845   Results List Uses 100% of CPU on Idle
Q171846   Limit on the Total Number of InfoViewer Titles
Q171847   Merging Keywords for Search Requires Admin Privileges

Visual Basic 5.0 KB Articles

For a more thorough discussion of Visual Basic 5.0 fixes in Service Pack 2,
go to the end of this file where the Visual Basic 5.0 Service Pack 2 Readme
is appended.

The Service Packs address problems in dbgrid32.ocx, msrdc20.ocx, and
msrdo20.dll related to data-binding and other issues. Also included are
fixes for the incompatibility problems with comctl32.ocx. There is also an
update to the Visual Basic 5.0 Setup Kit and some of the .cab files for the
ActiveX component download. These .cab files are not installed by the
Visual Studio Service Pack but are included on the Service Pack compact

Q167122   FindItem Method of ListView Incorrectly Returns an Error
Q167123   COMCTL32.OCX Is Binary Incompatible with Previous Version
Q167947   ODBC CAB File Does Not Install 16-bit ODBC Files
Q167948   Internet Component Download Fails After Using Setup Toolkit
Q167950   DAO Internet Component Download Fails to Install

Q167951   AUTMGR32.EXE Fails After Component Download
Q168153   DBGrid Bound to RDC Displays a Single Row After MoveLast
Q168155   Crash When Resizing Column of Split DBGrid
Q168156   DBGrid Bound to RDC Displays Small ResultSets Incorrectly
Q168157   Problems Binding Multiple Controls to RDC 2.0

Q168158   Can't Close Resultset if DBGrid Bound to RDC
Q168159   DBCombo Updates Incorrectly When Using RDC Bound ListSource
Q168160   Error on Update After AddNew With RDC and Bound Controls
Q168161   Distributed Transaction Fails On Subsequent Runs
Q168162   RDO Move 0 Fails to Refresh Record

Q168163   Memory Leak When Calling UserConnection Query Event
Q169302   Get_Item() Does Not Return Error When Property Not Found
Q169303   Get_Item() Doesn't Find Property Defined on Ancestor Iface
Q169304   Errors Occur When Getting Property of VB Project: Crashes
Q169305   Repository Error after Halting Execution in Break-mode Edit

Q169306   ReComputeRepository GPFs if Passed Non-existent DB Name
Q169307   RepUtil:CompactJetRepository Doesn't Work with DSN Name
Q169308   CompactJetRepository Only Recognizes Lowercase Jet db Names
Q169309   Adding ActiveX Designer/Userconnection Results in Shutdown
Q169331   RecomputeRepos: Won't Work with Database Created by UML.DLL

Q169332   Changing Obj Name Before Saving Results in Repository Error
Q169333   Engine: Collection Not Updated After Removing an Item
Q169334   IRepos::Get_Name() Returns Error if Called on a Property
Q169335   CDatabase::InsRelshipRow Does Not Release Collection Obj
Q169336   Engine Item Method Takes Parameter Type of IntID

Q169337   Unable To Remove a Relationship from Collection with OBJID
Q169339   RepUtil.DLL Doesn't Contain Version or Copyright Information

Service Pack 2 fixes:

Q166908   ScaleMode for Printer Object Can't Create Custom Scale
Q167107   Missing Controls on the SSTAB Control Tabs
Q167165   Too Many Controls on a Form May Crash Visual Basic IDE
Q167213   Invalid Page Fault When Shutting Down Visual Basic 5.0
Q167346   GPF Occurs When Starting Visual Basic 5.0

Q167706   Internet Transfer Control 5.0 "POST" Request Doesn't Work
Q167735   Setting Printer to Item in the Printers Collection Fails
Q168290   GPF When Setting Font of Multi-selected Controls
Q168744   Printer May Lose Font Attributes
Q168766   Internet Transfer Control Fails on Case-Sensitive Server

Q168792   Statusbar Time Panel May Not Update Properly
Q171470   Resize Event Not Fired When UserControl Copied and Pasted
Q171471   VB-Created Controls Fail to Print with UserControl_Paint
Q171472   Toggling PortOpen w/MSCOMM32.OCX Leaks Memory on Win95
Q171473   MCI32.OCX Does Not Save Recorded .WAV Files

Q171474   Path Problems Using Project on Network Server
Q171475   RichTextBox Cleared When BorderStyle Changes at Run-Time
Q171476   Masked Edit Control Right-Aligned with NT 4.0 SP3
Q171477   Format Menu Options Can Crash Visual Basic 5.0
Q171478   Cannot Set Width/Height of UserControl in Resize Event

Q171479   Mod 0 Causes an IPF or Access Violation
Q171480   Setting SelAlignment Property Does Not Affect RichTextBox
Q171481   Cannot Set the Enabled Property of an UpDown Control
Q171482   Crash When Enum Name Referred to Incorrectly
Q171483   Crash When Rebuilding EXE Containing UserControl

Q171484   Code Module Window Displayed Transparently in SDI
Q171485   Visual Basic 5.0 Title Bar Paints Incorrectly
Q171486   Crash Sometimes Occurs with Cursor over Toolbox
Q171487   Crash When Assigning Uninitialized Object to Tag
Q171488   Val Function Recognizes System Decimal Symbol

Q171489   Use of Implements and Public Constants Crashes Compiler
Q171490   Crash After Toggling Folders in ActiveX EXE Project
Q171491   Mouse Button Value Is Always 4 in MouseUp Event of SSTab
Q171492   ActiveX Control Incorrectly Reports ScaleWidth/ScaleHeight
Q171493   Viewing Property Pages and Exiting Causes Memory Leak

Q171494   MouseUp Event Not Triggered in DblClick w/Comctl32
Q171495   Get Statement Not Working Correctly with Large UDT
Q171496   Bad Filename or Number with Get of UDT
Q171497   ListView in PictureBox on Tabbed Dialog Disappears
Q171498   Screen Turns Black When Compiling

Q171499   IDE Doesn't Show Topics of OCX Help Files Correctly
Q171500   ATL Controls Without IPropertyNotifySink Cause IPF in VB5
Q171501   User Control Moves When Width/Height Is Set in Container
Q171502   Crash with Watch on UserControl When Stop is Encountered
Q171504   Problems Setting PropertyPage Caption Property

Q171505   VB5 IDE Disappears or IPFs When "End" Button Is Pressed
Q171506   OLE Drag/Drop of ListView Control Fails
Q171507   VB GPFs When Selecting Align/Lefts from the Format Menu
Q171508   Add-ins May Cause Menu Corruption When Exiting Visual Basic
Q171509   Access Violation on NT4.0 on Multi-line Textbox

Q171510   Setting Font Property Causes Error 438 with RichTextBox
Q171511   Controls in Frame/PictureBox Do Not Repaint in Design Mode
Q171512   UserControls on Property Pages Do Not Trigger Focus Events
Q171513   Cannot Drag a Nested UserControl with Automatic DragMode
Q171514   Visual Basic 5.0 Crashes When Shutting Down Forms

Q171515   Crash on Customization of Design Environment Menus
Q171516   ActiveX Document DLL Causes GPF When Unloading Modal Form
Q171517   Animation Control Prints Incorrectly at Design-Time
Q171518   Controls May Not Print When Printing Form at Design Time
Q171519   Removing Function Causes Binary Compatibility Error

Q171520   Unable to Set Binary Compatibility with Class Module
Q171521   Non-Creatable Class Causes Loss of Binary Compatibility
Q171522   Enums in Public Procedures Cause Binary Compatibility Error
Q171523   Reference to Missing Member in Enum Definition Causes Crash
Q171524   Ambiguous Names Generate Incorrect Error Message

Q171525   ListView Causes IPF When Accessing ColumnHeaders Property
Q171526   Setting Enabled=False for TreeView Causes Paint Problems
Q171527   Causing a ListView Control to Paint Causes an IPF
Q171528   Using "Unload Me" in a Listbox Causes Crash
Q171529   Can't Open a Project Group from the Root Directory

Q171530   Crash on Data Tip After Enum Name Changed
Q171531   IPF When Changing Project Name With Binary Compatibility
Q171532   Crash Stepping Thru Code After Using Locals/Watch Window
Q171533   ActiveX EXE Crashes VB5 When Set to Binary Compatibility
Q171575   RISC: CByte Doesn't Fail on Negative Values on Native Exe

Q171576   RISC: AddressOf Doesn't Behave Properly in IDE/PCode Exe
Q171577   Using Set for ListItem's SubItem Results in GPF
Q171795   RDC Error Calling UpdateRow After Resultset.AddNew
Q171796   Problems When Running Asynchronous Queries with RDO 2.0
Q171797   VB5 DBCombo May Display Wrong Column for RDC 1.0

Q171798   DBCombo Click Event Fires During Form Load
Q171799   RDO May Incorrectly Handle Locking Conflicts in Transaction
Q171800   Unexpected Shutdown When Using Bound Controls
Q171801   Bound Controls Built in VB5 Do Not Work in VB4 IDE
Q171802   Problems Updating Using DBCombo When ListField = DataField

Q171803   Problems Retrieving VB 5.0 Projects from Visual SourceSafe
Q171804   Change Event Not Fired When Selecting an Item in DBCombo
Q171805   Problems Binding Controls To Nonexistent Data Control
Q171806   Memory Leak When RDC Bound to OLE Container Control
Q171807   Selected Tab Changes After Removing Tab in Tabstrip

Q171808   MDI Child Form Does Not Become Active
Q171809   Memory Leak When Setting the ForeColor of a VB5 Object
Q171810   Invoking the Visual Component Manager asserts in Exutil
Q171811   Cannot see relationship collection on an interface with Tab
Q171812   Run-Time Error When DataObject Passed As Object

Q171813   IPF in MSO97RT.DLL When Starting Visual Basic
Q171814   System Menu Appears When MouseDown Event Invokes a Drag
Q171815   Printer.TextWidth Returning Inconsistent Results in IDE
Q171816   IPF Opening or Saving Form with Tab Cont
Q171817   UserControl Cannot Read ContainedControls in Visual FoxPro

Q171818   IDE Crashes When Repeatedly Placing a Control on a Form
Q171819   Invalid Enum Value Causes Incompatible Binary Compatible
Q171820   ListView ListItems Don't Refresh When ColumnHeaders Cleared
Q171821   Memory Leak When Repeatedly Changing Toolbar Button Width
Q171822   Adding a Routine to UserControl in Break Mode Causes Crash

Q171823   Application Error When Using Implements on Hyperlink Object
Q171824   Crash in INET Control Downloading Page Multiple Times
Q171825   Tabbing Problems Using ActiveX Document in a Frame
Q171826   Tabbing Problems with Controls Contained with Controls
Q171827   Printing userdrawn usercontrol in IE Doesn't Work

Q171828   Using OpenURL Doesn't Download Complete Files
Q171829   GetChunk Freezes Unless Other Events Happening
Q171830   ActiveX Document Menu Changing Places
Q171831   IObjectSafety Implemented in Toolbar and CmDialog Controls
Q171832   Statement Builder Can Cause the Object Browser to Crash

Q171833   Statement Builder Crashes Referencing GlobalMultiUse Server
Q171834   Crash When UserControl Accesses Members of ParentControls
Q171835   Crash When Viewing Data Tips on ParamArray
Q171836   Crash When Viewing API Properties in Object Browser
Q171837   Run-time Error 6 "Overflow When Compiled to Native Code"

Q171838   Crash Compiling Native Code for Assignment of Variant Array
Q171839   Crash When Compiling a Call to a UserControl Function
Q171840   Corrupt Project Error Opening One Project After Another
Q171841   Dragging Multiple Controls on a Form May Cause Crash
Q171842   GetSetting Function Is Leaking Handles

Q171843   Winsock Control Leaks Memory When Unloaded

Visual C++ KB Articles

Service Pack 1 addresses the following issues.

Q165792   MSDEV.EXE Application Error When Building an Application
Q166282   C2440 Caused by Template Function with Const Pointer
Q166285   MSDEV Crashes When Converting VC++ 4.0 Projects
Q166718   C1001 from Conditional Operator in Initializer
Q167423   CRecordset Members Not in "Add Member Variable" Dialog Box

Q167845   Class Wizard Deletes Source Files
Q167994   Cvpack INTERNAL ERROR When Linking Large Projects
Q168007   Remote Debugging Very Slow in Visual C++ Version 5.0

The fixes for the Active Template Library (ATL) shown below address the
most commonly reported issues: MBCS compatibility, container compatibility
issues, and internal coding errors in ATL.

Q167340   ATL Control Causes Access Violation in Visual Basic 5.0
Q167526   ATL Control May Cause An Access Violation
Q167949   OnWindowMessage Returns BOOL for HRESULT

The compiler fixes shown below address the most commonly reported COM
issues.  These issues include: support for VB-created controls, internal
coding issues in the COM headers, and problems related to smart pointers
and reference counting.

Additionally, there are fixes for templates that contain improper
propagation of the "const" qualifier, and fixes for a problem of forcing
instantiation of all template member functions regardless of whether they
were actually used.

There were also reported problems with either floating point optimizations,
the global optimizer (/Og) or both.  All these reported issues have been
addressed in this Service Pack.

Q151491   copy() Member of bstrt in COMUTL.H Doesn't Copy
Q151499   Compiler Performs Illegal Sign Conversion Optimization
Q151500   /Og Causes vfptr Initialization Problems
Q166721   C2784 On < Operator When Instantiating an ATL Container
Q167967   /Og Increments the Index of a Loop Too Soon.

Q167995   Calling a Function Returning double May Not pop FPU Stack
Q167996   /Og Causes Invalid Double Result Returned from Function
Q168003   Function Prototypes in comutil.h Missing Calling Convention
Q168008   C2166: Incorrect Type Deduction for Template Parameter
Q168009    Smartptr Property in Interface Causes C2512 Error

Q168010   /Od May Generate Destructor for Unconstructed Temp Object
Q168011   C1001, file 'fppeeps.c', line 394, Caused By /Og
Q168012   Incorrect Code Generated When Using Floating-Point and /Og
Q168028   C2955: Caused By the "using" Declaration
Q168029   Global Optimizations (/Og) May Cause the Compiler to Hang

Q168079   _com_ptr_t::operator=(const _variant_t&) AddRefs Twice
Q168111   #import Does Not Compensate for Gaps in vtable

Listed below is a Linker fix that corrects a reported problem that ICF
(Identical COMDAT Folding) was causing severe build-time losses. The fix
also removes limits being imposed on the size of an executable and raises
the maximum size of the .ilk file used by the linker to 64 MB.

Q151501   Linking Large Projects Can Be Very Slow

The fixes for the Microsoft Foundation Classes (MFC) listed below deal with
the most commonly reported issues that prevent binary compatibility with
MFC 4.2 (shipped with Visual C++ 4.2). These issues include unintended
dependencies on the latest comctl32.dll, the 3.0 version of odbc32.dll,
threading issues, and internal coding errors in MFC.

Q164813   Web Browser Control Hangs in CFormView
Q167423   CRecordset Members Not in "Add Member Variable" Dialog Box
Q167650   Problems with ToolTips on Windows 95
Q167692   Assertion Line 257 in File DlgProp.cpp
Q167693   MFC Application Hangs on Multiprocessor Machine

Q167731   Access Violation When Connecting in MFC ODBC Application
Q168004   "Unable to Initialize DAO/Jet db Engine" Error
Q169484   CString::MakeUpper and MakeLower Don't Work with Some Char

Service Pack 2 fixes some debugger issues. The debugger now evaluates
compiler-generated strings longer than 128 characters (this usually takes
place when you are debugging templates, such as STL) without encountering
an access violation. Also, the debugger now starts smoothly in
configurations that have Visual Test and Visual C++ integrated.

Q171848   Source Control Info Not Preserved During Project Conversion
Q171849   Debugger Hangs When Very Long STL Symbol in Watch Window

Visual Database Tools KB Articles

Q168295   Updating Single Row Replaces Data in All Rows of a Cursor

Visual FoxPro KB Articles

Service Pack 2 fixes the access violation error problem when running a form
with a grid repeatedly under Windows NT 4.0. OLE automation with Word 97
issues have been addressed. Some of the report printing and preview
problems under Windows NT also have been fixed.

Q156322   RETURN TO Procedurename Command Doesn't Work in Forms
Q156788   Report Print Preview Illegible Under Windows NT
Q168277   Access Violation Running Form With Grid Repeatedly on NT 4
Q168523   Report Fails When Printing Under Windows NT 4.0
Q169565   Type Mismatch Using OLE Automation to Word 97

Service Pack 2 fixes the Anomaly Tracking System (ATS) so that it does not
display the 'Option under construction'  message when action items are

Q168193   'Option under construction' Message Appears in ATS

Visual InterDev KB Articles

Service Pack 1 fixes various wizard problems. The Service Pack also fixes a
bug that destroys data in situations when FrontPage editor, which comes
with Visual InterDev, is used.

Q165834   Can't Set Permissions Back to Root Web Permissions
Q167267   New Devisws.pkg for 0-Byte File Save Problem
Q167836   DataForm Wizard Not Sizing Column Width Properly For DBCS
Q167846   Reserved Error When Running DataForm Wizard Against Access
Q168269   MSWC BrowserType Control Does Not Recognize IE 3.02

Q168270   Update Error When Updating Sybase Table From ASP
Q168271   Sybase Cursor Can't Scroll Back in DF Wizard Created Form
Q168272   GPF When Refreshing a Project Containing Sybase Connection
Q168273   Invalid Operation When Deleting the End Sybase Record
Q168274   GPF When Selecting .ALX Files in Template Wizard

Q168275   Corrupted Dialog Titles in Japanese Version
Q168296   GPF When Expanding Links in Japanese Version of VI
Q168297   Data Connection Icons Not Displayed for global.asa

Visual J++ KB Articles

Service Pack 1 contains fixes that will enable customers to debug Java
applets running on Microsoft Internet Explorer 4.0 (but not on Microsoft
Internet Explorer 4.0 Preview Release 1). If you are running Microsoft
Internet Explorer 4.0 Preview Release 1, you should upgrade to Microsoft
Internet Explorer 4.0 Preview Release 2, which is available now on the web
site  For multi-processor machines,
Service Pack 1 fixes a scenario that resulted in a fault. It also fixes an
isolated case in which ClassView did not display any information.

Q167719   JavaTLB gives an Internal Compiler Error With VBCCE Control
Q167720   Saving Java File on Multi-Processor Machine Crashes MSDEV
Q167828   Cannot Access the ClassView Information File Error
Q167998   Cannot Debug Visual J++ Programs on IE 4.0 Pre-Release

See Visual C++ KB Articles for Service Pack 2 fixes that may affect Visual
J++ users.

Visual SourceSafe KB Articles

Service Pack 1 contains five fixes for Visual SourceSafe: the deployment of
files placed in the parent directory to a UNIX Server; movement of random
characters to the end of the file after SourceSafe editor is used;
incomplete check in of files in Visual Basic or Visual C++ when keyword
expansion is enabled; corruption of Rights.dat after adding rights by
project; and slowdown of analyze and appearance of hanging on large

Q165776   Admin Cannot See Files With Project Security Enabled
Q166469   Multiple Check In Fails with Keyword Expansion
Q167273   VSS Editor/Viewer Removing or Replacing Characters
Q167274   Analyze May Hang or Crash When Running on Large Databases
Q167737   Deploy to a Unix Server Via FTP Fails

Service Pack 2 contains Visual SourceSafe fixes for a memory leak in the
Visual Studio integration, and an access violation in Analyze, a developer
tools integration issue where files like Status.dat are needlessly kept

Q171534   Source Code Control Integration Holds .dat Files Open
Q171535   ANALYZE Crashes When No Log Entries Found in Log File

NOTE: the original and incorrect title to Q171535 was: "ANALYZE Application
Error When Directory Not Found".

Welcome to Visual Basic 5.0 Service Pack 2

Visual Basic 5.0 Service Pack 2 is an update to Visual Basic Version 5.0
Professional and Enterprise editions. It enables apartment-model threading
for Visual Basic projects that contain user interface elements, such as
forms and controls.


The apartment-model threading enhancement in Visual Basic 5.0 Service Pack
2 is explained in vb5sp2.htm (vb5sp2.wri on some systems). This file
contains information supplementing the Books Online documentation you
received as part of your licensed copy of Visual Basic.

Bug Fixes

The Microsoft Visual Basic team closely monitored feedback from programmers
after Visual Basic 5.0 shipped. Every effort was made to reproduce and fix
the most serious and commonly reported problems. Visual Basic 5.0 Service
Pack 2 fixes problems with the development environment, the Printer object,
the Internet Transfer control, and many of the other controls and libraries
that ship with Visual Basic 5.0. The Visual Basic team made every effort to
ensure backward compatibility with shared components.

Development environment: Visual Basic 5.0 Service Pack 2 resolves several
stability problems in the development environment, including crashes that
sometimes occurred when moving the mouse cursor over the toolbox, when
setting the Font properties of multiple controls, and when using the Format
menu options to align controls.

Printer object: Setting the Printer object to an item in the Printers
collection will now switch the default printer. You can now set a user-
defined scale mode for the Printer object by changing the ScaleWidth and
ScaleHeight properties. Font attributes are no longer lost when calling the
NewPage method.

Internet Transfer control: POST now works. Problems with missing or garbled
data have been fixed. The control no longer converts file names to upper
case when sending out a request, thus eliminating reported problems
accessing case-sensitive servers.

For a complete list of bug fixes included in Visual Basic 5.0 Service Pack
2, search the Microsoft Knowledge Base at for articles containing the keyword

Dependency List

Visual Basic 5.0 Service Pack 2 includes a new master dependency file
(vb5dep.ini), which is installed in the Setupkit directory. The existing
dependency file is renamed ~vb5dep.sp2.

Removing Visual Basic 5.0 Service Pack 2 and Restoring Visual Basic 5.0

Visual Basic 5.0 Service Pack 2 modifies Visual Basic 5.0 by replacing some
files and updating system information. To remove SP2, you must open the
Control Panel and use the Add/Remove Software tool to remove Visual Basic
5.0 from your system. Manually delete any remaining SP2 files before
reinstalling Visual Basic 5.0. (For a complete list of files included with
SP2, see the SP2 documentation file - vb5sp2.htm or vb5sp2.wri.)


For additional information, please see the following articles in the Microsoft Knowledge Base:
170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why

170367 HOWTO: Determine VS97 Service Pack Updates in a Product

171554 INFO: Visual Basic 5.0 Fixes in Visual Studio 97 Service Pack 2

175869 INFO: Troubleshooting the Visual Studio Service Pack 2 Download
The equivalent of this article for the Visual Studio 97 Service Pack 1 is:
170366 INFO: Visual Studio 97 Service Pack 1 Readme


Article ID: 172610 - Last Review: May 10, 2006 - Revision: 3.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual J++ 1.1 Standard Edition
  • Microsoft Visual SourceSafe 5.0 Standard Edition
  • Microsoft Visual InterDev 1.0 Standard Edition
  • Microsoft Visual Studio 97 Enterprise Edition
  • Microsoft Visual Studio 97 Professional Edition
kbreadme kbinfo kbvs97sp1fix kbvs97sp2fix KB172610

Give Feedback


Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from