Interfaces doubles et événements
Pendant qu'il est possible de concevoir une interface d'événement comme double, un certain nombre de bonnes raisons de conception de ne pas faire. La raison fondamentale est que la source de l'événement déclenche uniquement l'événement via le pointeur vtable ou via Invoke, pas les deux. Si la source d'événement déclenche l'événement comme un appel de méthode vtable direct, les méthodes d' IDispatch ne seront jamais utilisées et il est clair que l'interface doit avoir été une interface vtable pure. Si la source d'événement déclenche l'événement comme un appel à Invoke, les méthodes vtable ne seront jamais utilisées et il est clair que l'interface doit avoir été une dispinterface. Si vous définissez les interfaces d'événement comme conjugue, vous exigerez les clients d'implémenter une partie d'une interface qui ne sera jamais utilisée.
Notes
Cet argument ne s'applique pas aux interfaces doubles, en général.Du point de vue d'implémentation, conjugue sont un moyen rapide, pratique, et bien- prise en charge d'implémenter les interfaces qui sont accessibles à une large gamme de clients.
Il existe d'autres raisons d'éviter de doublons interfaces d'événement ; ni Visual Basic ou Internet Explorer ne les prennent en charge.