Udostępnij za pośrednictwem


Makra kontrolek złożonych

Te makra definiują mapy i wpisy ujścia zdarzeń.

Makro opis
BEGIN_SINK_MAP Oznacza początek mapy ujścia zdarzeń dla złożonej kontrolki.
END_SINK_MAP Oznacza koniec mapy ujścia zdarzeń dla kontrolki złożonej.
SINK_ENTRY Wpis do mapy ujścia zdarzeń.
SINK_ENTRY_EX Wpis do mapy ujścia zdarzeń z dodatkowym parametrem.
SINK_ENTRY_EX_P (Visual Studio 2017) Podobnie jak SINK_ENTRY_EX z tą różnicą, że wskaźnik ma wskaźnik do identyfikatora iid.
SINK_ENTRY_INFO Wpis do mapy ujścia zdarzeń z ręcznie podanymi informacjami o typie do użycia z interfejsem IDispEventSimpleImpl.
SINK_ENTRY_INFO_P (Visual Studio 2017) Podobnie jak SINK_ENTRY_INFO z tą różnicą, że wskaźnik ma wskaźnik do identyfikatora iid.

Wymagania

Nagłówek: atlcom.h

BEGIN_SINK_MAP

Deklaruje początek mapy ujścia zdarzeń dla kontrolki złożonej.

BEGIN_SINK_MAP(_class)

Parametry

_klasa
[in] Określa kontrolkę.

Przykład

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()

Uwagi

Implementacja ce ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń. Każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.

END_SINK_MAP

Deklaruje koniec mapy ujścia zdarzeń dla złożonej kontrolki.

END_SINK_MAP()

Przykład

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()

Uwagi

Implementacja ce ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń. Każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.

SINK_ENTRY

Deklaruje funkcję obsługi (fn) dla określonego zdarzenia (dispid) kontrolki zidentyfikowanej przez identyfikator.

SINK_ENTRY( id, dispid, fn )

Parametry

id
[in] Identyfikuje kontrolkę.

dispid
[in] Identyfikuje określone zdarzenie.

Fn
[in] Nazwa funkcji obsługi zdarzeń. Ta funkcja musi używać _stdcall konwencji wywoływania i mieć odpowiedni podpis w stylu dispinterface.

Przykład

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()

Uwagi

Implementacja ce ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń. Każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.

SINK_ENTRY_EX i SINK_ENTRY_EX_P

Deklaruje funkcję obsługi (fn) dla określonego zdarzenia (dispid) interfejsu dispatch (iid) dla kontrolki zidentyfikowanej przez identyfikator.

SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)

Parametry

id
[in] Identyfikuje kontrolkę.

identyfikator iid
[in] Identyfikuje interfejs wysyłania.

piid
[in] Wskaźnik do interfejsu wysyłania.

dispid
[in] Identyfikuje określone zdarzenie.

Fn
[in] Nazwa funkcji obsługi zdarzeń. Ta funkcja musi używać _stdcall konwencji wywoływania i mieć odpowiedni podpis w stylu dispinterface.

Przykład

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()

Uwagi

Implementacja ce ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń. Każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.

SINK_ENTRY_INFO i SINK_ENTRY_INFO_P

Użyj makra SINK_ENTRY_INFO na mapie ujścia zdarzeń, aby udostępnić informacje wymagane przez usługę IDispEventSimpleImple w celu kierowania zdarzeń do odpowiedniej funkcji obsługi.

SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)

Parametry

id
[in] Niepodpisane liczby całkowite identyfikujące źródło zdarzenia. Ta wartość musi być zgodna z parametrem szablonu nID używanym w powiązanej klasie bazowej IDispEventSimpleImpl .

identyfikator iid
[in] Identyfikator IID identyfikujący interfejs wysyłania.

piid
[in] Wskaźnik do identyfikatora IID identyfikujący interfejs wysyłania.

dispid
[in] DISPID identyfikujący określone zdarzenie.

Fn
[in] Nazwa funkcji obsługi zdarzeń. Ta funkcja musi używać _stdcall konwencji wywoływania i mieć odpowiedni podpis w stylu dispinterface.

Informacji
[in] Wpisz informacje dotyczące funkcji obsługi zdarzeń. Informacje o tym typie są udostępniane w postaci wskaźnika do _ATL_FUNC_INFO struktury. CC_CDECL jest jedyną opcją obsługiwaną w systemie Windows CE dla pola _ATL_FUNC_INFO CALLCONV struktury. Każda inna wartość jest nieobsługiwana, dlatego jej zachowanie jest niezdefiniowane.

Uwagi

Pierwsze cztery parametry makra są takie same jak te dla makra SINK_ENTRY_EX . Końcowy parametr zawiera informacje o typie zdarzenia. Implementacja ce ATL ujścia zdarzeń ActiveX obsługuje tylko wartości zwracane typu HRESULT lub void z metod obsługi zdarzeń. Każda inna wartość zwracana jest nieobsługiwana, a jego zachowanie jest niezdefiniowane.

Zobacz też

Makra
Funkcje globalne kontrolek złożonych