<ComClass(ComC.ClassId, ComC.InterfaceId, ComC.EventsId)> _ Public Class ComCClass ComC
COM GUID#Region "COM GUID" ' 这些 GUID 提供此类的 COM 标识 ' 及其 COM 接口。若更改它们,则现有的 ' 客户端将不再能访问此类。 Public Const ClassId As String = "97451265-d75d-4d5a-a39d-6c4b68f8dd99" Public Const InterfaceId As String = "5015b9e7-64e6-4750-8c28-5c51d968f1d6" Public Const EventsId As String = "1afd03f4-5974-445e-8ca2-a8e9be3432d7" #End Region
' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() ' 否则, 将不会在 ' COM 注册表中注册此类,且无法通过 ' CreateObject 创建此类。 Public Sub New()Sub New() MyBase.New() End Sub
End Class
现在只要在这个类中添加 public 的成员即可 ,假如我们添加一个 方法 Northsnow
<ComClass(ComC.ClassId, ComC.InterfaceId, ComC.EventsId)> _ Public Class ComCClass ComC
COM GUID#Region "COM GUID" ' 这些 GUID 提供此类的 COM 标识 ' 及其 COM 接口。若更改它们,则现有的 ' 客户端将不再能访问此类。 Public Const ClassId As String = "97451265-d75d-4d5a-a39d-6c4b68f8dd99" Public Const InterfaceId As String = "5015b9e7-64e6-4750-8c28-5c51d968f1d6" Public Const EventsId As String = "1afd03f4-5974-445e-8ca2-a8e9be3432d7" #End Region
' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() ' 否则, 将不会在 ' COM 注册表中注册此类,且无法通过 ' CreateObject 创建此类。 Public Sub New()Sub New() MyBase.New() End Sub Public Sub Northsnow()Sub Northsnow(ByVal ss As String)
MsgBox(ss) End Sub
End Class 然后就可以编译,编译后,在pb中添加如下的代码来调用这个com
int intValue oleobject objOle objOle=create OLEObject intValue=objOle.connecttonewobject("ClassLibrary1.ComC")