COM里抛出一个事件,可是VB里怎么调用啊?PS:COM的dll是用.net2005写的,函数和属性都已经正常调用成功,只剩下事件了
解决方案 »
- 后台补丁
- 集合collection内部item个数?
- 如何控制 MSChart 中显示的折线图的点数?
- abc(aa As Integer, bb As Integer)无法调用
- 在datagrid中直接输入的数据如何用代码来保存?请各位指点,谢谢!
- 超简单问题,,如何一行一行地读取文本文件的数据并进行处理?
- 怎样在VB中取Excel中的一张图片
- 在使用vb自带打包工具中,如何在打包文件中添加字体?
- 难度比较高,请高手进来,xmlhttp获取google检索结果的问题
- VBA中的正则表达式引用问题
- NiceForm.OCX控件打包使用问题
- Unload Form1.VerPic(i) 和 Load Form1.HorPic(i)
如:
Sub Encode(Destination() As Byte, Source() As Byte)
首先,定义一个Interface,里面有一个和事件相同参数和名称的方法(例子里是PersonEvents),指定如下的属性Public Delegate Sub PersonEventHandler( ByVal name As String )' 下面的声明是指定为IDispatch接口
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Public Interface PersonEvents
Sub NameChanged( ByVal name As String )
End InterfacePublic Class Person Public Event NameChanged As PersonEventHandler
....
End Class
然后用ComSourceInterfaces属性指定Class的Interface
Public Delegate Sub PersonEventHandler( ByVal name As String )<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Public Interface PersonEvents
Sub NameChanged( ByVal name As String )
End Interface<ComSourceInterfaces("DotNetCOMTest.PersonEvents, DotNetCOMTest")> _
Public Class Person Public Event NameChanged As PersonEventHandler
ComSourceIntarfaces属性値的参数有两个,第一个是指定事件处理的Interface名,第二个是Interface存在的Assembly名