Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
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 IUnknown::QueryInterface veya IDispEventImpl temel sınıfın ayrı bir COM kimliği olarak davranmasını sağlamak için kendi uygulamalarını IDispEventSimpleImpl 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ış