Erstellen eines Automatisierungsprojekts mit MFC und einer Typenbibliothek

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 178749 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
178749 How to create an automation project using MFC and a type library
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt detailliert, wie Sie die Komponentenintegration mit COM-kompatiblen Anwendungen (wie zum Beispiel den Microsoft Office-Programmen) automatisieren können.

Weitere Informationen

Im folgenden Abschnitt wird das Erstellen eines MFC-Projekts erläutert. In diesem Beispiel wird Microsoft Excel automatisiert. Die ersten 8 Schritte sind auf jedes beliebige Projekt anwendbar, während Sie die Schritte 9 bis 15 entsprechend modifizieren müssen, wenn Sie mit einer anderen Anwendung arbeiten.

Automatisierungsprojekt erstellen

  1. Starten Sie mit Microsoft Developer Studio ein neues MFC-Anwendungs-Assistenten-Projekt (exe) mit dem Namen "AutoProject".
  2. Wählen Sie in Schritt 1 des MFC-Anwendungs-Assistenten den Anwendungstyp Dialog-basiert (Dialog Based) aus, und klicken Sie anschließend auf Fertig stellen.

    Dem jetzt eingeblendeten Dialogfeld Neue Projektinformationen können Sie entnehmen, dass u.a. die folgenden Klassen erstellt werden müssen:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    Klicken Sie auf OK, um das Projekt erstellen zu lassen.
  3. Im Entwurfs-/Bearbeitungsbereich von Visual Studio wird das Dialogfeld "IDD_AUTOPROJECT_DIALOG" geöffnet. Modifizieren Sie dieses Dialogfeld den Anweisungen in den folgenden beiden Schritten entsprechend.
  4. Entfernen Sie das Beschriftungssteuerelement (IDC_STATIC) und die Abbrechen-Schaltfläche (IDCANCEL).
  5. Ändern Sie den Namen der Schaltfläche OK zu "IDRUN" und deren Beschriftung zu "Ausführen". Schließen Sie das Dialogfeld-Entwurfsformular "AutoProject.rc".
  6. Klicken Sie im Menü Ansicht auf Klassenassistent (oder drücken Sie die Tastenkombination [STRG]+[W]).
  7. Klicken Sie auf die Registerkarte Meldungszuordnungstabellen. Klicken Sie im Listenfeld Objekt-IDs auf IDRUN und danach im Listenfeld Nachrichten auf BN_CLICKED. Klicken Sie auf Funktion hinzufügen, und übernehmen Sie den vorgegebenen Namen "OnRun". Klicken Sie auf OK, um den Klassenassistenten zu schließen.

    Hinweis: Durch diesen Schritt wird der Headerdatei "AutoProjectDLG.h" eine Deklaration für das Funktionselement "OnRun();" hinzugefügt. Außerdem wird durch diesen Schritt der Datei "AutoProjectDLG.cpp" eine leere Meldungsbehandlungsfunktion mit dem Namen "CAutoProjectDlg::OnRun()" hinzugefügt.
  8. Klicken Sie im Menü Ansicht auf Klassenassistent (oder drücken Sie die Tastenkombination [STRG]+[W]).
  9. Klicken Sie auf die Registerkarte Automatisierung. Klicken Sie auf Klasse hinzufügen, und wählen Sie dann die Option Aus einer Typbibliothek. Wählen Sie die Objektbibliothek für die Anwendung aus, die Sie automatisieren möchten (in diesem Beispiel wählen Sie zwecks Automatisierung von Excel 97 die Microsoft Excel 8.0-Objektbibliothek aus; deren Standardspeicherort ist "C:\Programme\Microsoft Office\Office\Excel8.olb").

    Falls Sie Microsoft Excel 2000 automatisieren möchten, wählen Sie die Microsoft Excel 9.0-Objektbibliothek aus (Standardspeicherort "C:\Programme\Microsoft Office\Office\Excel9.olb").

    Falls Sie Microsoft Excel 2002 und Microsoft Office Excel 2003 automatisieren möchten, ist die Objektbibliothek in die Datei "Excel.exe" eingebettet. Der Standardpfad zu der Datei "Excel.exe" in Office 2002 ist "C:\Programme\Microsoft Office\Office10\Excel.exe". Der Standardpfad zu der Datei "Excel.exe" in Office 2003 ist "C:\Programme\Microsoft Office\Office11\Excel.exe". Nachdem Sie die richtige Objektbibliothek ausgewählt haben, klicken Sie auf Öffnen. Markieren Sie alle Klassen in der Liste Klassen bestätigen, und klicken Sie anschließend auf OK.

    Hinweis: Das Listenfeld im Dialogfeld Klassen bestätigen enthält alle IDispatch-Schnittstellen (die nahezu mit Klassen identisch sind) aus der Microsoft Excel-Typbibliothek. In der unteren Hälfte des Dialogfelds sehen Sie, dass eine Implementierungsdatei mit dem Namen "Excel8.cpp" generierte Klassenwrapper enthält, die aus "ColeDispatchDriver()" abgeleitet wurden; die entsprechende Deklarationsheaderdatei heißt "Excel8.h". (Für Excel 2002 und Excel 2003 lautet der Name dieser Datei "Excel.cpp" beziehungsweise "Excel.h".)
  10. Klicken Sie auf OK, um das Dialogfeld MFC-Klassenassistent zu schließen.
  11. Fügen Sie der Funktion "CAutoProjectApp::InitInstance()" den folgenden Code hinzu, durch den die COM-Dienstebibliothek aktiviert wird.
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. Fügen Sie den #Include-Anweisungen oben in der Programmdatei "AutoProject.cpp" die folgende Zeile hinzu:
          #include <afxdisp.h>
    					
  13. Fügen Sie oben in der Programmdatei "AutoProjectDlg.cpp" die Include-Anweisung für "excel8.h" nach der Include-Anweisung für "stdafx.h" ein:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. Fügen Sie der Funktion "CAutoProjectDlg::OnRun()" einen Automatisierungscode wie den folgenden hinzu:
          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. Erstellen Sie das Projekt, und führen Sie es aus. Ergebnisse: Wenn Sie in dem Dialogfeld auf die Schaltfläche Ausführen klicken, wird Microsoft Excel gestartet. Aktivieren Sie das Dialogfeld Auto_Excel, und schließen Sie das Meldungsfeld. Microsoft Excel wird beendet, wenn die Ausführung der Funktion "CAutoProjectDlg::OnRun()" abgeschlossen ist, weil dann die Anwendungsvariable außerhalb des gültigen Bereichs liegt.

Zusätzliche Hinweise

Nachdem Sie Ihrem Projekt Klassen aus einer Typbibliothek hinzugefügt haben (wie Sie dies im vorstehenden Schritt 9 getan haben), werden Sie feststellen, dass dem Projekt eine große Anzahl an Klassen hinzugefügt worden ist. Sie können in der Klassenansicht auf eine Klasse doppelklicken, um die Memberfunktionen dieser Klasse anzuzeigen. Danach können Sie auf die Memberfunktion doppelklicken, um die Definition dieser Funktion in der Implementierungsdatei "Excel8.cpp" anzuzeigen.

Sie müssen sich die Definition einer Memberfunktion ansehen, wenn Sie einen Rückgabetyp überprüfen möchten oder wenn Sie die Implementierung einer Funktion ändern müssen. Wenn Sie die Definition einer Funktion ändern, müssen Sie auch die Deklaration in der Datei "Excel8.h" ändern. Stellen Sie dabei sicher, dass Sie die richtige Funktionsdeklaration ändern; in manchen Fällen haben Memberfunktionen in verschiedenen Klassen identische Namen (dies kann zum Beispiel bei der Funktion "GetApplication()" der Fall sein).

Mit der oben beschriebenen Vorgehensweise zur Automatisierung von Microsoft Excel lassen sich gleichermaßen auch andere Anwendungen automatisieren. In der folgenden Liste sind die Dateinamen für die Typbibliotheken von Microsoft Office-Anwendungen aufgeführt:
   Anwendung                             	                                      Typbibliothek  
   --------------------------------------------------

   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 Office Access 2003          Msacc.olb
   Microsoft Office Excel 2003           Excel.exe
   Microsoft Graph 2003                  Graph.exe
   Microsoft Office 2003                 MSO.dll
   Microsoft Office Outlook 2003         MSOutl.olb
   Microsoft Office PowerPoint 2003      MSPpt.olb
   Microsoft Office Word 2003            MSWord.olb
				
Hinweis: Der Standardpfad für diese Typbibliotheken lautet "C:Programme\Microsoft Office\Office" (für Office 2002 lautet der Pfad "C:\...\Office10" bzw. "C:\...\Office11" für Office 2003), außer für Dao350.dll, Dao360.dll und Microsoft Office 10(MSO.dll). Der Standardspeicherort für die Dateien "Dao350.dll" und "Dao360.dll" ist "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Dao". Der Standardspeicherort der Datei "MSO.dll" ist "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Office10" für Office 2002 und "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Office11" für Office 2003.

Verweise

Dieser Artikel schildert eine spezifische Vorgehensweise zum Erstellen eines Dialogfeldprojekts. Allgemeinere Informationen zum Prozess des Erstellens eines VC++-Projekts in der Microsoft Developer Studio-Umgebung finden Sie in einem exzellenten Lernprogramm, auf das Sie mithilfe von Visual Studio InfoView zugreifen können. Klicken Sie im Menü ? auf Suchen, wenn Sie auf dieses Lernprogramm zugreifen möchten. Klicken Sie auf die Registerkarte Index, und geben Sie dann Folgendes ein:
Arbeiten mit Projekten
Klicken Sie auf Themenliste (List Topics). Wählen Sie das Thema "Homepage: Arbeiten mit Projekten" (Home Page: Working With Projects) aus, und klicken Sie danach auf Anzeigen. Weitere Informationen zur Automatisierung von Office-Anwendungen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
222101 Finden und Verwenden der Dokumentation zum Office-Objektmodell

Eigenschaften

Artikel-ID: 178749 - Geändert am: Samstag, 21. Januar 2006 - Version: 4.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Foundation Class Library 4.2, wenn verwendet mit:
    • 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
Keywords: 
kbautomation kbhowto kbinterop KB178749
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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