Freigeben über


Ereignisbehandlungs-Prinzipien

Es gibt drei Schritte, die auf alle Ereignisbehandlung gemeinsam sind.Sie benötigen:

  • Implementieren Sie die Ereignisschnittstelle für das Objekt.

  • Melden Sie sich die Ereignisquelle an, dass das Objekt Ereignisse empfangen will.

  • Melden Sie sich die Ereignisquelle wenn die Anforderungen des Objekts nicht mehr, Ereignisse empfangen ab.

Die Methode, der Sie die Ereignisschnittstelle implementieren, hängt von seinem Typ ab.Eine Ereignisschnittstelle kann vtable, dual oder eine Dispatchschnittstelle sein.Sie ist bis zum Designer der Ereignisquelle, um die Schnittstelle zu definieren, sie hängt, um diese Schnittstelle zu implementieren.

HinweisHinweis

Obwohl keine technischen Gründen gibt an, dass eine Ereignisschnittstelle nicht dual sein kann, gibt es einige gute entwicklungsspezifischen Gründe, die Verwendung von zu vermeiden verdoppelt.Dies ist jedoch eine Entscheidung, die vom Designer/die Implementierung der Ereignisquelle erfüllt ist.Wenn Sie aus der Sicht des Ereignisses sink arbeiten, müssen Sie die Wahrscheinlichkeit zulassen, dass Sie möglicherweise keine Auswahl haben, aber eine duale Ereignisschnittstelle implementieren.Weitere Informationen zu dualen Schnittstellen, finden Sie unter Duale Schnittstellen und ATL.

Die Anmeldung der Ereignisquelle kann in drei Schritte aufgegliedert werden:

Sobald Sie erfolgreich das Interesse registriert haben, an, Ereignisse zu empfangen, werden Methoden auf der Ereignisschnittstelle des Objekts entsprechend den Ereignissen aufgerufen, die durch das Quellobjekt ausgelöst werden.Wenn Sie nicht mehr Ereignisse empfangen müssen, können Sie das Cookie zurück zu dem Verbindungspunkt über IConnectionPoint::Unadvise übergeben.Dieses unterbricht die Verbindung zwischen Quelle und Senke.

Achten Sie darauf, dass Sie Bezugszyklen vermeiden, wenn Sie Ereignisse behandeln.

Siehe auch

Konzepte

Ereignisbehandlung und ATL