Aracılığıyla paylaş


IDispEventImpl Sınıfı

Bu sınıf, yöntemlerin IDispatch uygulamalarını sağlar.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

template <UINT nID, class T,
    const IID* pdiid = &IID_NULL,
    const GUID* plibid = &GUID_NULL,
    WORD wMajor = 0,
    WORD wMinor = 0,
    class tihclass = CcomTypeInfoHolder>
class ATL_NO_VTABLE IDispEventImpl : public IDispEventSimpleImpl<nID, T, pdiid>

Parametreler

Nıd
Kaynak nesne için benzersiz bir tanımlayıcı. Bileşik denetimin temel sınıfı olduğunda IDispEventImpl , bu parametre için istenen kapsanan denetimin kaynak kimliğini kullanın. Diğer durumlarda, rastgele bir pozitif tamsayı kullanın.

T
kullanıcının sınıfından türetilir IDispEventImpl.

pdiid
Bu sınıf tarafından uygulanan olay dispinterface IID işaretçisi. Bu arabirim plibid, wMajor ve wMinor ile belirtilen tür kitaplığında tanımlanmalıdır.

plibid
pdiid ile işaret edilen dağıtım arabirimini tanımlayan tür kitaplığına bir işaretçi. &GUID_NULL, tür kitaplığı olayları kaynak olarak alan nesneden yüklenir.

wMajor
Tür kitaplığının ana sürümü. Varsayılan değer 0'tir.

wMinor
Tür kitaplığının ikincil sürümü. Varsayılan değer 0'tir.

tihclass
T için tür bilgilerini yönetmek için kullanılan sınıf. Varsayılan değer bir tür sınıfıdır; ancak, dışında CComTypeInfoHolderbir tür CComTypeInfoHoldersınıfı sağlayarak bu şablon parametresini geçersiz kılabilirsiniz.

Üyeler

Genel Tür Tanımları

Veri Akışı Adı Açıklama
IDispEventImpl::_tihclass Tür bilgilerini yönetmek için kullanılan sınıf. Varsayılan olarak, CComTypeInfoHolder.

Ortak Oluşturucular

Veri Akışı Adı Açıklama
IDispEventImpl::IDispEventImpl Oluşturucu.

Genel Yöntemler

Veri Akışı Adı Açıklama
IDispEventImpl::GetFuncInfoFromId Belirtilen dağıtım tanımlayıcısı için işlev dizinini bulur.
IDispEventImpl::GetIDsOfNames Tek bir üyeyi ve isteğe bağlı bağımsız değişken adları kümesini karşılık gelen bir tamsayı DISPID kümesiyle eşler.
IDispEventImpl::GetTypeInfo Bir nesnenin tür bilgilerini alır.
IDispEventImpl::GetTypeInfoCount Tür bilgisi arabirimlerinin sayısını alır.
IDispEventImpl::GetUserDefinedType Kullanıcı tanımlı bir türün temel türünü alır.

Açıklamalar

IDispEventImpl , bu arabirimdeki her yöntem/olay için uygulama kodu sağlamanıza gerek kalmadan bir olay dispinterface uygulama yöntemi sağlar. IDispEventImpl yöntemlerin IDispatch uygulamalarını sağlar. Yalnızca işlemek istediğiniz olaylar için uygulama sağlamanız gerekir.

IDispEventImpl olayları uygun işleyici işlevine yönlendirmek için sınıfınızdaki olay havuzu eşlemesiyle birlikte çalışır. Bu sınıfı kullanmak için:

İşlemek istediğiniz her nesnedeki her olay için olay havuzu eşlemesine bir SINK_ENTRY veya SINK_ENTRY_EX makro ekleyin. Bileşik denetimin temel sınıfı olarak kullanırkenIDispEventImpl, olay havuzu eşlemesindeki tüm girişlerin olay kaynaklarıyla bağlantıyı kurmak ve kesmek için AtlAdviseSinkMap'i çağırabilirsiniz. Diğer durumlarda veya daha fazla denetim için Kaynak nesne ile temel sınıf arasında bağlantı kurmak için DispEventAdvise çağrısı yapın. Bağlantıyı kesmek için DispEventUnadvise'yi çağırın.

Olayları işlemeniz gereken her nesne için öğesinden IDispEventImpl türetmelisiniz (nID için benzersiz bir değer kullanarak). Temel sınıfı, bir kaynak nesneye eklemeden sonra farklı bir kaynak nesneye danışmanlık yaparak yeniden kullanabilirsiniz, ancak tek seferde tek bir nesne tarafından işlenebilen kaynak nesne sayısı üst sınırı, temel sınıf sayısıyla IDispEventImpl sınırlıdır.

IDispEventImplIDispEventSimpleImpl ile aynı işlevi sağlar, ancak arabirim hakkındaki tür bilgilerini bir _ATL_FUNC_INFO yapısına işaretçi olarak sağlamak yerine bir tür kitaplığından alır. Olay arabirimini açıklayan bir tür kitaplığınız yoksa veya tür kitaplığını kullanmayla ilişkili ek yükü önlemek istediğinizde kullanın IDispEventSimpleImpl .

Not

IDispEventImplve IDispEventSimpleImpl ana COM nesnenizdeki sınıf üyelerine doğrudan erişime izin verirken her IDispEventImpl ve IDispEventSimpleImpl temel sınıfın ayrı bir COM kimliği olarak davranmasını sağlamak için kendi uygulamalarını IUnknown::QueryInterface sağlayın.

ActiveX olay havuzlarının CE ATL uygulaması yalnızca HRESULT türünde dönüş değerlerini destekler veya olay işleyicisi yöntemlerinizden geçersizdir; diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

Daha fazla bilgi için bkz . IDispEventImpl'i Destekleme.

Devralma Hiyerarşisi

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

Gereksinimler

Üst bilgi: atlcom.h

IDispEventImpl::GetFuncInfoFromId

Belirtilen dağıtım tanımlayıcısı için işlev dizinini bulur.

HRESULT GetFuncInfoFromId(
    const IID& iid,
    DISPID dispidMember,
    LCID lcid,
    _ATL_FUNC_INFO& info);

Parametreler

iid
[in] İşlevin kimliğine başvuru.

dispidMember
[in] İşlevin dağıtım kimliği.

lcid
[in] İşlev kimliğinin yerel ayar bağlamı.

Bilgi
[in] İşlevin nasıl çağrıldığını gösteren yapı.

Dönüş Değeri

Standart bir HRESULT değeri.

IDispEventImpl::GetIDsOfNames

Tek bir üyeyi ve isteğe bağlı bağımsız değişken adlarını, IDispatch::Invoke'a yapılan sonraki çağrılarda kullanılabilen karşılık gelen bir tamsayı DISPID kümesiyle eşler.

STDMETHOD(GetIDsOfNames)(
    REFIID riid,
    LPOLESTR* rgszNames,
    UINT cNames,
    LCID lcid,
    DISPID* rgdispid);

Açıklamalar

Bkz . Windows SDK'sında IDispatch::GetIDsOfNames .

IDispEventImpl::GetTypeInfo

Bir nesne için tür bilgilerini alır ve bu da bir arabirimin tür bilgisini almak için kullanılabilir.

STDMETHOD(GetTypeInfo)(
    UINT itinfo,
    LCID lcid,
    ITypeInfo** pptinfo);

Açıklamalar

IDispEventImpl::GetTypeInfoCount

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Açıklamalar

Bkz . Windows SDK'sında IDispatch::GetTypeInfoCount .

IDispEventImpl::GetUserDefinedType

Kullanıcı tanımlı bir türün temel türünü alır.

VARTYPE GetUserDefinedType(
    ITypeInfo* pTI,
    HREFTYPE hrt);

Parametreler

Ptı
[in] Kullanıcı tanımlı türü içeren ITypeInfo arabirimine yönelik bir işaretçi.

hrt
[in] Alınacak tür açıklamasının tanıtıcısı.

Dönüş Değeri

Değişken türü.

Açıklamalar

Bkz . ITypeInfo::GetRefTypeInfo.

IDispEventImpl::IDispEventImpl

Oluşturucu. plibid, pdiid, wMajor ve wMinor sınıf şablonu parametrelerinin değerlerini depolar.

IDispEventImpl();

IDispEventImpl::tihclass

Bu tür tanımı, sınıf şablonu parametresi tihclass örneğidir.

typedef tihclass _tihclass;

Açıklamalar

Varsayılan olarak sınıfı şeklindedir CComTypeInfoHolder. CComTypeInfoHolder sınıfı için tür bilgilerini yönetir.

Ayrıca bkz.

_ATL_FUNC_INFO Yapısı
IDispatchImpl Sınıfı
IDispEventSimpleImpl Sınıfı
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Sınıfa Genel Bakış