Udostępnij za pośrednictwem


Podsumowanie obsługi zdarzeń ATL

Ogólnie rzecz biorąc Obsługa zdarzeń COM jest stosunkowo prosty proces.Istnieją trzy główne kroki:

  • Zaimplementować interfejsu zdarzenia na obiekt.

  • Doradzanie źródło zdarzenia obiekt chce odbierać zdarzenia.

  • Unadvise źródło zdarzenia, gdy obiekt nie musi już odbierać zdarzenia.

Interfejs wykonawczych

Istnieją cztery główne sposoby wykonawczych interfejsu z użyciem ATL.

Pochodzić od

Odpowiednie dla typu interfejsu

Wymaga wykonania wszystkich metod *

Wymaga biblioteki typów w czasie wykonywania

Interfejs

Tablica metod wirtualnych

Tak

Nr

IDispatchImpl

Procesory

Tak

Tak

IDispEventImpl

Interfejs rozdzielania

Nr

Tak

IDispEventSimpleImpl

Interfejs rozdzielania

Nr

Nr

* Podczas korzystania z klasy ATL wsparcia, nigdy nie wymaga wdrożenia IUnknown lub IDispatch metody ręcznie.

Doradzanie i źródło zdarzenia Unadvising

Istnieją trzy główne sposoby doradzanie i unadvising źródłem zdarzeń przy użyciu ATL.

Doradzanie funkcji

Funkcja Unadvise

Najbardziej odpowiednie do użycia z

Wymaga do śledzenia pliku cookie?

Komentarze

AtlAdvise, CComPtrBase::Advise

AtlUnadvise

Tablica lub dwa interfejsy

Tak

AtlAdvisejest funkcją globalną ATL.CComPtrBase::Advisejest używana przez CComPtr i CComQIPtr.

IDispEventSimpleImpl::DispEventAdvise

IDispEventSimpleImpl::DispEventUnadvise

IDispEventImpl lub IDispEventSimpleImpl

Nr

Parametry mniej niż AtlAdvise , ponieważ klasa podstawowa działa więcej.

CComCompositeControl::AdviseSinkMap(TRUE)

CComCompositeControl::AdviseSinkMap(FALSE)

Formanty ActiveX w formantach kompozytowe

Nr

CComCompositeControl::AdviseSinkMapinformowałby wszystkie wpisy sink zdarzeń mapy.Tę samą funkcję unadvises wpisów.Ta metoda jest wywoływana automatycznie przez CComCompositeControl klasy.

CAxDialogImpl::AdviseSinkMap(TRUE)

CAxDialogImpl::AdviseSinkMap(FALSE)

Formanty ActiveX w oknie dialogowym

Nr

CAxDialogImpl::AdviseSinkMapzaleceniem i unadvises wszystkie formanty ActiveX w zasobie okno dialogowe.Odbywa się to automatycznie dla Ciebie.

Zobacz też

Koncepcje

Obsługa zdarzeń i ATL

Obsługa IDispEventImpl