IDispatchImpl Sınıfı
Çift arabirimin IDispatch
parçası için varsayılan bir uygulama sağlar.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
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
Parametreler
T
[in] Çift arabirim.
piid
[in] T'nin IID'sine işaret eden bir işaretçi.
plibid
[in] Arabirim hakkında bilgi içeren tür kitaplığının LIBID işaretçisi. Varsayılan olarak, sunucu düzeyi tür kitaplığı geçirilir.
wMajor
[in] Tür kitaplığının ana sürümü. Varsayılan olarak değer 1'dir.
wMinor
[in] Tür kitaplığının ikincil sürümü. Varsayılan olarak değer 0'dır.
tihclass
[in] T için tür bilgilerini yönetmek için kullanılan sınıf. Varsayılan olarak değeridirCComTypeInfoHolder
.
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
IDispatchImpl::IDispatchImpl | Oluşturucu. İkili arabirim için tür bilgilerini yöneten korumalı üye değişkenini çağırır AddRef . Yok edici çağrısında bulunur Release . |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
IDispatchImpl::GetIDsOfNames | Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. |
IDispatchImpl::GetTypeInfo | Çift arabirim için tür bilgilerini alır. |
IDispatchImpl::GetTypeInfoCount | Çift arabirim için kullanılabilir tür bilgisi olup olmadığını belirler. |
IDispatchImpl::Invoke | Çift arabirim tarafından kullanıma sunulan yöntemlere ve özelliklere erişim sağlar. |
Açıklamalar
IDispatchImpl
bir nesnedeki IDispatch
herhangi bir çift arabirimin parçası için varsayılan bir uygulama sağlar. Çift arabirim, yalnızca Otomasyon ile uyumlu türlerden IDispatch
türetilir ve kullanır. Dispinterface gibi, çift arabirim erken bağlamayı ve geç bağlamayı destekler; ancak çift arabirim, vtable bağlamayı da destekler.
Aşağıdaki örnekte tipik bir uygulaması gösterilmektedir 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>
Varsayılan olarak, IDispatchImpl
sınıf kayıt defterinde T için tür bilgilerini arar. Kaydedilmemiş bir arabirim uygulamak için, önceden tanımlanmış bir sürüm numarası kullanarak kayıt defterine erişmeden sınıfını kullanabilirsiniz IDispatchImpl
. wMajor değeri olarak 0xFFFF ve wMinor değeri olarak 0xFFFF bir IDispatchImpl
nesne oluşturursanız, IDispatchImpl
sınıf kayıt defteri yerine .dll dosyasından tür kitaplığını alır.
IDispatchImpl
, çift arabirim için tür CComTypeInfoHolder
bilgilerini yöneten türün statik bir üyesini içerir. Aynı çift arabirimi uygulayan birden çok nesneniz varsa, yalnızca bir örneği CComTypeInfoHolder
kullanılır.
Devralma Hiyerarşisi
T
IDispatchImpl
Gereksinimler
Üst bilgi: atlcom.h
IDispatchImpl::GetIDsOfNames
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Açıklamalar
Bkz . Windows SDK'sında IDispatch::GetIDsOfNames .
IDispatchImpl::GetTypeInfo
Çift arabirim için tür bilgilerini alır.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Açıklamalar
Bkz . Windows SDK'sında IDispatch::GetTypeInfo .
IDispatchImpl::GetTypeInfoCount
Çift arabirim için kullanılabilir tür bilgisi olup olmadığını belirler.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Açıklamalar
Bkz IDispatch::GetTypeInfoCount
. Windows SDK'sı.
IDispatchImpl::IDispatchImpl
Oluşturucu. İkili arabirim için tür bilgilerini yöneten korumalı üye değişkenini çağırır AddRef
. Yok edici çağrısında bulunur Release
.
IDispatchImpl();
IDispatchImpl::Invoke
Çift arabirim tarafından kullanıma sunulan yöntemlere ve özelliklere erişim sağlar.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Açıklamalar
Bkz. Windows SDK'sında IDispatch::Invoke .