Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

Il supporto per Office 2003 è terminato

Il supporto Microsoft per Office 2003 è terminato l'8 aprile 2014. Questa modifica ha interessato gli aggiornamenti software e le opzioni di sicurezza. Ulteriori informazioni su come continuare a essere protetti.

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I307473
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, Creare un client di automazione, è 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"					
Torna all'inizio

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);   }} 				
Torna all'inizio

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.

Torna all'inizio

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:
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:
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): Visitare il Supporto tecnico di Visual C++ .NET sul seguente sito Web Microsoft (informazioni in lingua inglese):
IDispatch ole automation listbox
Proprietà

ID articolo: 307473 - Ultima revisione: 01/23/2007 19:26:25 - Revisione: 7.0

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

  • kbautomation kbhowto kbnewsgrouplink KB307473
Feedback
&t=">