Makra složených ovládacích prvků
Tato makra definují mapy a položky jímky událostí.
Makro | Popis |
---|---|
BEGIN_SINK_MAP | Označí začátek mapy jímky událostí pro složený ovládací prvek. |
END_SINK_MAP | Označí konec mapy jímky událostí pro složený ovládací prvek. |
SINK_ENTRY | Položka do mapy jímky událostí |
SINK_ENTRY_EX | Položka do mapy jímky událostí s dodatečným parametrem |
SINK_ENTRY_EX_P | (Visual Studio 2017) Podobá se SINK_ENTRY_EX s tím rozdílem, že přebírá ukazatel na iid. |
SINK_ENTRY_INFO | Položka do mapy jímky událostí s ručně zadanými informacemi o typu pro použití s IDispEventSimpleImpl. |
SINK_ENTRY_INFO_P | (Visual Studio 2017) Podobá se SINK_ENTRY_INFO s tím rozdílem, že přebírá ukazatel na iid. |
Požadavky
Hlavička: atlcom.h
BEGIN_SINK_MAP
Deklaruje začátek mapy jímky událostí pro složený ovládací prvek.
BEGIN_SINK_MAP(_class)
Parametry
_třída
[v] Určuje ovládací prvek.
Příklad
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()
Poznámky
Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z metod obslužné rutiny událostí. Jakákoli jiná návratová hodnota není podporována a její chování není definováno.
END_SINK_MAP
Deklaruje konec mapy jímky událostí pro složený ovládací prvek.
END_SINK_MAP()
Příklad
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()
Poznámky
Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z metod obslužné rutiny událostí. Jakákoli jiná návratová hodnota není podporována a její chování není definováno.
SINK_ENTRY
Deklaruje funkci obslužné rutiny (fn) pro zadanou událost (dispid) ovládacího prvku identifikovaného id.
SINK_ENTRY( id, dispid, fn )
Parametry
id
[v] Identifikuje ovládací prvek.
dispid
[v] Identifikuje zadanou událost.
Fn
[v] Název funkce obslužné rutiny události Tato funkce musí používat _stdcall
konvenci volání a musí mít odpovídající podpis ve stylu dispinterface.
Příklad
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()
Poznámky
Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z metod obslužné rutiny událostí. Jakákoli jiná návratová hodnota není podporována a její chování není definováno.
SINK_ENTRY_EX a SINK_ENTRY_EX_P
Deklaruje funkci obslužné rutiny (fn) pro zadanou událost (dispid), rozhraní dispatch (iid) pro ovládací prvek identifikovaný id.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Parametry
id
[v] Identifikuje ovládací prvek.
iid
[v] Identifikuje rozhraní pro odeslání.
piid
[v] Ukazatel na rozhraní dispečera.
dispid
[v] Identifikuje zadanou událost.
Fn
[v] Název funkce obslužné rutiny události Tato funkce musí používat _stdcall
konvenci volání a musí mít odpovídající podpis ve stylu dispinterface.
Příklad
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()
Poznámky
Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z metod obslužné rutiny událostí. Jakákoli jiná návratová hodnota není podporována a její chování není definováno.
SINK_ENTRY_INFO a SINK_ENTRY_INFO_P
Pomocí SINK_ENTRY_INFO makra v mapě jímky událostí zadejte informace potřebné IDispEventSimpleImpl ke směrování událostí do příslušné funkce obslužné rutiny.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Parametry
id
[v] Celé číslo bez znaménka identifikující zdroj události Tato hodnota musí odpovídat parametru šablony nID použitému v související základní třídě IDispEventSimpleImpl .
iid
[v] IID, který identifikuje rozhraní dispečera.
piid
[v] Ukazatel na IID, který identifikuje rozhraní dispečera.
dispid
[v] DISPID identifikující zadanou událost.
Fn
[v] Název funkce obslužné rutiny události Tato funkce musí používat _stdcall
konvenci volání a musí mít odpovídající podpis ve stylu dispinterface.
informace
[v] Informace o typu pro funkci obslužné rutiny události. Tyto informace o typu jsou k dispozici ve formě ukazatele na _ATL_FUNC_INFO
strukturu. CC_CDECL je jediná možnost podporovaná v systém Windows CE pro pole _ATL_FUNC_INFO
CALLCONV struktury. Jakákoli jiná hodnota není podporována, takže její chování není definováno.
Poznámky
První čtyři parametry makra jsou stejné jako parametry SINK_ENTRY_EX makra. Poslední parametr poskytuje informace o typu události. Implementace CE ATL pro jímky událostí ActiveX podporuje pouze návratové hodnoty typu HRESULT nebo void z metod obslužné rutiny událostí. Jakákoli jiná návratová hodnota není podporována a její chování není definováno.