Обработка событий выставляется на классе .NET через COM в VB6Обработка событий, выставленные на класс .NET через COM в VB6
Мой тест .NET (класс libary зарегистрирован Interop в настройках компилятора) Код:
Imports System.Runtime.InteropServices
<InterfaceType(ComInterfaceType.InterfaceIsIDispatch), ComVisible(True)> _
Public Interface MyEventInterface
<DispId(1)> Event Exploded(ByVal Text As String)
<DispId(2)> Sub PushRedButton()
End Interface
<ClassInterface(ClassInterfaceType.None)> _
Public Class EventTest
Implements MyEventInterface
Public Event Exploded(ByVal Text As String) Implements MyEventInterface.Exploded
Public Sub PushRedButton() Implements MyEventInterface.PushRedButton
RaiseEvent Exploded("Bang")
End Sub
End Class
Мой тест VB6 WinForms приложений код (который ссылается на класс выше libary):
Public ct As New ComTest1.EventTest
Private Sub Command1_Click()
ct.add_Exploded (ExplodedHandler)
ct.PushRedButton
ct.remove_Exploded (ExplodedHandler)
End Sub
Private Sub ExplodedHandler(ByVal Text As String)
MsgBox Text
End Sub
особенности по Я не уверен, как настроить обработчик в VB6 ошибка компиляции я получаю «Аргумент не выбирают Рациональная»на этой линии в VB6:
ct.add_Exploded (ExplodedHandler)
Где объявлен ваши add_Exploded? – volody
Созданы атрибуты COM. т. е. в VB6 intellisense add_ и remove_ присутствуют из-за интерфейса Idispatch, я верю? – PeanutPower