Classe di IDispEventImpl
Questa classe fornisce le implementazioni dei metodi IDispatch.
Importante |
---|
Questa classe e i relativi membri non possono essere utilizzati nelle applicazioni eseguite in Windows Runtime. |
template <
UINT nID,
class T,
const IID* pdiid= &IID_NULL,
const GUID* plibid= &GUID_NULL,
WORD wMajor= 0,
WORD wMinor= 0,
class tihclass= CcomTypeInfoHolder
>
class ATL_NO_VTABLE IDispEventImpl :
public IDispEventSimpleImpl<nID, T, pdiid>
Parametri
nID
Un identificatore univoco per l'oggetto di origine.Quando IDispEventImpl è la classe base per un controllo composito, utilizzare ID di risorsa del controllo contenuto desiderato per il parametro.In altri casi, utilizzare un numero intero positivo arbitrario.T
La classe dell'utente, derivata da IDispEventImpl.pdiid
Il puntatore all'IID dell'interfaccia dispatch di evento implementata da questa classe.Questa interfaccia deve essere definita nella libreria dei tipi indicati da plibid, da wMajore da wMinor.plibid
Un puntatore alla libreria dei tipi che definisce l'interfaccia dispatch indicato da pdiid.Se &GUID_NULL, la libreria dei tipi verrà caricato dall'oggetto da cui hanno origine gli eventi.wMajor
La versione principale della libreria dei tipi.Il valore predefinito è 0.wMinor
La versione secondaria della libreria dei tipi.Il valore predefinito è 0.tihclass
La classe utilizzata per gestire le informazioni sul tipo per T.Il valore predefinito è una classe di tipo CComTypeInfoHolder; tuttavia, è possibile ignorare questo parametro di modello fornendo una classe di tipo diverso da CComTypeInfoHolder.
Membri
Typedef pubblici
Nome |
Descrizione |
---|---|
La classe utilizzata per gestire le informazioni sul tipo.Per impostazione predefinita, CComTypeInfoHolder. |
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruttore. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Posiziona l'indice di funzione per l'identificatore specificato di invio. |
|
Esegue il mapping di un singolo membro e un insieme facoltativo di nomi dell'argomento a un set corrispondente dei dispid Integer. |
|
Recupera le informazioni sul tipo per un oggetto. |
|
Recupera il numero di interfacce di informazioni sui tipi. |
|
Recupera il tipo di base del tipo. |
Note
IDispEventImpl consente di implementare un'interfaccia dispatch di evento senza necessità di fornire il codice di implementazione per ogni metodo e un evento su tale interfaccia.IDispEventImpl fornisce le implementazioni dei metodi IDispatch.È sufficiente fornire le implementazioni per gli eventi desiderato gestione.
Funzionamento diIDispEventImpl insieme a mappa del sink di eventi nella classe per rispondere a eventi alla funzione di gestione appropriata.Per utilizzare questa classe:
Aggiungere una macro SINK_ENTRY_EX o SINK_ENTRY alla mappa del sink di eventi per ogni evento per ogni oggetto che si desidera gestire.Quando si utilizza IDispEventImpl come classe base di controllo composito, è possibile chiamare AtlAdviseSinkMap per stabilire e interrompere la connessione alle origini eventi per qualsiasi mapping del sink delle voci nel caso.In altri argomenti, o per maggiori controllo, chiamare DispEventAdvise per stabilire la connessione tra l'oggetto di origine e la classe di base.Chiamata DispEventUnadvise per interrompere la connessione.
È necessario derivarvi da IDispEventImpl (utilizzando un valore univoco per nID) per ogni oggetto di cui è necessario gestire eventi.È possibile utilizzare la classe base unadvising rispetto a un oggetto di origine che quindi consigliabile rispetto a un oggetto di origine diversa, ma il numero massimo di oggetti di origine che possono essere gestiti da un singolo oggetto contemporaneamente dipende dal numero delle classi base IDispEventImpl.
IDispEventImpl fornisce la stessa funzionalità IDispEventSimpleImpl, a meno che ottengono informazioni sui tipi per l'interfaccia da una libreria dei tipi anziché avendola fornito come puntatore a una struttura _ATL_FUNC_INFORMATION.Utilizzare IDispEventSimpleImpl quando non si dispone di una libreria dei tipi che descrive l'interfaccia eventi o non si desidera evitare l'overhead associato alla libreria dei tipi.
[!NOTA]
IDispEventImpl e IDispEventSimpleImpl forniscono la propria implementazione IUnknown::QueryInterface a ogni classe di base IDispEventSimpleImpl e IDispEventImpl da utilizzare come identità separata COM pur consentono l'accesso diretto ai membri della classe nell'oggetto COM principale.
L'implementazione di CE ATL i sink di evento ActiveX supportati solo i valori restituiti di HRESULT o la sospensione del tipo dai metodi del gestore eventi; qualsiasi altro valore restituito non è supportato e il relativo comportamento è definito.
Per ulteriori informazioni, vedere IDispEventImpl di supporto.
Gerarchia di ereditarietà
_IDispEvent
_IDispEventLocator
IDispEventImpl
Requisiti
Header: atlcom.h
Vedere anche
Riferimenti
Struttura di _ATL_FUNC_INFORMATION