Freigeben über


Dual Interfaces and Events

Obwohl es möglich ist, eine Ereignisschnittstelle als dual entwerfen, gibt es einige gute entwicklungsspezifischen Gründe, nicht erforderlich. Der grundlegende Grund ist, dass die Quelle des Ereignisses nur das Ereignis zum vtable oder über Invoke auslöst, nicht beide. Wenn die Ereignisquelle das Ereignis als direkter vtable Methodenaufruf auslöst, werden die IDispatch-Methoden nie verwendet und es ist klar, dass die Schnittstelle eine reine vtable Schnittstelle worden sein sollte. Wenn die Ereignisquelle das Ereignis als Aufruf Invoke auslöst, werden die Methoden nie verwendet und es ist klar, dass die Schnittstelle eine Dispatchschnittstelle worden sein sollte. Wenn Sie die Ereignisschnittstellen wie verdoppeln definieren, werden Sie Clients erforderlich, Teil einer Schnittstelle implementieren, die nie verwendet wird.

Hinweis

Dieses Argument gilt nicht für duale Schnittstellen, im Allgemeinen zu.Von einer Implementierungsperspektive sind verdoppelt eine schnelle, einfache und Well-unterstützte Methode der Implementierung von Schnittstellen, die einer großen Zahl von Clients verfügbar sind.

Es gibt weitere Gründe, duale Ereignisschnittstellen zu vermeiden, Visual Basic unterstützen weder noch Internet Explorer sie.

Siehe auch

Konzepte

Dual Interfaces and ATL