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 CComTypeInfoHolder
bir tür CComTypeInfoHolder
sı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.
IDispEventImpl
IDispEventSimpleImpl 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
IDispEventImpl
ve 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
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ış