Makros zusammengesetzter Steuerelemente

Diese Makros definieren Ereignissenkenzuordnungen und Einträge.

Makro Beschreibung
BEGIN_SINK_MAP Markiert den Anfang der Ereignissenkenzuordnung für das zusammengesetzte Steuerelement.
END_SINK_MAP Markiert das Ende der Ereignissenkenzuordnung für das zusammengesetzte Steuerelement.
SINK_ENTRY Eintrag zur Ereignissenkenzuordnung.
SINK_ENTRY_EX Eintrag zur Ereignissenkezuordnung mit einem zusätzlichen Parameter.
SINK_ENTRY_EX_P (Visual Studio 2017) Ähnlich wie SINK_ENTRY_EX, mit der Ausnahme, dass ein Zeiger auf iid benötigt wird.
SINK_ENTRY_INFO Eintrag zur Ereignissenkezuordnung mit manuell bereitgestellten Typinformationen für die Verwendung mit IDispEventSimpleImpl.
SINK_ENTRY_INFO_P (Visual Studio 2017) Ähnlich wie SINK_ENTRY_INFO, mit der Ausnahme, dass ein Zeiger auf iid benötigt wird.

Anforderungen

Kopfzeile: atlcom.h

BEGIN_SINK_MAP

Deklariert den Anfang der Ereignissenkezuordnung für das zusammengesetzte Steuerelement.

BEGIN_SINK_MAP(_class)

Parameter

_Klasse
[in] Gibt das Steuerelement an.

Beispiel

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

Hinweise

Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.

END_SINK_MAP

Deklariert das Ende der Ereignissenkenzuordnung für das zusammengesetzte Steuerelement.

END_SINK_MAP()

Beispiel

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

Hinweise

Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.

SINK_ENTRY

Deklariert die Handlerfunktion (fn) für das angegebene Ereignis (dispid) des durch die ID identifizierten Steuerelements.

SINK_ENTRY( id, dispid, fn )

Parameter

id
[in] Identifiziert das Steuerelement.

dispid
[in] Identifiziert das angegebene Ereignis.

Fn
[in] Name der Ereignishandlerfunktion. Diese Funktion muss die _stdcall Aufrufkonvention verwenden und über die entsprechende dispinterface-Formatsignatur verfügen.

Beispiel

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

Hinweise

Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.

SINK_ENTRY_EX und SINK_ENTRY_EX_P

Deklariert die Handlerfunktion (fn) für das angegebene Ereignis (dispid) der Verteilerschnittstelle (iid) für das durch die ID identifizierte Steuerelement.

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

Parameter

id
[in] Identifiziert das Steuerelement.

iid
[in] Identifiziert die Verteilerschnittstelle.

piid
[in] Zeiger auf die Verteilerschnittstelle.

dispid
[in] Identifiziert das angegebene Ereignis.

Fn
[in] Name der Ereignishandlerfunktion. Diese Funktion muss die _stdcall Aufrufkonvention verwenden und über die entsprechende dispinterface-Formatsignatur verfügen.

Beispiel

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

Hinweise

Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.

SINK_ENTRY_INFO und SINK_ENTRY_INFO_P

Verwenden Sie das SINK_ENTRY_INFO-Makro in einer Ereignissenkenzuordnung, um die von IDispEventSimpleImpl benötigten Informationen bereitzustellen, um Ereignisse an die relevante Handlerfunktion weiterzuleiten.

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

Parameter

id
[in] Nicht signierte ganze Zahl, die die Ereignisquelle identifiziert. Dieser Wert muss mit dem nID-Vorlagenparameter übereinstimmen, der in der zugehörigen IDispEventSimpleImpl-Basisklasse verwendet wird.

iid
[in] IID, die die Verteilerschnittstelle identifiziert.

piid
[in] Zeiger auf IID, der die Verteilerschnittstelle identifiziert.

dispid
[in] DISPID, die das angegebene Ereignis identifiziert.

Fn
[in] Name der Ereignishandlerfunktion. Diese Funktion muss die _stdcall Aufrufkonvention verwenden und über die entsprechende dispinterface-Formatsignatur verfügen.

info
[in] Geben Sie Informationen für die Ereignishandlerfunktion ein. Diese Typinformationen werden in Form eines Zeigers auf eine _ATL_FUNC_INFO Struktur bereitgestellt. CC_CDECL ist die einzige Option, die in Windows CE für das CALLCONV-Feld der _ATL_FUNC_INFO Struktur unterstützt wird. Jeder andere Wert wird daher nicht unterstützt undefiniert.

Hinweise

Die ersten vier Makroparameter sind identisch mit denen für das SINK_ENTRY_EX Makro. Der letzte Parameter stellt Typinformationen für das Ereignis bereit. Die CE ATL-Implementierung von ActiveX-Ereignissenken unterstützt nur Rückgabewerte vom Typ HRESULT oder void aus den Ereignishandlermethoden. Jeder andere Rückgabewert wird nicht unterstützt, und sein Verhalten ist nicht definiert.

Siehe auch

Makros
Globale Funktionen zusammengesetzter Steuerelemente