Sdílet prostřednictvím


Duální rozhraní a události

I když je možné navrhnout rozhraní událostí jako duální, existuje řada dobrých důvodů, proč to udělat. Základním důvodem je, že zdroj události aktivuje událost pouze prostřednictvím virtuální tabulky nebo prostřednictvím Invoke, nikoli obojího. Pokud zdroj události aktivuje událost jako přímé volání metody vtable, IDispatch metody se nikdy nepoužijí a je jasné, že rozhraní by mělo být čistě vtable rozhraní. Pokud zdroj událostí aktivuje událost jako volání Invoke, metody vtable se nikdy nepoužijí a je jasné, že rozhraní by mělo být dispinterface. Pokud definujete rozhraní událostí jako duální, budete vyžadovat, aby klienti implementovali část rozhraní, které se nikdy nepoužije.

Poznámka:

Tento argument se obecně nevztahuje na duální rozhraní. Z hlediska implementace jsou duální systémy rychlým, pohodlným a dobře podporovaným způsobem implementace rozhraní, která jsou přístupná široké škále klientů.

Existují další důvody, proč se vyhnout duálním rozhraním událostí; Visual Basic ani Internet Explorer je nepodporují.

Viz také

Duální rozhraní a ATL