The Standard Visual Basic 6 References Dialog

Advanced Visual Basic References aims to replace the standard Visual Basic 6 References Dialog with a more useful, and comprehensive utility.

Lets first examine the standard Visual Basic offering to see what our starting point should be.

AnnotatedVB References Dialog

Image Key




Name of project.


Selected references.


Browse button to locate, auto register type library / COM Library and select.


Priority allows you to raise or lower the position of a type library in the list of type libraries to search for a type.


Location of the file containing the type library.

The standard offering lists all installed type libraries for COM libraries. Checked type libraries are always present at the top, while unselected type libraries are presented in an alphabetical list of the description (help string) given to the type library. The file containing the selected type library is displayed under the list (5).

The checked items (2) can be ordered (4). This ordering is used by Visual Basic to determine the Type used where the name given Type may appear in more than one type library. Personally I would prefer the programmer to specify which library he was referring to explicitly rather than by using the priority options on this dialog box.

If a type library can not be found in the list the programmer may find the type library by using the browse button (3) to locate the file. The browse button not only locates the type library in the list for the programmer, but also registers the type library in the selected file.

What's wrong with the Standard Visual Basic References Dialog

Well my number one pet hate about it is often you can't tell which file the type library is in, the Location field on the dialog, only shows maybe the first 50 characters of the path of the file. This really becomes a problem when you end up with two type libraries with the same name and you need to select the correct one. The only way of doing it reliably is to use the browse button and locate the file yourself. Other hacks for this problem exist, some suggest opening the Visual Basic IDE dll that contain the dialog in a resource editor, and changing the size of the dialog, well that might give you a little more, but still it doesn't satisfy me.

My second problem with it is it is difficult to find things in the list quickly. If I want to select the ADO 2.7 type library I need to search for Microsoft ActiveX Data Object 2.7, now if you use the keyboard a lot it would be nice to be able to jump straight down to that reference by typing at least the first few characters of it, well bad news you can only type the first character, any idea how many type library descriptions there are starting with the letter 'M', well on my development machine I have 223, that's a lot of scrolling.

Thirdly sometimes I don't know what the description of the type library is (well maybe I only kind of know it) would you guess that the Microsoft FileSystemObject is in a type library called Microsoft Scripting Runtime, maybe you remember part of the description, it would be nice to be able to search for like matches, so maybe you know the Programmatic Identifier (Prog ID) but don't know the file that contains the type library or the description of the type library, wouldn't it be nice to look up the type library description from the Prog ID

Add to all these complaints that is slow to display the dialog box, (every time you launch the references dialog, it re-reads the registry to get a list of all the Type Libraries), and you probably have enough reason to think that there must be a better solution.