Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Aktywna biblioteka szablonów (ATL) nadal jest obsługiwana. Nie dodajemy już funkcji ani nie aktualizujemy dokumentacji.
Zapewnia domyślną implementację części IDispatch podwójnego interfejsu.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
template<class T,
const IID* piid= &__uuidof(T),
const GUID* plibid = &CAtlModule::m_libid,
WORD wMajor = 1,
WORD wMinor = 0,
class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T
Parametry
T
[in] Podwójny interfejs.
piid
[in] Wskaźnik do identyfikatora IID T.
plibid
[in] Wskaźnik do LIBID biblioteki typów, która zawiera informacje o interfejsie. Domyślnie biblioteka typów na poziomie serwera jest przekazywana.
wMajor
[in] Główna wersja biblioteki typów. Domyślnie wartość to 1.
wMinor
[in] Wersja pomocnicza biblioteki typów. Domyślnie wartość to 0.
tihclass
[in] Klasa używana do zarządzania informacjami o typie dla języka T. Domyślnie wartość to CComTypeInfoHolder.
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
| IDispatchImpl::IDispatchImpl | Konstruktor. Wywołuje AddRef chronioną zmienną składową, która zarządza informacjami o typie dla podwójnego interfejsu. Destruktor wywołuje metodę Release. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
| IDispatchImpl::GetIDsOfNames | Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. |
| IDispatchImpl::GetTypeInfo | Pobiera informacje o typie dla interfejsu podwójnego. |
| IDispatchImpl::GetTypeInfoCount | Określa, czy istnieją informacje o typie dostępne dla interfejsu podwójnego. |
| IDispatchImpl::Invoke | Zapewnia dostęp do metod i właściwości udostępnianych przez interfejs podwójny. |
Uwagi
IDispatchImpl Zapewnia domyślną implementację IDispatch dla części dowolnego podwójnego interfejsu w obiekcie. Podwójny interfejs pochodzi z i używa tylko typów zgodnych z IDispatch automatyzacją. Podobnie jak w przypadku dispinterface, podwójny interfejs obsługuje wczesne wiązanie i późne powiązanie; jednak podwójny interfejs obsługuje również powiązanie wirtualne.
W poniższym przykładzie przedstawiono typową implementację .IDispatchImpl
class ATL_NO_VTABLE CBeeper :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBeeper, &CLSID_Beeper>,
public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
Domyślnie IDispatchImpl klasa wyszukuje informacje o typie T w rejestrze. Aby zaimplementować niezarejestrowany interfejs, można użyć IDispatchImpl klasy bez uzyskiwania dostępu do rejestru przy użyciu wstępnie zdefiniowanego numeru wersji. Jeśli utworzysz IDispatchImpl obiekt, który ma 0xFFFF jako wartość dla wMajor i 0xFFFF jako wartość wMinor, IDispatchImpl klasa pobiera bibliotekę typów z pliku .dll zamiast rejestru.
IDispatchImpl zawiera statyczny element członkowski typu CComTypeInfoHolder , który zarządza informacjami o typie dla podwójnego interfejsu. Jeśli masz wiele obiektów, które implementują ten sam podwójny interfejs, używane jest tylko jedno wystąpienie CComTypeInfoHolder .
Hierarchia dziedziczenia
T
IDispatchImpl
Wymagania
Nagłówek: atlcom.h
IDispatchImpl::GetIDsOfNames
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Uwagi
Zobacz IDispatch::GetIDsOfNames w zestawie Windows SDK.
IDispatchImpl::GetTypeInfo
Pobiera informacje o typie dla interfejsu podwójnego.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Uwagi
Zobacz IDispatch::GetTypeInfo w zestawie Windows SDK.
IDispatchImpl::GetTypeInfoCount
Określa, czy istnieją informacje o typie dostępne dla interfejsu podwójnego.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Uwagi
Zobacz IDispatch::GetTypeInfoCount w zestawie Windows SDK.
IDispatchImpl::IDispatchImpl
Konstruktor. Wywołuje AddRef chronioną zmienną składową, która zarządza informacjami o typie dla podwójnego interfejsu. Destruktor wywołuje metodę Release.
IDispatchImpl();
IDispatchImpl::Invoke
Zapewnia dostęp do metod i właściwości udostępnianych przez interfejs podwójny.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Uwagi
Zobacz IDispatch::Invoke w zestawie Windows SDK.