The ComClassAttribute attribute instructs the compiler to add metadata that allows a class to be exposed as a COM object.
Assembly: Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)
Thetype exposes the following members.
|ComClassAttribute()||Initializes a new instance of the ComClassAttribute class.|
|ComClassAttribute(String)||Initializes a new instance of the ComClassAttribute class.|
|ComClassAttribute(String, String)||Initializes a new instance of the ComClassAttribute class.|
|ComClassAttribute(String, String, String)||Initializes a new instance of the ComClassAttribute class.|
|ClassID||Gets a class ID used to uniquely identify a class.|
|EventID||Gets an event ID used to uniquely identify an event.|
|InterfaceID||Gets an interface ID used to uniquely identify an interface.|
|InterfaceShadows||Indicates that the COM interface name shadows another member of the class or base class.|
|TypeId||When implemented in a derived class, gets a unique identifier for this Attribute. (Inherited from Attribute.)|
|Equals||Infrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)|
|GetHashCode||Returns the hash code for this instance. (Inherited from Attribute.)|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|IsDefaultAttribute||When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class. (Inherited from Attribute.)|
|Match||When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
|_Attribute::GetIDsOfNames||Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.)|
|_Attribute::GetTypeInfo||Retrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.)|
|_Attribute::GetTypeInfoCount||Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.)|
|_Attribute::Invoke||Provides access to properties and methods exposed by an object. (Inherited from Attribute.)|
Use ComClassAttribute to simplify the process of exposing COM components from Visual Basic. COM objects are very different from .NET Framework assemblies; without the ComClassAttribute, you need to follow a number of steps to generate a COM object from Visual Basic. For classes marked with ComClassAttribute, the compiler performs many of these steps automatically.
This attribute simplifies the creation of COM objects. To expose a class as a COM object, you must compile the project with the Register for COM Interop option selected in the Build section of the Configuration Properties dialog box.
Although you can also expose a class created with Visual Basic as a COM object for unmanaged code to use, it is not a true COM object. For details, see COM Interoperability in .NET Framework Applications (Visual Basic).
To run this example, create a new Class Library application and add the following code to a class module.
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> Public Class ComClass1 ' Use the Region directive to define a section named COM Guids. #Region "COM GUIDs" ' These GUIDs provide the COM identity for this class ' and its COM interfaces. You can generate ' these guids using guidgen.exe Public Const ClassId As String = "7666AC25-855F-4534-BC55-27BF09D49D46" Public Const InterfaceId As String = "54388137-8A76-491e-AA3A-853E23AC1217" Public Const EventsId As String = "EA329A13-16A0-478d-B41F-47583A761FF2" #End Region Public Sub New() MyBase.New() End Sub Function AddNumbers(ByVal X As Integer, ByVal Y As Integer) AddNumbers = X + Y End Function End Class