Condividi tramite


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.

Vedi anche

Macro
Funzioni globali di controllo composito