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.