Aracılığıyla paylaş


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 .

Ayrıca bkz.

Sınıfa Genel Bakış