Macro di controlli compositi
Queste macro definiscono mappe e voci del sink di eventi.
Macro | Descrizione |
---|---|
BEGIN_SINK_MAP | Contrassegna l'inizio della mappa sink eventi per il controllo composito. |
END_SINK_MAP | Contrassegna la fine della mappa sink eventi per il controllo composito. |
SINK_ENTRY | Voce sulla mappa del sink di eventi. |
SINK_ENTRY_EX | Voce del mapping del sink di eventi con un parametro aggiuntivo. |
SINK_ENTRY_EX_P | (Visual Studio 2017) Analogamente a SINK_ENTRY_EX ad eccezione del fatto che richiede un puntatore a iid. |
SINK_ENTRY_INFO | Immissione della mappa sink eventi con informazioni sul tipo fornite manualmente per l'uso con IDispEventSimpleImpl. |
SINK_ENTRY_INFO_P | (Visual Studio 2017) Analogamente a SINK_ENTRY_INFO ad eccezione del fatto che richiede un puntatore a iid. |
Requisiti
Intestazione: atlcom.h
BEGIN_SINK_MAP
Dichiara l'inizio della mappa sink eventi per il controllo composito.
BEGIN_SINK_MAP(_class)
Parametri
_classe
[in] Specifica il controllo .
Esempio
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()
Osservazioni:
L'implementazione CE ATL dei sink di eventi ActiveX supporta solo i valori restituiti di tipo HRESULT o void dai metodi del gestore eventi. Qualsiasi altro valore restituito non è supportato e il relativo comportamento non è definito.
END_SINK_MAP
Dichiara la fine della mappa sink eventi per il controllo composito.
END_SINK_MAP()
Esempio
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()
Osservazioni:
L'implementazione CE ATL dei sink di eventi ActiveX supporta solo i valori restituiti di tipo HRESULT o void dai metodi del gestore eventi. Qualsiasi altro valore restituito non è supportato e il relativo comportamento non è definito.
SINK_ENTRY
Dichiara la funzione del gestore (fn) per l'evento specificato (dispid) del controllo identificato dall'ID.
SINK_ENTRY( id, dispid, fn )
Parametri
id
[in] Identifica il controllo .
dispid
[in] Identifica l'evento specificato.
Fn
[in] Nome della funzione del gestore eventi. Questa funzione deve usare la convenzione di _stdcall
chiamata e avere la firma di stile dispinterface appropriata.
Esempio
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()
Osservazioni:
L'implementazione CE ATL dei sink di eventi ActiveX supporta solo i valori restituiti di tipo HRESULT o void dai metodi del gestore eventi. Qualsiasi altro valore restituito non è supportato e il relativo comportamento non è definito.
SINK_ENTRY_EX e SINK_ENTRY_EX_P
Dichiara la funzione del gestore (fn) per l'evento specificato (dispid), dell'interfaccia dispatch (iid), per il controllo identificato da ID.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Parametri
id
[in] Identifica il controllo .
iid
[in] Identifica l'interfaccia dispatch.
piid
[in] Puntatore all'interfaccia dispatch.
dispid
[in] Identifica l'evento specificato.
Fn
[in] Nome della funzione del gestore eventi. Questa funzione deve usare la convenzione di _stdcall
chiamata e avere la firma di stile dispinterface appropriata.
Esempio
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()
Osservazioni:
L'implementazione CE ATL dei sink di eventi ActiveX supporta solo i valori restituiti di tipo HRESULT o void dai metodi del gestore eventi. Qualsiasi altro valore restituito non è supportato e il relativo comportamento non è definito.
SINK_ENTRY_INFO e SINK_ENTRY_INFO_P
Usare la macro SINK_ENTRY_INFO all'interno di una mappa sink eventi per fornire le informazioni necessarie da IDispEventSimpleImpl per instradare gli eventi alla funzione del gestore pertinente.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Parametri
id
[in] Intero senza segno che identifica l'origine evento. Questo valore deve corrispondere al parametro di modello nID usato nella classe di base IDispEventSimpleImpl correlata.
iid
[in] IID che identifica l'interfaccia dispatch.
piid
[in] Puntatore a IID che identifica l'interfaccia dispatch.
dispid
[in] DISPID che identifica l'evento specificato.
Fn
[in] Nome della funzione del gestore eventi. Questa funzione deve usare la convenzione di _stdcall
chiamata e avere la firma di stile dispinterface appropriata.
info
[in] Informazioni sul tipo per la funzione del gestore eventi. Queste informazioni sul tipo vengono fornite sotto forma di puntatore a una _ATL_FUNC_INFO
struttura. CC_CDECL è l'unica opzione supportata in Windows CE per il campo CALLCONV della _ATL_FUNC_INFO
struttura. Qualsiasi altro valore non è supportato, pertanto il comportamento non è definito.
Osservazioni:
I primi quattro parametri di macro sono uguali a quelli per la macro SINK_ENTRY_EX . Il parametro finale fornisce informazioni sul tipo per l'evento. L'implementazione CE ATL dei sink di eventi ActiveX supporta solo i valori restituiti di tipo HRESULT o void dai metodi del gestore eventi. Qualsiasi altro valore restituito non è supportato e il relativo comportamento non è definito.