Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.