Поделиться через


Dual Interfaces and Events

При возможности конструировать интерфейс события как повторяющееся, существует несколько причин хороших конструирования не сделать. Основная причина в том, что источник события только сгорит событие через vtable или через Invoke, но не оба. Если источник событий инициирует событие, как направить vtable вызов метода, методы IDispatch никогда не будут использоваться и ясно, что интерфейс должен быть чистыми vtable интерфейсом. Если источник событий инициирует событие, как вызов Invoke, vtable методы никогда не будут использоваться и ясно, что интерфейс должен быть dispinterface. Если задано пользовательское событие взаимодействует как удваивается, потребуется, что клиенты часть реализации интерфейса, который никогда не будет использован.

Примечание

Этот аргумент не применяется к интерфейсам, повторяющимся в целом.С точки зрения реализации удваивается быстрый и удобный хорошо- поддерживаемый способ реализации интерфейсов, доступных к широкому диапазону клиентов.

Дальнейшие причине следует избегать сдвоенных интерфейсов события. ни Visual Basic, ни Internet Explorer их поддерживают.

См. также

Основные понятия

Dual Interfaces and ATL