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 |
Procesory |
Tak |
Tak |
|
Interfejs rozdzielania |
Nr |
Tak |
|
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 |
---|---|---|---|---|
Tablica lub dwa interfejsy |
Tak |
AtlAdvisejest funkcją globalną ATL.CComPtrBase::Advisejest używana przez CComPtr i CComQIPtr. |
||
Nr |
Parametry mniej niż AtlAdvise , ponieważ klasa podstawowa działa więcej. |
|||
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. |
||
Formanty ActiveX w oknie dialogowym |
Nr |
CAxDialogImpl::AdviseSinkMapzaleceniem i unadvises wszystkie formanty ActiveX w zasobie okno dialogowe.Odbywa się to automatycznie dla Ciebie. |