Udostępnij za pośrednictwem


Implementowanie interfejsu obsługi zdarzeń

Usługa ATL pomaga we wszystkich trzech elementach wymaganych do obsługi zdarzeń: implementowaniu interfejsu zdarzeń, doradzaniu źródła zdarzeń i nienadzorowaniu źródła zdarzeń. Dokładne kroki, które należy wykonać, zależą od typu interfejsu zdarzeń i wymagań dotyczących wydajności aplikacji.

Najczęstsze sposoby implementowania interfejsu przy użyciu atl to:

  • Wyprowadzanie bezpośrednio z interfejsu niestandardowego.

  • Wyprowadzanie z interfejsów IDispatchImpl opisanych w bibliotece typów.

  • Wyprowadzanie z IDispEventImpl dla dispinterfaces opisanych w bibliotece typów.

  • Wyprowadzanie z IDispEventSimpleImpl dla dispinterfaces nie opisano w bibliotece typów lub gdy chcesz zwiększyć wydajność, nie ładując informacji o typie w czasie wykonywania.

W przypadku implementowania niestandardowego lub podwójnego interfejsu należy poinformować źródło zdarzeń przez wywołanie metody AtlAdvise lub CComPtrBase::Advise. Musisz śledzić plik cookie zwrócony przez połączenie samodzielnie. Wywołaj metodę AtlUnadvise , aby przerwać połączenie.

W przypadku implementowania narzędzia dispinterface przy użyciu metody IDispEventImpl lub IDispEventSimpleImpl, należy poinformować źródło zdarzeń, wywołując metodę IDispEventSimpleImpl::D ispEventAdvise. Wywołaj metodę IDispEventSimpleImpl::D ispEventUnadvise , aby przerwać połączenie.

Jeśli używasz IDispEventImpl jako klasy bazowej kontrolki złożonej, źródła zdarzeń wymienione na mapie ujścia będą zalecane i nienadzorowane automatycznie przy użyciu CComCompositeControl::AdviseSinkMap.

Klasy IDispEventImpl i IDispEventSimpleImpl zarządzają plikiem cookie.

Zobacz też

Obsługa zdarzeń