How to Creare un progetto di automazione mediante MFC e una libreria di tipi

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

In questa pagina

Sommario

In questo articolo viene spiegato in modo dettagliato come automatizzare l'integrazione dei componenti con applicazioni COM compatibili come le applicazioni di Microsoft Office.

Informazioni

La sezione riportata di seguito descrive come Ŕ possibile creare un progetto MFC. L'esempio consente di automatizzare Microsoft Excel. ╚ possibile utilizzare i primi otto passaggi per qualsiasi progetto e modificare i passaggi da 9 a 15 quando si utilizza un'altra applicazione.

Creazione di un progetto di automazione

  1. In Microsoft Developer Studio avviare un nuovo progetto "MFC AppWizard (exe)" denominato "AutoProject".
  2. Nel passaggio 1 di AppWizard di MFC scegliere "Basato su una finestra di dialogo" per il tipo di applicazione, quindi scegliere Fine.

    VerrÓ visualizzata la finestra di dialogo relativa alle informazioni sul nuovo progetto che indicherÓ che tra le classi da creare sono incluse:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    Scegliere OK per creare il progetto.
  3. VerrÓ visualizzata la finestra di dialogo "IDD_AUTOPROJECT_DIALOG" nell'area di progettazione/modifica di Visual Studio. Modificare la finestra in base alle istruzioni riportate nei due passaggi seguenti.
  4. Rimuovere il controllo etichetta (IDC_STATIC) e il pulsante di annullamento (IDCANCEL).
  5. Modificare il nome del pulsante OK in "IDRUN" e il titolo in "Run". Chiudere la maschera di progettazione della finestra di dialogo AutoProject.rc.
  6. Scegliere la creazione guidata classe dal menu Visualizza oppure premere CTRL+W.
  7. Scegliere la scheda Mappe messaggi. Selezionare IDRUN nella casella di riepilogo relativa agli ID oggetto e "BN_CLICKED" nella casella di riepilogo dei messaggi. Fare clic su Aggiungi funzione e accettare il nome di funzione "OnRun". Scegliere OK per chiudere la creazione guidata classe.

    NOTA: questo passaggio consente di aggiungere una dichiarazione per il membro di funzione "OnRun();" al file di intestazione denominato AutoProjectDLG.h. Viene inoltre aggiunta una funzione di gestione dei messaggi di base vuota denominata CAutoProjectDlg::OnRun() al file denominato AutoProjectDLG.cpp.
  8. Scegliere la creazione guidata classe dal menu Visualizza oppure premere CTRL+W.
  9. Scegliere la scheda Automazione. Fare clic su Aggiungi classe e scegliere l'opzione relativa alla libreria di tipi. Selezionare la libreria di oggetti per l'applicazione che si desidera automatizzare. Se ad esempio si desidera automatizzare Excel 97, selezionare la libreria di oggetti di Microsoft Excel 8.0, il cui percorso predefinito Ŕ C:\Programmi\Microsoft Office\Office\Excel8.olb.

    Se si desidera automatizzare Microsoft Excel 2000, selezionare la libreria di oggetti di Microsoft Excel 9.0, il cui percorso predefinito Ŕ C:\Programmi\Microsoft Office\Office\Excel9.olb.

    Se si desidera automatizzare Microsoft Excel 2002 e Microsoft Office Excel 2003, la libreria di oggetti risulterÓ incorporata nel file Excel.exe. Il percorso predefinito di Excel.exe in Office 2002 Ŕ C:\Programmi\Microsoft Office\Office10\Excel.exe. Il percorso predefinito di Excel.exe in Office 2003 Ŕ C:\Programmi\Microsoft Office\Office11\Excel.exe. Dopo avere selezionato la libreria di tipi appropriata, scegliere Apri. Selezionare tutte le classi dell'elenco di conferma delle classi e scegliere OK.

    NOTA: la casella di riepilogo della finestra di dialogo di conferma delle classi contiene tutte le interfacce IDispatch (praticamente identiche alle classi) della libreria di tipi di Microsoft Excel. Nella parte inferiore della finestra di dialogo Ŕ disponibile un file di implementazione denominato Excel8.cpp che contiene wrapper di classi generate derivati da ColeDispatchDriver() e il file di intestazione della dichiarazione appropriato Ŕ denominato Excel8.h. Per Excel 2002 ed Excel 2003 i file sono denominati Excel.cpp ed Excel.h.
  10. Scegliere OK per chiudere la finestra di dialogo relativa alla creazione guidata classe di MFC.
  11. Aggiungere il codice riportato di seguito alla funzione CAutoProjectApp::InitInstance(), operazione che consente di caricare e abilitare la libreria dei servizi COM:
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
  12. Aggiungere la riga di codice riportata di seguito alle istruzioni #include nella parte superiore del file di programma AutoProject.cpp:
          #include <afxdisp.h>
  13. Aggiungere l'istruzione include per excel8.h dopo l'istruzione include di stdafx.h nella parte superiore del file di programma AutoProjectDlg.cpp:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
  14. Aggiungere il codice di automazione alla funzione CAutoProjectDlg::OnRun() affinchÚ sia simile a quanto riportato di seguito:
          void CAutoProjectDlg::OnRun()
          {
              _Application app;  // app is the Excel _Application object
    
              // Start Excel and get Application object...
             if(!app.CreateDispatch("Excel.Application"))
             {
                AfxMessageBox("Couldn't start Excel.");
             }
             else
             {
                //Make Excel Visible and display a message
              app.SetVisible(TRUE);
              AfxMessageBox ("Excel is Running!");
             }
          }
  15. Compilare ed eseguire il progetto. RISULTATI: quando si fa clic sul pulsante di esecuzione nella finestra di dialogo verrÓ avviato Microsoft Excel. Attivare la finestra di dialogo Auto_Excel e annullare la visualizzazione della finestra del messaggio. La chiusura di Microsoft Excel avverrÓ al termine della funzione CAutoProjectDlg::OnRun(), perchÚ la variabile dell'applicazione non rientrerÓ pi¨ nell'ambito.

Note aggiuntive

Dopo avere aggiunto al progetto le classi provenienti da una libreria di tipi, come Ŕ avvenuto nel passaggio 9, si noterÓ che sono state aggiunte molte classi. Nella visualizzazione delle classi Ŕ possibile fare doppio clic su una classe per visualizzare le funzioni membro e doppio clic sulla funzione membro per visualizzare la definizione di tale funzione nel file di implementazione Excel8.cpp.

Occorre visualizzare la definizione di una funzione membro se si desidera verificare un tipo restituito o se Ŕ necessario modificare l'implementazione di una funzione. Ogni volta che si modifica una definizione della funzione, Ŕ importante ricordare di modificare la dichiarazione nel file Excel8.h. Quando si effettua questa operazione, occorre accertarsi di modificare la dichiarazione di funzione corretta. Talvolta lo stesso nome viene assegnato a funzioni membro di pi¨ classi, ad esempio GetApplication().

La procedura sopra illustrata dimostra che Ŕ possibile automatizzare Microsoft Excel, ma pu˛ essere applicata per automatizzare anche altre applicazioni. Nell'elenco seguente sono citati i nomi di file delle librerie di tipi delle applicazioni di Microsoft Office:
   Applicazione                          Libreria tipi
   --------------------------------------------------

   Microsoft Access 97                   Msacc8.olb
   Microsoft Jet Database 3.5            DAO350.dll
   Microsoft Binder 97                   Msbdr8.olb
   Microsoft Excel 97                    Excel8.olb
   Microsoft Graph 97                    Graph8.olb
   Microsoft Office 97                   Mso97.dll
   Microsoft Outlook 97                  Msoutl97.olb
   Microsoft PowerPoint 97               Msppt8.olb

   Microsoft Word 97                     Msword8.olb
   Microsoft Access 2000                 Msacc9.olb
   Microsoft Jet Database 3.51           DAO360.dll
   Microsoft Binder 2000                 Msbdr9.olb
   Microsoft Excel 2000                  Excel9.olb
   Microsoft Graph 2000                  Graph9.olb
   Microsoft Office 2000                 Mso9.dll
   Microsoft Outlook 2000                Msoutl9.olb
   Microsoft PowerPoint 2000             Msppt9.olb
   Microsoft Word 2000                   Msword9.olb

   Microsoft Access 2002                 Msacc.olb
   Microsoft Excel 2002                  Excel.exe
   Microsoft Graph 2002                  Graph.exe
   Microsoft Office 2002                 MSO.dll
   Microsoft Outlook 2002                MSOutl.olb
   Microsoft PowerPoint 2002             MSPpt.olb
   Microsoft Word 2002                   MSWord.olb

   Microsoft Access 2003                 Msacc.olb
   Microsoft Excel 2003                  Excel.exe
   Microsoft Graph 2003                  Graph.exe
   Microsoft Office 2003                 MSO.dll
   Microsoft Outlook 2003                MSOutl.olb
   Microsoft PowerPoint 2003             MSPpt.olb
   Microsoft Word 2003                   MSWord.olb
NOTA: il percorso predefinito di queste librerie dei tipi Ŕ C:\Programmi\Microsoft Office\Office (per Office 2002 il percorso Ŕ C:\...\Office10 e per Office 2003 il percorso C:\...\Office11), ad eccezione di Dao350.dll o Dao360.dll e Microsoft Office 10(MSO.dll). Il percorso predefinito per Dao350.dll/Dao360.dll Ŕ C:\Programmi\File comuni\Microsoft Shared\Dao. Il percorso predefinito per MSO.dll Ŕ C:\Programmi\File comuni\Microsoft Shared\Office10 per Office 2002 e C:\Programmi\File comuni\Microsoft Shared\Office11 per Office 2003.

Riferimenti

Questo articolo presenta un approccio specifico per la creazione di un progetto relativo a una finestra di dialogo. Se si desidera utilizzare una documentazione pi¨ generale relativa al processo di creazione di un progetto VC++ in ambiente Microsoft Developer Studio, Ŕ disponibile un'ottima esercitazione a cui si pu˛ accedere tramite InfoViewer di Visual Studio. Per accedere all'esercitazione, scegliere Cerca dal menu ?. Scegliere la scheda dell'indice e digitare quanto segue:
utilizzo di progetti
Fare clic su Elenca argomenti. Selezionare l'argomento relativo all'utilizzo dei progetti e fare clic su Visualizza. Per ulteriori informazioni sull'automazione delle applicazioni di Office, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):
222101 How to Trovare e utilizzare la documentazione sul modello di oggetti di Office
In alternativa, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

ProprietÓ

Identificativo articolo: 178749 - Ultima modifica: venerdý 29 giugno 2007 - Revisione: 5.1
Le informazioni in questo articolo si applicano a
  • Microsoft Foundation Class Library 4.2áalle seguenti piattaforme
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
Chiavi:á
kbhowto kbinterop kbautomation KB178749
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