Fragensteller
Eventhandling mit COM-Objekt

Allgemeine Diskussion
-
Guten Tag,
ich habe ein COM-Objekt, welches Events zur Verfügung stellt. Leider gelingt es mir nicht, die Events abzufangen. Kann mir vielleicht jemand weiterhelfen?
Folgenden einfachen Code habe ich als Beispiel geschrieben:
Class MainWindow 'COM-Objekte deklarieren Dim TPRApplication As New TaiPanRTLib.TaiPanRealtime Dim TPRDataStream As TaiPanRTLib.DataStream Private Sub ButtonStart_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles ButtonStart.Click 'Umwandlung des Objektes TPRDataStream = DirectCast(TPRApplication.DataStream, TaiPanRTLib.DataStream) AddHandler TPRDataStream.Bezahlt, AddressOf TPRDataStream_Bezahlt 'Übergabe einer SymbolNr und der Art der gewollten Daten TPRDataStream.Add(28792740, CInt(False)) '... 'das war es doch, nun müsste das Event doch registriert sein und Ereignisse abgefangen werden '... End Sub Private Sub TPRDataStream_Bezahlt(ByVal SymbolNr As Integer, ByVal Kurs As Single, ByVal Volume As Single, ByVal Zeit As Date) Debug.Print(Kurs.ToString) End Sub End Class
Ich hoffe, dass ich alle Informationen gegeben habe.Vielen Dank für eure Hilfe.
Grüße
Micha
- Typ geändert Robert BreitenhoferModerator Montag, 18. Juli 2011 10:55 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Hast du das schon mit der WithEvents Deklaration getestet?
http://msdn.microsoft.com/de-de/library/7ee5a7s1(v=vs.80).aspx -
Ich hatte exakt das gleiche Problem. Anstelle des Events wird eine System.AgumentException ausgelöst und das Event nicht gefeuert.
In den Properties der Reference auf die TaiPanRTLib habe ich die Property EmbedInteropTypes auf "False" gestellt. Danach werden die Events wieder normal gefeuert.
Weitere Erklärungen zu dem Hintergrund dieser Einstellung und des Problems kann ich allerdings nicht liefern.
-
Guten Abend Herr Pangritz, Herr Stiefel!
Vielen Dank für Ihre Antworten.
@Herr Pangritz
Die Deklaration mit WithEvents hatte ich schon vergebens versucht.
@Herr Stiefel
Ich hatte in der Zwischenzeit mit der Firma Kontakt aufgenommen, bin aber bisher noch nicht dazu gekommen, die Fehlerursache zu posten. Es ist genau wie Sie es beschreiben.
Vielen Dank und einen angenehmen Feierabend.
Grüße
Micha