Macros de contrôle composite
Ces macros définissent les mappages et entrées du récepteur d’événements.
Macro | Description |
---|---|
BEGIN_SINK_MAP | Marque le début du mappage du récepteur d’événements pour le contrôle composite. |
END_SINK_MAP | Marque la fin du mappage du récepteur d’événements pour le contrôle composite. |
SINK_ENTRY | Entrée dans la carte du récepteur d’événements. |
SINK_ENTRY_EX | Entrée dans la carte récepteur d’événements avec un paramètre supplémentaire. |
SINK_ENTRY_EX_P | (Visual Studio 2017) Semblable à SINK_ENTRY_EX sauf qu’il faut un pointeur vers iid. |
SINK_ENTRY_INFO | Entrée dans la carte du récepteur d’événements avec des informations de type fournies manuellement à utiliser avec IDispEventSimpleImpl. |
SINK_ENTRY_INFO_P | (Visual Studio 2017) Similaire à SINK_ENTRY_INFO sauf qu’il faut un pointeur vers iid. |
Spécifications
En-tête : atlcom.h
BEGIN_SINK_MAP
Déclare le début du mappage du récepteur d’événements pour le contrôle composite.
BEGIN_SINK_MAP(_class)
Paramètres
_classe
[in] Spécifie le contrôle.
Exemple
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()
Notes
L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d’événements. Toute autre valeur de retour n’est pas prise en charge et son comportement n’est pas défini.
END_SINK_MAP
Déclare la fin du mappage du récepteur d’événements pour le contrôle composite.
END_SINK_MAP()
Exemple
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()
Notes
L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d’événements. Toute autre valeur de retour n’est pas prise en charge et son comportement n’est pas défini.
SINK_ENTRY
Déclare la fonction de gestionnaire (fn) pour l’événement spécifié (dispid), du contrôle identifié par id.
SINK_ENTRY( id, dispid, fn )
Paramètres
id
[in] Identifie le contrôle.
dispid
[in] Identifie l’événement spécifié.
Fn
[in] Nom de la fonction de gestionnaire d’événements. Cette fonction doit utiliser la _stdcall
convention d’appel et avoir la signature de style dispinterface appropriée.
Exemple
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()
Notes
L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d’événements. Toute autre valeur de retour n’est pas prise en charge et son comportement n’est pas défini.
SINK_ENTRY_EX et SINK_ENTRY_EX_P
Déclare la fonction de gestionnaire (fn) pour l’événement spécifié (dispid), de l’interface de distribution (iid), pour le contrôle identifié par l’ID.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Paramètres
id
[in] Identifie le contrôle.
iid
[in] Identifie l’interface de répartition.
piid
[in] Pointeur vers l’interface de répartition.
dispid
[in] Identifie l’événement spécifié.
Fn
[in] Nom de la fonction de gestionnaire d’événements. Cette fonction doit utiliser la _stdcall
convention d’appel et avoir la signature de style dispinterface appropriée.
Exemple
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()
Notes
L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d’événements. Toute autre valeur de retour n’est pas prise en charge et son comportement n’est pas défini.
SINK_ENTRY_INFO et SINK_ENTRY_INFO_P
Utilisez la macro SINK_ENTRY_INFO au sein d’un mappage récepteur d’événements pour fournir les informations nécessaires par IDispEventSimpleImpl pour acheminer les événements vers la fonction de gestionnaire appropriée.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Paramètres
id
[in] Entier non signé identifiant la source d’événement. Cette valeur doit correspondre au paramètre de modèle nID utilisé dans la classe de base IDispEventSimpleImpl associée.
iid
[in] IID qui identifie l’interface de distribution.
piid
[in] Pointeur vers IID qui identifie l’interface de distribution.
dispid
[in] DISPID identifiant l’événement spécifié.
Fn
[in] Nom de la fonction de gestionnaire d’événements. Cette fonction doit utiliser la _stdcall
convention d’appel et avoir la signature de style dispinterface appropriée.
info
[in] Informations de type pour la fonction de gestionnaire d’événements. Ces informations de type sont fournies sous la forme d’un pointeur vers une _ATL_FUNC_INFO
structure. CC_CDECL est la seule option prise en charge dans Windows CE pour le champ CALLCONV de la _ATL_FUNC_INFO
structure. Toute autre valeur n’est pas prise en charge, de sorte que son comportement n’est pas défini.
Notes
Les quatre premiers paramètres de macro sont identiques à ceux de la macro SINK_ENTRY_EX . Le paramètre final fournit des informations de type pour l’événement. L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d’événements. Toute autre valeur de retour n’est pas prise en charge et son comportement n’est pas défini.