Bileşik Denetim Makroları
Bu makrolar olay havuzu eşlemelerini ve girdilerini tanımlar.
Makro | Açıklama |
---|---|
BEGIN_SINK_MAP | Bileşik denetim için olay havuzu eşlemesinin başlangıcını işaretler. |
END_SINK_MAP | Bileşik denetim için olay havuzu eşlemesinin sonunu işaretler. |
SINK_ENTRY | Olay havuzu haritasına giriş. |
SINK_ENTRY_EX | Ek bir parametreyle olay havuzu eşlemesine giriş. |
SINK_ENTRY_EX_P | (Visual Studio 2017) SINK_ENTRY_EX benzer, ancak iid'ye bir işaretçi alır. |
SINK_ENTRY_INFO | IDispEventSimpleImpl ile kullanılmak üzere el ile sağlanan tür bilgileriyle olay havuzu eşlemesine giriş. |
SINK_ENTRY_INFO_P | (Visual Studio 2017) iid işaretçisi alması dışında SINK_ENTRY_INFO benzer. |
Gereksinimler
Üst bilgi: atlcom.h
BEGIN_SINK_MAP
Bileşik denetim için olay havuzu eşlemesinin başlangıcını bildirir.
BEGIN_SINK_MAP(_class)
Parametreler
_sınıf
[in] Denetimi belirtir.
Örnek
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Açıklamalar
ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.
END_SINK_MAP
Bileşik denetim için olay havuzu eşlemesinin sonunu bildirir.
END_SINK_MAP()
Örnek
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Açıklamalar
ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.
SINK_ENTRY
Kimlikle tanımlanan denetimin belirtilen olay (dispid) için işleyici işlevini (fn) bildirir.
SINK_ENTRY( id, dispid, fn )
Parametreler
id
[in] Denetimi tanımlar.
dispid
[in] Belirtilen olayı tanımlar.
Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall
ve uygun dispinterface stili imzaya sahip olmalıdır.
Örnek
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Açıklamalar
ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.
SINK_ENTRY_EX ve SINK_ENTRY_EX_P
Kimlik tarafından tanımlanan denetim için dağıtım arabiriminin (iid) belirtilen olayı (dispid) işleyici işlevini (fn) bildirir.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Parametreler
id
[in] Denetimi tanımlar.
iid
[in] Dağıtım arabirimini tanımlar.
piid
[in] Dağıtım arabiriminin işaretçisi.
dispid
[in] Belirtilen olayı tanımlar.
Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall
ve uygun dispinterface stili imzaya sahip olmalıdır.
Örnek
BEGIN_SINK_MAP(CMyCompositCtrl2)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY_EX(IDC_CALENDAR1, __uuidof(DCalendarEvents), DISPID_CLICK,
&CMyCompositCtrl2::ClickCalendar1)
SINK_ENTRY_EX(IDC_CALENDAR2, __uuidof(DCalendarEvents), DISPID_CLICK,
&CMyCompositCtrl2::ClickCalendar2)
END_SINK_MAP()
Açıklamalar
ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.
SINK_ENTRY_INFO ve SINK_ENTRY_INFO_P
Olayları ilgili işleyici işlevine yönlendirmek için IDispEventSimpleImpl tarafından gereken bilgileri sağlamak için olay havuzu eşlemesinde SINK_ENTRY_INFO makroyu kullanın.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Parametreler
id
[in] Olay kaynağını tanımlayan işaretsiz tamsayı. Bu değer, ilgili IDispEventSimpleImpl temel sınıfında kullanılan nID şablonu parametresiyle eşleşmelidir.
iid
[in] Dağıtım arabirimini tanımlayan IID.
piid
[in] Dağıtım arabirimini tanımlayan IID işaretçisi.
dispid
[in] Belirtilen olayı tanımlayan DISPID.
Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall
ve uygun dispinterface stili imzaya sahip olmalıdır.
Bilgi
[in] Olay işleyici işlevi için bilgi yazın. Bu tür bilgileri bir yapı işaretçisi _ATL_FUNC_INFO
biçiminde sağlanır. CC_CDECL, yapının CALLCONV alanı için Windows CE'de desteklenen tek seçenektir _ATL_FUNC_INFO
. Diğer tüm değerler desteklenmez, bu nedenle davranışı tanımlanmamıştır.
Açıklamalar
İlk dört makro parametresi, SINK_ENTRY_EX makronun parametreleriyle aynıdır. Son parametre, olay için tür bilgileri sağlar. ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.