Verwendung einer Typbibliothek für die Office-Automatisierung mithilfe von Visual C++ .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 307473 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D307473
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
307473 How to use a type library for Office Automation from Visual C++ .NET
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

Zusammenfassung

Dieser Artikel demonstriert, wie Sie ein Visual C++ .NET-Projekt erstellen, das als Automatisierungsclient für Anwendungen dient, die COM-kompatibel (Component Object Model) sind. Bei dem Beispiel in diesem Artikel werden Microsoft Foundation Classes (MFC) mit Klassenwrappern für eine Office-Komponente verwendet.

Weitere Informationen

Die folgenden Schritte beschreiben, wie Sie einen einfachen Automatisierungsclient erstellen können. Es handelt sich um drei Hauptschritte:
  1. Automatisierungsclient erstellen.
  2. Code hinzufügen, um Microsoft Excel zu automatisieren.
  3. Automatisierungsclient ausführen.
Sie können den ersten Schritt () ungeachtet des von Ihnen verwendeten Automatisierungsservers zur Erstellung eines neuen Automatisierungsclients verwenden. Der zweite Schritt (Code hinzufügen, um Microsoft Excel zu automatisieren) ist spezifisch für den jeweiligen Automatisierungsserver.

Automatisierungsclient erstellen

  1. Starten Sie Microsoft Visual Studio .NET. Klicken Sie im Menü Datei auf Neu, und klicken Sie anschließend auf Projekt. Wählen Sie aus den Projekttypen von Visual C++ die Option MFC-Anwendung aus, und geben Sie dem Projekt den Namen "AutoProject".
  2. Klicken Sie auf Anwendungstyp, wenn der MFC-Anwendungs-Assistent eingeblendet wird, wählen Sie den Anwendungstyp Dialog-basiert (Dialog Based) aus, und klicken Sie anschließend auf Fertig stellen.
  3. Passen Sie das Dialogfeld IDD_AUTOPROJECT_DIALOG folgendermaßen an:
    1. Entfernen Sie das Steuerelement Label (IDC_STATIC) und die Schaltfläche Abbrechen (IDCANCEL).
    2. Ändern Sie die ID der Schaltfläche OK zu "IDRUN" und deren Beschriftung zu "Ausführen".
  4. Erstellen Sie aus der Typenbibliothek folgendermaßen Klassenwrapper für den Automatisierungsserver:
    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf AutoProject, und klicken Sie danach auf Klasse hinzufügen.
    2. Klicken Sie auf MFC-Klasse aus der Typenbibliothek (typelib), und klicken Sie anschließend auf Öffnen.
    3. Klicken Sie auf Klasse hinzufügen aus: Registrierung (Add a class from: Registry), und suchen Sie die für Ihren Automatisierungsserver registrierte Typenbibliothek.

      Für die Zwecke dieses Beispiels wählen Sie die Microsoft Excel 10.0-Typenbibliothek (für Microsoft Excel XP) bzw. die Microsoft Excel 9.0-Typenbibliothek (für Microsoft Excel 2000) aus.
    4. Wählen Sie aus der Liste die von Ihnen benötigte(n) Schnittstelle(n) aus, und klicken Sie anschließend auf das Symbol für "größer als" (>), um diese zur Liste der Schnittstellen hinzuzufügen, für die die MFC Wrapper erstellen sollen. Klicken Sie auf Fertig stellen, wenn Sie alle Schnittstellen hinzugefügt haben.

      Für dieses Beispiel benötigen Sie nur die Schnittstelle _Application.

      Wichtig: Wenn sich in der von Ihnen gewählten Typenbibliothek viele Schnittstellen befinden, sollten Sie nur die Schnittstellen auswählen, die Sie verwenden möchten, da die MFC für jede gewählte Schnittstelle eine separate Headerdatei generieren. Sie können während der Dateierstellung und Kompilierung unnötige Belastungen des Systems vermeiden, indem Sie die Zahl der von Ihnen ausgewählten Schnittstellen begrenzen.
  5. Fügen Sie folgenden Code hinzu, um die Bibliothek der COM-Dienste in die Funktion CAutoProjectApp::InitInstance zu laden und zu aktivieren.
    if(!AfxOleInit())  // Your addition starts here.
    {
      AfxMessageBox("Cannot initialize COM dll");
      return FALSE;
      // End of your addition.
    }
    
    AfxEnableControlContainer();
    					
  6. Fügen Sie zu jeder Headerdatei, die aus den Schnittstellen in der Typenbibliothek des Automatisierungsservers generiert wird, eine Include-Direktive hinzu. Fügen Sie die Direktiven nach der Include-Anweisung für "Stdafx.h" am Anfang von "AutoProjectDlg.cpp" ein.

    Fügen Sie für dieses Beispiel zur Headerdatei "CApplication.h", die von der Schnittstelle _Application generiert wird, eine Include-Direktive hinzu:
          #include "stdafx.h"
          #include "CApplication.h"
    					

Code hinzufügen, um Microsoft Excel zu automatisieren

Klicken Sie im Dialogfeld IDD_AUTOPROJECT_DIALOG mit der rechten Maustaste auf Ausführen, und wählen Sie aus dem Dropdown-Listenfeld die Option Ereignishandler wird hinzugefügt aus. Klicken Sie im Ereignishandler-Assistenten auf den Meldungstyp BN_CLICKED, und klicken Sie anschließend auf Hinzufügen und Bearbeiten. Fügen Sie den folgenden Code hinzu, um Excel im Handler zu automatisieren:
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);
   }
} 
				

Automatisierungsclient ausführen

Drücken Sie die Taste [F5], um den Automatisierungsclient erstellen und ausführen zu lassen. Klicken Sie auf Ausführen, wenn das Dialogfeld erscheint. Der Automatisierungsclient startet Excel und zeigt die Anwendung an. Beachten Sie, dass Excel auch dann weiter ausgeführt wird, wenn der Automatisierungsclient beendet wird, da die Kontrolle über die Anwendung dem Benutzer übergeben wurde.

Zusätzliche Hinweise

Nachdem Sie Ihrem Projekt Klassen aus einer Typenbibliothek hinzugefügt haben, bemerken Sie eventuell, dass diese in der Klassenansicht Ihres Projekts angezeigt werden. Sie können in der Klassenansicht auf eine Klasse doppelklicken, um die Methoden dieser Klasse anzeigen zu lassen. Danach können Sie auf die Methode doppelklicken, um die Definition dieser Funktion in der Implementierungsdatei des MFC-Wrappers anzuzeigen. Sie können die Definition einer Memberfunktion überprüfen, wenn Sie einen Rückgabetyp kontrollieren möchten, oder wenn Sie die Implementierung einer Funktion ändern müssen.

Mit der oben beschriebenen Vorgehensweise zur Automatisierung von Microsoft Excel lassen sich auch andere Anwendungen automatisieren. In der folgenden Liste sind die Dateinamen für die Typenbibliotheken anderer Microsoft Office-Anwendungen aufgeführt:
Tabelle minimierenTabelle vergrößern
AnwendungTypenbibliothek
Microsoft Access 97Msacc8.olb
Microsoft Jet-Datenbank 3.5DAO350.dll
Microsoft Sammelmappe 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-Datenbank 3.51DAO360.dll
Microsoft Sammelmappe 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
Microsoft Office Access 2007Msacc.olb
Microsoft Office Excel 2007Excel.exe
Microsoft Office Graph 2007Graph.exe
2007 Microsoft OfficeMSO.dll
Microsoft Office Outlook 2007MSOutl.olb
Microsoft Office PowerPoint 2007MSPpt.olb
Microsoft Office Word 2007MSWord.olb
Hinweis: Die Standardspeicherorte für diese Typenbibliotheken sind:
Tabelle minimierenTabelle vergrößern
Office-VersionPfad
Office 97C:\Programme\Microsoft Office\Office
Office 2000C:\Programme\Microsoft Office\Office
Office XPC:\Programme\Microsoft Office\Office11
Office 2003C:\Programme\Microsoft Office\Office11
2007 OfficeC:\Programme\Microsoft Office\Office12
Der Standardspeicherort für die Dateien "Dao350.dll" und "Dao360.dll" ist "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Dao".

Informationsquellen

Weitere allgemeine Informationen zu Visual C++ .NET finden Sie in folgender Usenet-Newsgroup:
Microsoft.public.dotnet.languages.vc
Besuchen Sie das Visual C++ .NET-Supportcenter auf der folgenden Microsoft-Website:
http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet

Eigenschaften

Artikel-ID: 307473 - Geändert am: Mittwoch, 30. Mai 2007 - Version: 8.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office Professional 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Office 97 Developer Edition
Keywords: 
kbexpertiseinter kbautomation kbhowto kbnewsgrouplink KB307473
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