Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
La libreria di modelli attivi (ATL) continua a essere supportata. Tuttavia, non aggiungiamo più funzionalità né aggiorniamo la documentazione.
È possibile implementare un'interfaccia doppia usando la classe IDispatchImpl , che fornisce un'implementazione predefinita dei IDispatch metodi in un'interfaccia doppia. Per altre informazioni, vedere Implementing the IDispatch Interface.
Per usare questa classe:
Definire l'interfaccia duale in una libreria dei tipi.
Derivare la classe da una specializzazione di
IDispatchImpl(passare informazioni sull'interfaccia e sulla libreria dei tipi come argomenti del modello).Aggiungere una voce (o voci) alla mappa COM per rendere disponibile l'interfaccia duale attraverso
QueryInterface.Implementare la parte vtable dell'interfaccia nella classe .
Assicurarsi che la libreria dei tipi contenente la definizione dell'interfaccia sia disponibile per gli oggetti in fase di esecuzione.
Creazione guidata di un semplice oggetto ATL
Se si desidera creare una nuova interfaccia e una nuova classe per implementarla, è possibile usare la finestra di dialogo Aggiungi classe ATL e quindi la Creazione guidata oggetto semplice ATL.
Creazione guidata interfaccia
Se si dispone di un'interfaccia esistente, è possibile utilizzare la Creazione guidata dell'interfaccia per aggiungere la classe base necessaria, le voci della mappa COM e le implementazioni scheletriche dei metodi a una classe esistente.
Nota
Potrebbe essere necessario modificare la classe di base generata in modo che i numeri di versione principale e secondaria della libreria dei tipi vengano passati come argomenti modello alla IDispatchImpl classe base. Il Wizard Implementazione Interfaccia non controlla il numero di versione della libreria di tipi.
Implementazione di IDispatch
È possibile usare una IDispatchImpl classe di base per fornire un'implementazione di una dispinterface specificando solo la voce appropriata nella mappa COM (utilizzando la macro COM_INTERFACE_ENTRY2 o COM_INTERFACE_ENTRY_IID ) purché si disponga di una libreria dei tipi che descrive un'interfaccia duale corrispondente. È piuttosto comune implementare l'interfaccia IDispatch in questo modo, ad esempio. La procedura guidata per oggetti semplici ATL e quella per l'implementazione dell'interfaccia presuppongono che si intenda implementare IDispatch in questo modo, per aggiungere l'elemento appropriato alla mappa.
Nota
ATL offre le classi IDispEventImpl e IDispEventSimpleImpl che consentono di implementare interfacce dispinterfing senza richiedere una libreria dei tipi contenente la definizione di un'interfaccia duale compatibile.