Klasa IDispEventSimpleImpl
Ta klasa udostępnia implementacje IDispatch
metod bez uzyskiwania informacji o typie z biblioteki typów.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
template <UINT nID, class T, const IID* pdiid>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
Parametry
Nid
Unikatowy identyfikator obiektu źródłowego. Gdy IDispEventSimpleImpl
jest klasą bazową dla kontrolki złożonej, użyj identyfikatora zasobu żądanej zawartej kontrolki dla tego parametru. W innych przypadkach użyj dowolnej dodatniej liczby całkowitej.
T
Klasa użytkownika, która pochodzi z IDispEventSimpleImpl
klasy .
identyfikator pdiid
Wskaźnik do identyfikatora IID zdarzenia dispinterface zaimplementowany przez tę klasę.
Elementy członkowskie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
IDispEventSimpleImpl::Advise | Ustanawia połączenie z domyślnym źródłem zdarzeń. |
IDispEventSimpleImpl::D ispEventAdvise | Ustanawia połączenie ze źródłem zdarzeń. |
IDispEventSimpleImpl::D ispEventUnadvise | Przerywa połączenie ze źródłem zdarzeń. |
IDispEventSimpleImpl::GetIDsOfNames | Zwraca E_NOTIMPL. |
IDispEventSimpleImpl::GetTypeInfo | Zwraca E_NOTIMPL. |
IDispEventSimpleImpl::GetTypeInfoCount | Zwraca E_NOTIMPL. |
IDispEventSimpleImpl::Invoke | Wywołuje programy obsługi zdarzeń wymienione na mapie ujścia zdarzeń. |
IDispEventSimpleImpl::Unadvise | Przerywa połączenie z domyślnym źródłem zdarzeń. |
Uwagi
IDispEventSimpleImpl
zapewnia sposób implementowania zdarzenia dispinterface bez konieczności podawania kodu implementacji dla każdej metody/zdarzenia w tym interfejsie. IDispEventSimpleImpl
udostępnia implementacje IDispatch
metod. Wystarczy dostarczyć implementacje dla zdarzeń, które cię interesują.
IDispEventSimpleImpl
działa w połączeniu z mapą ujścia zdarzeń w klasie w celu kierowania zdarzeń do odpowiedniej funkcji obsługi. Aby użyć tej klasy:
Dodaj makro SINK_ENTRY_INFO do mapy ujścia zdarzeń dla każdego zdarzenia dla każdego obiektu, który chcesz obsłużyć.
Podaj informacje o typie dla każdego zdarzenia, przekazując wskaźnik do struktury _ATL_FUNC_INFO jako parametr do każdego wpisu. Na platformie
_ATL_FUNC_INFO.cc
x86 wartość musi być CC_CDECL z wywołaniem zwrotnym funkcji wywołującej metodę __stdcall.Wywołaj metodę DispEventAdvise , aby ustanowić połączenie między obiektem źródłowym a klasą bazową.
Wywołaj metodę DispEventUnadvise , aby przerwać połączenie.
Musisz pochodzić z IDispEventSimpleImpl
(używając unikatowej wartości dla nID) dla każdego obiektu, dla którego należy obsługiwać zdarzenia. Klasę bazową można ponownie użyć, nienadzorując względem jednego obiektu źródłowego, a następnie doradzając innym obiektom źródłowym, ale maksymalna liczba obiektów źródłowych, które mogą być obsługiwane przez pojedynczy obiekt w tym samym czasie, jest ograniczona przez liczbę IDispEventSimpleImpl
klas bazowych.
IDispEventSimplImpl
udostępnia te same funkcje co IDispEventImpl, z wyjątkiem tego, że nie uzyskuje informacji o typie interfejsu z biblioteki typów. Kreatory generują kod tylko na IDispEventImpl
podstawie elementu , ale można go użyć IDispEventSimpleImpl
, dodając kod ręcznie. Użyj IDispEventSimpleImpl
polecenia , jeśli nie masz biblioteki typów opisującej interfejs zdarzenia lub chcesz uniknąć obciążenia związanego z używaniem biblioteki typów.
Uwaga
IDispEventImpl
i IDispEventSimpleImpl
zapewniają własną implementację umożliwienia każdemu IUnknown::QueryInterface
IDispEventImpl
lub IDispEventSimpleImpl
klasie bazowej działania jako oddzielnej tożsamości COM, jednocześnie umożliwiając bezpośredni dostęp do składowych klas w głównym obiekcie COM.
Implementacja CE ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń; każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.
Aby uzyskać więcej informacji, zobacz Obsługa protokołu IDispEventImpl.
Hierarchia dziedziczenia
_IDispEvent
_IDispEventLocator
IDispEventSimpleImpl
Wymagania
Nagłówek: atlcom.h
IDispEventSimpleImpl::Advise
Wywołaj tę metodę, aby nawiązać połączenie ze źródłem zdarzeń reprezentowanym przez element pUnk.
HRESULT Advise(IUnknown* pUnk);
Parametry
Punk
[in] Wskaźnik do IUnknown
interfejsu obiektu źródła zdarzeń.
Wartość zwracana
S_OK lub jakąkolwiek wartość HRESULT błędu.
Uwagi
Po nawiązaniu połączenia zdarzenia wyzwalane z elementu pUnk będą kierowane do programów obsługi w klasie za pomocą mapy ujścia zdarzeń.
Uwaga
Jeśli klasa pochodzi z wielu IDispEventSimpleImpl
klas, należy uściślać wywołania tej metody, określając zakres wywołania z określoną klasą bazową, którą cię interesują.
Advise
Ustanawia połączenie z domyślnym źródłem zdarzeń, pobiera identyfikator IID domyślnego źródła zdarzeń obiektu określonego przez AtlGetObjectSourceInterface.
IDispEventSimpleImpl::D ispEventAdvise
Wywołaj tę metodę, aby nawiązać połączenie ze źródłem zdarzeń reprezentowanym przez element pUnk.
HRESULT DispEventAdvise(IUnknown* pUnk const IID* piid);
Parametry
Punk
[in] Wskaźnik do IUnknown
interfejsu obiektu źródła zdarzeń.
piid
Wskaźnik do identyfikatora IID obiektu źródła zdarzeń.
Wartość zwracana
S_OK lub jakąkolwiek wartość HRESULT błędu.
Uwagi
Następnie zdarzenia wyzwalane z elementu pUnk będą kierowane do programów obsługi w klasie za pomocą mapy ujścia zdarzeń.
Uwaga
Jeśli klasa pochodzi z wielu IDispEventSimpleImpl
klas, należy uściślać wywołania tej metody, określając zakres wywołania z określoną klasą bazową, którą cię interesują.
DispEventAdvise
ustanawia połączenie ze źródłem zdarzeń określonym w pliku pdiid
.
IDispEventSimpleImpl::D ispEventUnadvise
Przerywa połączenie ze źródłem zdarzeń reprezentowanym przez element pUnk.
HRESULT DispEventUnadvise(IUnknown* pUnk const IID* piid);
Parametry
Punk
[in] Wskaźnik do IUnknown
interfejsu obiektu źródła zdarzeń.
piid
Wskaźnik do identyfikatora IID obiektu źródła zdarzeń.
Wartość zwracana
S_OK lub jakąkolwiek wartość HRESULT błędu.
Uwagi
Po przerwaniu połączenia zdarzenia nie będą już kierowane do funkcji programu obsługi wymienionych na mapie ujścia zdarzeń.
Uwaga
Jeśli klasa pochodzi z wielu IDispEventSimpleImpl
klas, należy uściślać wywołania tej metody, określając zakres wywołania z określoną klasą bazową, którą cię interesują.
DispEventAdvise
powoduje przerwanie połączenia, które zostało nawiązane ze źródłem zdarzeń określonym w pliku pdiid
.
IDispEventSimpleImpl::GetIDsOfNames
Ta implementacja IDispatch::GetIDsOfNames
zwraca E_NOTIMPL.
STDMETHOD(GetIDsOfNames)(
REFIID /* riid */,
LPOLESTR* /* rgszNames */,
UINT /* cNames */,
LCID /* lcid */,
DISPID* /* rgdispid */);
Uwagi
Zobacz IDispatch::GetIDsOfNames w zestawie Windows SDK.
IDispEventSimpleImpl::GetTypeInfo
Ta implementacja IDispatch::GetTypeInfo
zwraca E_NOTIMPL.
STDMETHOD(GetTypeInfo)(
UINT /* itinfo */,
LCID /* lcid */,
ITypeInfo** /* pptinfo */);
Uwagi
Zobacz IDispatch::GetTypeInfo w zestawie Windows SDK.
IDispEventSimpleImpl::GetTypeInfoCount
Ta implementacja IDispatch::GetTypeInfoCount
zwraca E_NOTIMPL.
STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);
Uwagi
Zobacz IDispatch::GetTypeInfoCount w zestawie Windows SDK.
IDispEventSimpleImpl::Invoke
Ta implementacja wywołań IDispatch::Invoke
procedur obsługi zdarzeń wymienionych na mapie ujścia zdarzeń.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID /* riid */,
LCID lcid,
WORD /* wFlags */,
DISPPARMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* /* pexcepinfo */,
UINT* /* puArgErr */);
Uwagi
Zobacz IDispatch::Invoke.
IDispEventSimpleImpl::Unadvise
Przerywa połączenie ze źródłem zdarzeń reprezentowanym przez element pUnk.
HRESULT Unadvise(IUnknown* pUnk);
Parametry
Punk
[in] Wskaźnik do IUnknown
interfejsu obiektu źródła zdarzeń.
Wartość zwracana
S_OK lub jakąkolwiek wartość HRESULT błędu.
Uwagi
Po przerwaniu połączenia zdarzenia nie będą już kierowane do funkcji programu obsługi wymienionych na mapie ujścia zdarzeń.
Uwaga
Jeśli klasa pochodzi z wielu IDispEventSimpleImpl
klas, należy uściślać wywołania tej metody, określając zakres wywołania z określoną klasą bazową, którą cię interesują.
Unadvise
powoduje przerwanie połączenia, które zostało nawiązane z domyślnym źródłem zdarzeń określonym w pliku pdiid
.
Unavise
Przerywa połączenie z domyślnym źródłem zdarzeń, pobiera identyfikator IID domyślnego źródła zdarzeń obiektu określonego przez AtlGetObjectSourceInterface.
Zobacz też
Struktura _ATL_FUNC_INFO
Klasa IDispatchImpl
Klasa IDispEventImpl
SINK_ENTRY_INFO
Omówienie klasy