Microsoft KB Archive/172063

From BetaArchive Wiki

Article ID: 172063

Article Last Modified on 6/1/2001



APPLIES TO

  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Control Creation Edition



This article was previously published under Q172063

SYMPTOMS

When the UserDocument files are placed on a UNIX or NetScape Web server, Internet Explorer fails to display the UserDocument correctly. Internet Explorer interprets the raw binary data of the .vbd file as text and displays a series of random (garbage) characters, including boxes or symbols.

CAUSE

This occurs because some Web servers often associate the incorrect content type, or MIME type, with files whose extensions are unrecognized.

.vbd files are binary files that contain the persistent properties that are exported by the UserDocument. When Internet Explorer downloads these files, it must know to treat them as binary files, not as text files.

Some Web servers will, by default, associate all files whose extensions are unrecognized with the content type "text/plain." Because .vbd is not a commonly used file-extension, .vbd files on problem servers will often get branded as "text/plain."

When Internet Explorer receives the "text/plain" content type HTTP header, it will attempt to display the .vbd file as a text file. This results in the garbage characters that appear in the window. When it receives the "application/octet-stream" content type instead, it saves the .vbd file into the Internet Explorer cache and then activates the associated Visual Basic UserDocument for that .vbd file.

This problem will not occur on Microsoft Internet Information Server (IIS) because it associates all files with unrecognized file extensions with the content type "application/octet-stream."

RESOLUTION

There are two possible ways to avoid this problem on Web servers that cause this problem:

Method 1

The Web server administrator can add a content type association manually for .vbd files so that Internet Explorer will correctly display these files. The exact steps to do this vary according to the Web server. In general, the association needs to exist for the file extension .vbd to the MIME content type "application/octet-stream."

Method 2

The actual extension for Structured Storage files is not very important. Embedded within the .vbd file is the unique identifier for the UserDocument that knows how to display and save the properties that are contained within the .vbd file. This identifier is retrieved and used regardless of the actual extension of the file. However, to avoid confusion and conflicts with other file extensions, it is recommended that an extension is chosen that is already associated with the content type "application/octet-stream" and is not associated with other content types. The extension .bin generally works well.

However, following this method and making this change often requires a few other changes as well. The .htm file that is generated by the Application Setup Wizard must be changed. Locate the line that causes Internet Explorer to navigate to the .vbd file, and change the extension from .vbd to .bin. Also, if the Active Document code uses a Hyperlink object to navigate to other .vbd files, these filename extensions will need to be renamed from .vbd to .bin as well.

STATUS

This behavior is by design.

MORE INFORMATION

"Active Document" is the term for what was once called an "ActiveX Document." When this article refers to a "UserDocument," this is taken to mean the Visual Basic 5.0 technology that allows Visual Basic forms to be hosted as Active Documents in Active Document containers such as Internet Explorer.

Keywords: kbprb KB172063