Condividi tramite


Esempio ATLEventHandling: gestione di eventi di Word mediante IDispEventImpl e IDispEventSimpleImpl

Aggiornamento: novembre 2007

Nell'esempio ATLEventHandling viene illustrato l'utilizzo di IDispEventImpl e IDispEventSimpleImpl per la gestione di eventi generati da Microsoft Word.

L'esempio è costituito da un progetto ATL che comprende due classi COM: CSimple e CNotSoSimple. Queste classi rappresentano oggetti COM con cui viene visualizzata una finestra di messaggio in risposta a eventi di modifica di documenti generati da Microsoft Word. Mediante CSimple viene illustrato come gestire eventi mediante il template di classe IDispEventSimpleImpl di ATL, mentre mediante CNotSoSimple viene descritto come gestire eventi tramite il template di classe IDispEventImpl di ATL. Il codice incluso nelle due classi è identico, tranne per le differenze determinate dall'utilizzo di due diversi template ATL.

Nota sulla sicurezza:

Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti.

Per ottenere gli esempi e le istruzioni per l'installazione:

  • In Visual Studio scegliere Esempi dal menu ?.

    Per ulteriori informazioni, vedere Individuazione dei file di esempio.

  • La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.

  • È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.

Generazione ed esecuzione dell'esempio

Nota:

Per eseguire l'esempio è necessario installare Microsoft Office 2000. Se si desidera utilizzare questo esempio con altre versioni di Microsoft Office, è necessario specificare il percorso del file DLL mso cui viene fatto riferimento nel file StdAfx.h nella directory ATLEventHandling. In Office 2000, ad esempio, viene utilizzato il file mso9.dll, mentre in Office XP viene utilizzato il file mso.dll.

Per generare ed eseguire l'esempio

  1. Aprire il file di soluzione ATLEventHandling.sln.

  2. Se si utilizza Excel 2000, modificare la riga seguente in StdAfx.h:

    #define OFFICE_VER OFFICEXP
    

    in:

    #define OFFICE_VER OFFICE2000
    
  3. Scegliere Genera soluzione dal menu Genera.

  4. Eseguire MFCClient.exe.

Verrà visualizzata una finestra di dialogo con una casella di riepilogo a discesa che consente di eseguire il test utilizzando IDispEventImpl o IDispEventSimpleImpl. Selezionare una di queste voci, quindi scegliere Avvia. Se sul computer è installato Microsoft Word, verrà caricata una nuova istanza e tramite il componente di test inizierà la ricezione degli eventi generati da Word ogni volta che viene modificato il documento attivo.

È possibile attivare eventi mediante la creazione di nuovi documenti, il caricamento di documenti o il passaggio a un diverso documento tramite il menu Finestra di Word. Ogni volta che viene modificato il documento, verrà visualizzata una finestra di messaggio nella quale è indicato il componente da cui vengono ricevuti gli eventi e il nome del nuovo documento attivo. Il gestore eventi può essere disconnesso dall'istanza di Word utilizzando il pulsante Stop della finestra di dialogo MFCClient, modificando la selezione nella casella di riepilogo a discesa oppure chiudendo Word.

Chiudere l'applicazione di esempio mediante il pulsante di comando OK o Annulla oppure tramite il pulsante Chiudi della finestra di dialogo.

Parole chiave

Nell'esempio vengono utilizzate le parole chiave seguenti:

_ATL_FUNC_INFO, BEGIN_SINK_MAP, END_SINK_MAP, SINK_ENTRY_EX, SINK_ENTRY_INFO, IDispEventImpl, IDispEventSimpleImpl, IDispEventSimpleImpl::DispEventAdvise, IDispEventSimpleImpl::DispEventUnadvise

Vedere anche

Altre risorse

Esempi relativi ad ATL