Sdílet prostřednictvím


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.

Viz také

Makra
Globální funkce složených ovládacích prvků