Microsoft KB Archive/257642

From BetaArchive Wiki

Article ID: 257642

Article Last Modified on 9/5/2006



APPLIES TO

  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3



This article was previously published under Q257642

SYMPTOMS

When you deploy a Visual Basic ActiveX Control or document on a Web page, Internet Explorer keeps prompting you for reboot after reboot and never successfully displays the component.

The Code Download Error Log shows:

Code Download Error: (hr = 80070bc2) The requested operation is successful. Changes will not be effective until the system is rebooted.

CAUSE

When you package your ActiveX components on computers that have newer version of these files (such as those with Windows 2000 or Office 2000), the .inf file that is created by the Package and Deployment Wizard (PDW) contains information asking for newer versions of OLE .dll files compared to the ones that are available from Microsoft Web sites (see the "References" section of this article for the Web sites that provide these files). Replacement of those OLE .dll files requires a reboot, and the version number requirement that is specified in the .inf file will not be satisfied by installation of the OLE files from the Microsoft Web site. After the reboot, when users navigate to the same HTML page, Internet Explorer tries to reinstall the OLE files again. With the current version of the .cab file at the Microsoft Web site, the versioning requirement will never be satisfied, so the repetitive reboot cycle results.

RESOLUTION

If you are using the PDW, the best solution to this problem is to install the latest Visual Studio 6.0 service pack and then use the PDW to rebuild the package. This will update the components that the PDW uses when the Wizard packages dependent components.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section. This bug was corrected in the latest service pack for Visual Studio 6.0.

For additional information about Visual Studio service packs, click the following article numbers to view the articles in the Microsoft Knowledge Base:

194022 Visual Studio 6.0 service packs, what, where, why


194295 How to tell that a Visual Studio service pack is installed


To download the latest Visual Studio service pack, visit the following Microsoft Web site:

MORE INFORMATION

Upgrading to Service Pack 4 or later

The best way to solve this problem is to install the latest Visual Studio 6.0 Service Pack. That will update the C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Redist folder to contain the latest files. Then you can use the PDW to rebuild the package. The Wizard uses the components in this folder before the ones in the Windows\System or System32 folders, so that when it generates the .inf file information, it uses these file version numbers. This method has the advantage of automatically producing the correct .inf file the first time (instead of requiring manual editing of them afterwards, as mentioned in the following workarounds).

Manually updating the Redist folder

If you are using the PDW, you can also manually update the Visual Basic Runtime and OLE files in the Redist folder:

  1. If you do not already have Extract.exe installed under your system folder, get it from your Windows CD-ROM. You can find Extract.exe in your Windows or Winnt folder or on your Windows 95, Windows 98, or Windows NT installation CD-ROM or diskettes.)

    Extract.exe is a command-line utility. Therefore, it is used from an MS-DOS command prompt. To extract the files within a cabinet file, be sure the Extract.exe utility is in the MS-DOS path or copy the Extract utility to the same folder as the cabinet file.
  2. Download the latest Microsoft Visual Basic 6.0 run-time components. The following file is available for download from the Microsoft Download Center:

    [GRAPHIC: Download]Download the VBRUN60.cab package now.

    For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

    119591 How to Obtain Microsoft Support Files from Online Services

    Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

    Create a local folder called C:\VBRUN, and then save the .cab file in this folder.
  3. From a DOS prompt, navigate to the System32 folder:

    cd C:\Winnt\System32

  4. To extract all the files in the .cab file located

    extract.exe /a C:\Vbrun\Vbrun60.cab /l C:\Vbrun\

    This extracts Vbrun60.exe from the .cab file.

    For more information on using the Extract.exe utility, type the following command at an MS-DOS command prompt:

    extract.exe /?

    See the "References" section of this article for information on how to use Extract.exe.
  5. Extract the contents of this self-extracting .exe file as follows:

    VBRUN60.EXE /C /T:"C:\VBRUN"

  6. Copy the extracted files to the Redist subfolder of the folder in which Visual Basic is installed. By default, the path is

    C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Redist

    Be sure to copy the following files: Oleaut32.dll, Olepro32.dll, Asycfilt.dll, Stdole2.tlb, Msvbvm60.dll, and Comcat.dll.

Manually correcting the .inf file

Another way to work around this problem is to change the versioning inside the .inf file that is created by the PDW each time that you create a new .cab file:

  1. Locate the .inf file in the support folder under the package folder that is created by the PDW.
  2. Open the .inf file with Microsoft Notepad.
  3. Verify the file version of the following files with the latest files that are distributed by Microsoft: Oleaut32.dll, Olepro32.dll, Asycfilt.dll, Stdole2.tlb, Msvbvm60.dll, and Comcat.dll.

    For the latest Visual Basic 6 Service Pack, see the following article in the Microsoft Knowledge Base:

    290887 VBRun60sp6.exe installs Visual Basic 6.0 SP6 run-time files

  4. Save the .inf file.
  5. Run the .bat file that was created by the PDW to repackage the .cab file again.


REFERENCES

Visual Studio Update Links

MSDN Online Library, "INF File Architecture"

For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

252937 How to find more information about why code download failed


176810 How to manually modify and rebuild CAB files


For more information about how to develop Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:

For more information, see the "How does Internet component download work?" webcast:

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

271594 Internet component download online troubleshooter is available


Keywords: kbdownload kbbug kbfix kbvs600sp4fix kbvs600sp5fix kbcode KB257642