Microsoft KB Archive/259529

= INFO: How Visual Basic Classes Map to COM =

Article ID: 259529

Article Last Modified on 1/11/2001

-

APPLIES TO


 * Microsoft Visual Basic 6.0 Professional Edition
 * Microsoft Visual Basic 6.0 Enterprise Edition

-



This article was previously published under Q259529



SUMMARY
Every Component Object Model (COM) object must implement at least one interface. Visual Basic simplifies this concept by creating a default interface that can be created automatically for each class. Visual Basic also hides the name of the default interface.



MORE INFORMATION
For a class module, Class1, Visual Basic creates a hidden interface named _Class1 as a default. When you use the OLEVIEW tool to look at the compiled Visual Basic components' type library, you can see that Visual Basic creates a CoClass named Class1, which implements _Class1 as the default interface. The Visual Basic components' type library looks like the following: [  hidden, ... ] interface _Class1 { ... } coclass Class1 { [default] interface _Class1; }; You can create a Class1 object like the following:

Dim myObject as Class1 set myObject = new Class1 ' then call myObject's any public methods... The variable myObject of type Class1 is transparently cast to the _Class1 reference by the Visual Basic Compiler (because clients only use interface references to access COM objects.) Using Class1 as an alias for the _Class1 interface makes it very easy to create a COM-compliant object in Visual Basic.

