Article ID: 259529 - Last Review: January 11, 2001 - Revision: 1.0

INFO: How Visual Basic Classes Map to COM

This article was previously published under Q259529
Expand all | Collapse all

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.

REFERENCES

For additional information regarding implementing a COM interface in Visual Basic, click the article number below to view the article in the Microsoft Knowledge Base:
258827  (http://support.microsoft.com/kb/258827/EN-US/ ) Visual Basic Object Browser Cannot See the Default Interface

APPLIES TO
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
Keywords: 
kbinfo kblocalsvr KB259529
 

Article Translations