Utilizzo di una libreria dei tipi per l'automazione di Office da Visual C++ .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 307473 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I307473
Espandi tutto | Chiudi tutto

Sommario

In questo articolo viene descritto come creare un progetto di Visual C++ .NET utilizzato come client di automazione per applicazioni conformi a COM (Component Object Model). Nell'esempio di codice riportato si utilizza Microsoft Foundation Classes (MFC) con wrapper di classe per un componente di Office.

Informazioni

Nella procedura che segue viene spiegato come creare un semplice client di automazione. La procedura si articola in tre passaggi:
  1. Creare un client di automazione
  2. Aggiungere codice per automatizzare Microsoft Excel
  3. Eseguire il client di automazione
Nel primo passaggio, , è possibile creare un nuovo client di automazione indipendentemente dal server di automazione in uso. Il secondo passaggio, Aggiungere codice per automatizzare Microsoft Excel, è specifico del server di automazione.

Creare un client di automazione

  1. Avviare Microsoft Visual Studio .NET. Scegliere Nuovo dal menu File, quindi Progetto. Selezionare Applicazione MFC dai tipi di progetto di Visual C++ e assegnare al progetto il nome AutoProject.
  2. Quando viene visualizzata la finestra Creazione guidata applicazione MFC, scegliere Tipo di applicazione, impostare il tipo di applicazione su Basato su finestra di dialogo, quindi scegliere Fine.
  3. Modificare la finestra di dialogo IDD_AUTOPROJECT_DIALOG come descritto di seguito:
    1. Rimuovere il controllo Label (IDC_STATIC) e il pulsante Annulla (IDCANCEL).
    2. Modificare l'ID del pulsante OK in "IDRUN" e l'etichetta in "Esegui".
  4. Creare wrapper di classe dalla libreria dei tipi per il server di automazione come descritto di seguito:
    1. In Esplora soluzioni fare clic con il pulsante destro del mouse su AutoProject, quindi scegliere Aggiungi classe.
    2. Fare clic su Classe MFC da libreria di tipi, quindi scegliere Apri.
    3. Fare clic su Aggiungi da: File e scorrere l'elenco per trovare la libreria dei tipi relativa al server di automazione.

      In questo esempio selezionare "Libreria dei tipi di Microsoft Excel 10.0" per Microsoft Excel 2002 o "Libreria dei tipi di Microsoft Excel 9.0" per Microsoft Excel 2000.
    4. Selezionare dall'elenco le interfacce necessarie e fare clic sul simbolo di maggiore (>) per aggiungerle all'elenco di interfacce per le quali MFC deve creare i wrapper. Scegliere Fine quando si è terminato di aggiungere tutte le interfacce.

      Nell'esempio è necessaria solo l'interfaccia _Application.

      Importante Se nella libreria dei tipi selezionata sono presenti molte interfacce, scegliere solo quelle che si desidera utilizzare, perché in MFC viene generato un file di intestazione per ogni interfaccia selezionata. Limitando il numero di interfacce è possibile evitare un inutile sovraccarico durante la generazione e compilazione dei file.
  5. Per caricare e attivare la libreria di servizi COM nella funzione CAutoProjectApp::InitInstance, aggiungere il seguente codice:
    if(!AfxOleInit())  // Your addition starts here.
    {
      AfxMessageBox("Cannot initialize COM dll");
      return FALSE;
      // End of your addition.
    }
    
    AfxEnableControlContainer();
    					
  6. Aggiungere una direttiva include per ogni file di intestazione generato dalle interfacce della libreria dei tipi del server di automazione. Aggiungere le direttive dopo l'istruzione include relativa a Stdafx.h all'inizio di AutoProjectDlg.cpp.

    In questo esempio aggiungere una direttiva include per il file di intestazione CApplication.h, generato per l'interfaccia _Application:
          #include "stdafx.h"
          #include "CApplication.h"
    					

Aggiungere codice per automatizzare Microsoft Excel

Nella finestra di dialogo IDD_AUTOPROJECT_DIALOG fare clic con il pulsante destro del mouse su Esegui, quindi scegliere Aggiungi gestore eventi dall'elenco a discesa. Nella Creazione guidata gestore eventi selezionare il tipo di messaggio BN_CLICKED, quindi fare clic su Aggiungi e Modifica. Aggiungere il seguente codice per automatizzare Excel nel gestore:
void CAutoProjectDlg::OnBnClickedRun()
{
   CApplication app;  // app is the Excel _Application object

   // Start Excel and get Application object.

   if(!app.CreateDispatch("Excel.Application"))
   {
      AfxMessageBox("Cannot start Excel and get Application object.");
      return;
   }
   else
   {
      //Make the application visible and give the user control of
      //Microsoft Excel.
      app.put_Visible(TRUE);
      app.put_UserControl(TRUE);
   }
} 
				

Eseguire il client di automazione

Premere F5 per compilare ed eseguire il client di automazione. Quando viene visualizzata la finestra di dialogo, fare clic su Esegui. Il client di automazione avvierà Excel e renderà visibile l'applicazione. Excel rimane in esecuzione anche quando il client di automazione viene chiuso, perché il controllo dell'applicazione è stato trasferito all'utente.

Note aggiuntive

Dopo avere aggiunto al progetto alcune classi di una libreria dei tipi, è possibile notare che vengono elencate nella Visualizzazione classi del progetto. In Visualizzazione classi fare doppio clic sulla classe per vederne i metodi, quindi fare doppio clic sul metodo membro per visualizzare la definizione della funzione nel file di implementazione del wrapper MFC. È possibile riesaminare la definizione di una funzione membro se si desidera verificare un tipo restituito oppure se è necessario modificare l'implementazione di una funzione.

La procedura sopra illustrata dimostra che è possibile automatizzare Microsoft Excel, ma può essere applicata per l'automazione anche di altre applicazioni. Nell'elenco seguente sono riportati i nomi file delle librerie dei tipi di altre applicazioni di Microsoft Office:
Riduci questa tabellaEspandi questa tabella
ApplicazioneLibreria dei tipi
Microsoft Access 97Msacc8.olb
Microsoft Jet Database 3.5DAO350.dll
Raccoglitore Office 97Msbdr8.olb
Microsoft Excel 97Excel8.olb
Microsoft Graph 97Graph8.olb
Microsoft Office 97Mso97.dll
Microsoft Outlook 97Msoutl97.olb
Microsoft PowerPoint 97Msppt8.olb
Microsoft Word 97Msword8.olb
Microsoft Access 2000Msacc9.olb
Microsoft Jet Database 3.51DAO360.dll
Raccoglitore Office 2000Msbdr9.olb
Microsoft Excel 2000Excel9.olb
Microsoft Graph 2000 Graph9.olb
Microsoft Office 2000Mso9.dll
Microsoft Outlook 2000Msoutl9.olb
Microsoft PowerPoint 2000Msppt9.olb
Microsoft Word 2000Msword9.olb
Microsoft Access 2002Msacc.olb
Microsoft Excel 2002Excel.exe
Microsoft Graph 2002Graph.exe
Microsoft Office 2002 MSO.dll
Microsoft Outlook 2002MSOutl.olb
Microsoft PowerPoint 2002MSPpt.olb
Microsoft Word 2002MSWord.olb
Microsoft Office Access 2003Msacc.olb
Microsoft Office Excel 2003Excel.exe
Microsoft Office Graph 2003Graph.exe
Microsoft Office 2003MSO.dll
Microsoft Office Outlook 2003MSOutl.olb
Microsoft Office PowerPoint 2003MSPpt.olb
Microsoft Office Word 2003MSWord.olb
Nota Il percorso predefinito di queste librerie dei tipi è il seguente:
Riduci questa tabellaEspandi questa tabella
Versione di OfficePercorso
Office 97C:\Programmi\Microsoft Office\Office
Office 2000C:\Programmi\Microsoft Office\Office
Office XPC:\Programmi\Microsoft Office\Office10
Office 2003C:\Programmi\Microsoft Office\Office11
Il percorso predefinito per Dao350.dll e Dao360.dll è C:\Programmi\File comuni\Microsoft Shared\Dao.

Riferimenti

Per ulteriori informazioni generali su Visual C++ .NET, accedere al seguente newsgroup Usenet (informazioni in lingua inglese):
Microsoft.public.dotnet.languages.vc
Visitare il Supporto tecnico di Visual C++ .NET sul seguente sito Web Microsoft (informazioni in lingua inglese):
http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet

Proprietà

Identificativo articolo: 307473 - Ultima modifica: martedì 23 gennaio 2007 - Revisione: 7.0
Le informazioni in questo articolo si applicano a
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office Professional Edition 2003
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Office 97 Developer Edition
Chiavi: 
kbautomation kbhowto kbnewsgrouplink KB307473
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com