Aracılığıyla paylaş


IDispEventSimpleImpl Sınıfı

Bu sınıf, bir tür kitaplığından tür bilgileri almadan yöntemlerin uygulamalarını IDispatch 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>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>

Parametreler

Nıd
Kaynak nesne için benzersiz bir tanımlayıcı. Bileşik denetimin temel sınıfı olduğunda IDispEventSimpleImpl , 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 IDispEventSimpleImpl.

pdiid
Bu sınıf tarafından uygulanan olay dispinterface IID işaretçisi.

Üyeler

Genel Yöntemler

Veri Akışı Adı Açıklama
IDispEventSimpleImpl::Advise Varsayılan olay kaynağıyla bağlantı kurar.
IDispEventSimpleImpl::D ispEventAdvise Olay kaynağıyla bir bağlantı kurar.
IDispEventSimpleImpl::D ispEventUnadvise Olay kaynağıyla bağlantıyı keser.
IDispEventSimpleImpl::GetIDsOfNames E_NOTIMPL döndürür.
IDispEventSimpleImpl::GetTypeInfo E_NOTIMPL döndürür.
IDispEventSimpleImpl::GetTypeInfoCount E_NOTIMPL döndürür.
IDispEventSimpleImpl::Invoke Olay havuzu eşlemesinde listelenen olay işleyicilerini çağırır.
IDispEventSimpleImpl::Unadvise Varsayılan olay kaynağıyla bağlantıyı keser.

Açıklamalar

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

IDispEventSimpleImpl 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_INFO makro ekleyin.

  • Her bir girişe parametre olarak bir _ATL_FUNC_INFO yapısına bir işaretçi geçirerek her olay için tür bilgilerini sağlayın. x86 platformunda değerin _ATL_FUNC_INFO.cc __stdcall geri çağırma işlevi çağırma yöntemiyle CC_CDECL olması gerekir.

  • 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 IDispEventSimpleImpl 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 IDispEventSimpleImpl sınırlıdır.

IDispEventSimplImplbir tür kitaplığından arabirim hakkında tür bilgisi almaması dışında IDispEventImpl ile aynı işlevselliği sağlar. Sihirbazlar yalnızca tabanlı IDispEventImplkod oluşturur, ancak kodu el ile ekleyerek kullanabilirsiniz IDispEventSimpleImpl . Olay arabirimini açıklayan bir tür kitaplığınız yoksa veya tür kitaplığını kullanmayla ilgili ek yükü önlemek istediğinizde kullanın IDispEventSimpleImpl .

Not

IDispEventImplve IDispEventSimpleImpl ana COM nesnenizdeki sınıf üyelerine doğrudan erişim izni verirken her IDispEventImpl veya 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

Gereksinimler

Üst bilgi: atlcom.h

IDispEventSimpleImpl::Advise

pUnk ile temsil edilen olay kaynağıyla bağlantı kurmak için bu yöntemi çağırın.

HRESULT Advise(IUnknown* pUnk);

Parametreler

Punk
[in] Olay kaynağı nesnesinin IUnknown arabirimine ilişkin bir işaretçi.

Dönüş Değeri

S_OK veya herhangi bir hata HRESULT değeri.

Açıklamalar

Bağlantı kurulduktan sonra pUnk'tan tetiklenen olaylar, olay havuzu eşlemesi yoluyla sınıfınızdaki işleyicilere yönlendirilir.

Not

Sınıfınız birden çok IDispEventSimpleImpl sınıftan türetiliyorsa, çağrının kapsamını ilgilendiğiniz belirli bir temel sınıfla karşılayarak bu yönteme yapılan çağrıları kesinleştirmeniz gerekir.

Advisevarsayılan olay kaynağıyla bir bağlantı kurar, AtlGetObjectSourceInterface tarafından belirlenen nesnenin varsayılan olay kaynağının IID değerini alır.

IDispEventSimpleImpl::D ispEventAdvise

pUnk ile temsil edilen olay kaynağıyla bağlantı kurmak için bu yöntemi çağırın.

HRESULT DispEventAdvise(IUnknown* pUnk  const IID* piid);

Parametreler

Punk
[in] Olay kaynağı nesnesinin IUnknown arabirimine ilişkin bir işaretçi.

piid
Olay kaynağı nesnesinin IID'sine bir işaretçi.

Dönüş Değeri

S_OK veya herhangi bir hata HRESULT değeri.

Açıklamalar

Daha sonra pUnk'tan tetiklenen olaylar, olay havuzu eşlemesi yoluyla sınıfınızdaki işleyicilere yönlendirilir.

Not

Sınıfınız birden çok IDispEventSimpleImpl sınıftan türetiliyorsa, çağrının kapsamını ilgilendiğiniz belirli bir temel sınıfla karşılayarak bu yönteme yapılan çağrıları kesinleştirmeniz gerekir.

DispEventAdvise içinde pdiidbelirtilen olay kaynağıyla bir bağlantı kurar.

IDispEventSimpleImpl::D ispEventUnadvise

pUnk tarafından temsil edilen olay kaynağıyla bağlantıyı keser.

HRESULT DispEventUnadvise(IUnknown* pUnk  const IID* piid);

Parametreler

Punk
[in] Olay kaynağı nesnesinin IUnknown arabirimine ilişkin bir işaretçi.

piid
Olay kaynağı nesnesinin IID'sine bir işaretçi.

Dönüş Değeri

S_OK veya herhangi bir hata HRESULT değeri.

Açıklamalar

Bağlantı kesildikten sonra olaylar artık olay havuzu eşlemesinde listelenen işleyici işlevlerine yönlendirilmeyecek.

Not

Sınıfınız birden çok IDispEventSimpleImpl sınıftan türetiliyorsa, çağrının kapsamını ilgilendiğiniz belirli bir temel sınıfla karşılayarak bu yönteme yapılan çağrıları kesinleştirmeniz gerekir.

DispEventAdvise içinde belirtilen pdiidolay kaynağıyla kurulan bağlantıyı keser.

IDispEventSimpleImpl::GetIDsOfNames

bu uygulaması IDispatch::GetIDsOfNames E_NOTIMPL döndürür.

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

Açıklamalar

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

IDispEventSimpleImpl::GetTypeInfo

bu uygulaması IDispatch::GetTypeInfo E_NOTIMPL döndürür.

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

Açıklamalar

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

IDispEventSimpleImpl::GetTypeInfoCount

bu uygulaması IDispatch::GetTypeInfoCount E_NOTIMPL döndürür.

STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);

Açıklamalar

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

IDispEventSimpleImpl::Invoke

Bu uygulaması, IDispatch::Invoke olay havuzu eşlemesinde listelenen olay işleyicilerini çağırır.

STDMETHOD(Invoke)(
    DISPID dispidMember,
    REFIID /* riid */,
    LCID lcid,
    WORD /* wFlags */,
    DISPPARMS* pdispparams,
    VARIANT* pvarResult,
    EXCEPINFO* /* pexcepinfo */,
    UINT* /* puArgErr */);

Açıklamalar

Bkz. IDispatch::Invoke.

IDispEventSimpleImpl::Unadvise

pUnk tarafından temsil edilen olay kaynağıyla bağlantıyı keser.

HRESULT Unadvise(IUnknown* pUnk);

Parametreler

Punk
[in] Olay kaynağı nesnesinin IUnknown arabirimine ilişkin bir işaretçi.

Dönüş Değeri

S_OK veya herhangi bir hata HRESULT değeri.

Açıklamalar

Bağlantı kesildikten sonra olaylar artık olay havuzu eşlemesinde listelenen işleyici işlevlerine yönlendirilmeyecek.

Not

Sınıfınız birden çok IDispEventSimpleImpl sınıftan türetiliyorsa, çağrının kapsamını ilgilendiğiniz belirli bir temel sınıfla karşılayarak bu yönteme yapılan çağrıları kesinleştirmeniz gerekir.

Unadvise içinde pdiidbelirtilen varsayılan olay kaynağıyla kurulan bağlantıyı keser.

Unavisevarsayılan olay kaynağıyla bağlantıyı keser, AtlGetObjectSourceInterface tarafından belirlenen nesnenin varsayılan olay kaynağının IID değerini alır.

Ayrıca bkz.

_ATL_FUNC_INFO Yapısı
IDispatchImpl Sınıfı
IDispEventImpl Sınıfı
SINK_ENTRY_INFO
Sınıfa Genel Bakış