ComClassAttribute Class
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)
| Name | Description | |
|---|---|---|
![]() | 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. |
| Name | Description | |
|---|---|---|
![]() | 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 |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | This API supports the product infrastructure and is not intended to be used directly from your code. 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() | |
![]() | 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(Object^) | 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.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.) |
![]() ![]() | _Attribute::GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.) |
![]() ![]() | _Attribute::GetTypeInfoCount(UInt32%) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.) |
![]() ![]() | _Attribute::Invoke(UInt32, Guid%, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | 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.
Note |
|---|
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. |
Note |
|---|
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
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




