Internet Explorer reports unknown type .VBD for Active Document (167380)



The information in this article applies to:

  • Microsoft Internet Explorer (Programming) 4.0
  • Microsoft Internet Explorer (Programming) 4.01
  • Microsoft Internet Explorer (Programming) 4.01 SP1
  • Microsoft Internet Explorer (Programming) 4.01 SP2
  • Microsoft Internet Explorer (Programming) 5
  • Microsoft Internet Explorer (Programming) 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer (Programming) 5.5
  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer (Programming) 6 (SP1)
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0

This article was previously published under Q167380
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

You may experience problems with Active Documents that will be used on a Web server. The Active Document works on the development computer but fails on computers that try to access it over the Internet. You may receive the following error message:
Internet Explorer is opening file of unknown type:
<Name of Document>.VBD from
Internet Explorer reports this generic message whenever it encounters problems while processing a .vbd file.

CAUSE

This problem can be caused by one of the following scenarios:
  • The registry contains a .vbd extension entry.
  • You are trying to download a Microsoft Data Access Components (MDAC) component with your .vbd file.
  • The wrong version of Visual Basic run-time or OLE files are referenced.
  • You are using the wrong .vbd file.
  • You are using an out-dated .vbd file.
  • The Actxprxy.dll file is missing or is not registered properly.
  • The Active Document .exe or .dll file is not registered properly.
  • The Active Document is not signed or safe for scripting.
  • There is a run-time error in the initialization code of the Active Document.
  • Dependent files are not being downloaded.
  • Other problems that can occur.

RESOLUTION

The registry contains a .vbd extension entry

The registry may contain one or all of the following keys:

HKEY_CLASSES_ROOT\.vbd

HKEY_CLASSES_ROOT\vbd_auto_file

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vbd
					

Check the following registry keys on Microsoft Windows 2000 clients:

HKEY_USERS
   S-1-5-21-117609710-152049171-1957994488-500
      Software
         Microsoft
            Windows
               CurrentVersion
                  Explorer
                     FileExts
                        .VBD
                           "Application"="iexplore.exe" 

HKEY_USERS
   S-1-5-21-117609710-152049171-1957994488-500
      Software
         Microsoft
            Windows
               CurrentVersion
                  Explorer
                     FileExts
                        .VBD
                           OpenWithList

HKEY_USERS
   S-1-5-21-2127521184-1604012920-1887927527-22087
      Software
         Microsoft
            Windows
               CurrentVersion
                  Explorer
                     FileExts
                        .vbd

where "S-1-5-21-117609710-152049171-1957994488-500" is the identifier for your user.

These .vbd extension entries in the registry cause Internet Explorer to make false assumptions. Internet Explorer assumes that if an extension for a file is registered, there is an appropriate server already installed on the system for that file. Thus, Internet Explorer does not use the CodeBaseSearchPath key information in the Active Document to perform the component download, and the .cab file is not downloaded and unpacked.

If the server is already installed on the system (like your development machine), the .vbd should work. If the server is not installed, or if the version is out of date, the newer server is not downloaded, and the process fails. To resolve this problem, remove these entries from your 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.
For more information about the CodeBaseSearchPath key, see the "Internet Component Download Implementation" article on the Microsoft Developer Network (MSDN):

You are trying to download an MDAC component with your .vbd File

If you use Microsoft ActiveX Data Objects (ADO), MDAC does not lend itself to component-oriented installs. During component download, MDAC may install itself repeatedly and reboot the computer repeatedly. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

251325 Using MDAC with Internet component downloads

By default, the Package and Deployment Wizard (PDW) adds the MDAC component in your package. Make sure that you clear any MDAC component check boxes that are referenced in the PDW, and instruct your users to install MDAC prior to use of your component. You can download MDAC from the following Microsoft Web site:

The wrong version of Visual Basic Run-time or OLE files are referenced

When you package your Active Document on computers that have newer versions of these files (as included with Windows 2000 or Microsoft Office 2000), the .inf file that is created by the PDW contains information that asks for newer versions of OLE .dll files. This results in endless reboots, as well as the above-mentioned error message.

For a list of newer versions of OLE .dll files, click the article numbers below to view the articles in the Microsoft Knowledge Base:

172991 CAB files distributed with Visual Basic 5.0

This problem is fixed in Microsoft Visual Studio 6.0 Service Pack 4. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

257642 Endless reboot requests occur when Internet Explorer attempts to download Visual Basic components

You are using the wrong .vbd file

To resolve this problem, use the .vbd file that the Microsoft Visual Basic Setup Wizard creates. The Setup Wizard creates a directory of all the files that are needed for a successful Internet download. To avoid compatibility issues, do not mix and match these files with other versions on your computer.

You are using an outdated .vbd file

The CLSID must be same in the .vbd, .htm (if used), and .exe files of your Active Document project. One of the most common sources of errors for Visual Basic Active Documents is when CLSIDs get out of synchronization. By default, Visual Basic 5.0 creates a new CLSID (and new registry entries) every time you remake your project. Most likely, you do not want this to occur. To preserve the CLSID across builds, perform the following steps:
  1. From the Project menu, click Project Properties.
  2. On the Component tab, under Version Compatibility, click Binary Compatibility.
  3. In the text box below that selection, put the DocObject (the .exe or .dll, depending on the Active Document) file name of your project.
If you do not set Binary Compatibility and rebuild the project, Visual Basic generates a new CLSID for the same ProgID. When downloading, if Internet Explorer on the client computer sees that it is trying to register a different CLSID for the same ProgID, it creates a conflict.X directory under Occache or the Downloaded Program Files folder.

To avoid this, if the project is not backwards compatible, set Binary Compatibility on your Active Document project. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

196150 Why CONFLICT directories are created during code download

The Actxprxy.dll file is missing or is not registered properly

If the ActiveX .dll file works but the ActiveX .exe file does not, Actxprxy.dll is probably missing or not registered properly. This file is installed by IE3.0X and should be registered. If it is not, use the Regsvr32 utility to register Actxprxy.dll.

The ActiveX .exe or .dll file is not registered properly

If your Active Document does not appear after you select Add from File on the Section menu to add the .vbd file to Office Binder, there is a registry problem or the DocObject cannot instantiate. If you can add the .vbd file to Binder, the .vbd file has the wrong CLSID. To resolve this problem, recompile and use the .vbd file that is created.

The Active Document is not signed or is not safe for scripting

At higher security levels, an unsigned .cab file does not download. When a .vbd file is navigated to, the Save As dialog box appears. To resolve this problem, use a digital certificate to sign the .cab file. Users or enterprises that cannot sign the .cab file can also lower security settings temporarily. For example, users or enterprises can add the Web site to the Trusted Sites zone.

Note You must sign your .cab file, not the .vbd file. The .vbd file cannot be signed.

Run-time error in initialization code of Active Document

Make sure that you perform run-time error checking in your Active Document project. You can encounter problems if you have a run-time error in either of the following routines:
  • Private Sub UserDocument_Initialize()
  • Private Sub UserDocument_InitProperties()
If a run-time error occurs while in these routines, Internet Explorer displays the above-mentioned error message rather than the actual error message in your code.

Because the Initialize event can fire multiple times under Internet Explorer, do not use this event. When the Initialize event fires, the document is not fully sited in Internet Explorer. It is recommended that you use the Show event instead. In addition, use the Hide event instead of the UnInitialize event to match the event firing sequences. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

177269 Internet Explorer 4.0 keeps Active Document servers running

Dependent files are not being downloaded

If users are running Internet Explorer with a High security setting, the files are not installed on their client computer, and the Active Document does not run; this returns the above-mentioned error message. When you use PDW to repackage your .cab file, set the Visual Basic run-time and OLE files to download from default Microsoft Web Sites.

You can also download and place these .cab files on your own server as follows:
  • To download the desired .cab file, type the entire .cab file URL in the address bar of Internet Explorer. Internet Explorer prompts you to Open or Save the .cab file. Save the .cab file on your Web server.

    For a list of .cab file URLs, click the article numbers below to view the articles in the Microsoft Knowledge Base:

    172991 CAB files distributed with Visual Basic 5.0

    Note Do not change the file date, time, or any other attributes because this invalidates the signature.
  • While creating Internet Component Setup, specify that the files be downloaded from your Web server instead of Microsoft Web site.

    Note Do not create your own .cab files for Microsoft components.

Other problems that can occur

  • Set the Internet Explorer security settings to allow the (signed/unsigned) ActiveX components to download.
  • Turn on the version number increment in your document project, and put the version number in a field so that it appears on the main form of your downloaded page. By doing this, you can see whether your project actually downloaded or you are looking at an old version.

    To change the version number for the Active Document project, perform the following steps:
    1. On the Project menu, click Run-Time Error in Initialization Code of Active Document.
    2. On the Make tab, under Version Number, update the version number manually, or select the Auto Increment check box.
  • Always close and re-open Internet Explorer between component download attempts to avoid caching the old page.
  • To reference remote objects, use CreateObject for debugging.
  • Make your Active Document an .exe file rather than a .dll file for debugging.
  • Make sure that you are using the latest versions of the controls and DLLs that ship with Visual Basic in your Active Document. You should use MSFlxGrd.ocx instead of Grid32.ocx.
  • Files are not downloaded if there is a copy of that file loaded in the system. When you are downloading, make sure that you are only running Internet Explorer on your system. This minimizes the chance of a file being loaded that your Active Document needs to download.
  • If the computer requires a proxy server to access the Internet, make sure that you are logged on to it before downloading the Active Document.

REFERENCES

For more information on the Internet Component Download process, click the following article numbers to view the articles in the Microsoft Knowledge Base:

264570 WebCast available: How does Internet component download work?

252937 How to find more information about why code download failed

271594 Internet component download online troubleshooter is available


Modification Type:MinorLast Reviewed:6/30/2006
Keywords:kbcode kbDownload kbFAQ kbprb KB167380