SO WIRD'S GEMACHT: Verwaltung von Ereignissen für die Office 2003 Web Components in Visual Studio .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 823982 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
823982 HOW TO: Handle Events for the Office 2003 Web Components in Visual Studio .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

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt Schritt für Schritt, wie Sie die Klassen-Wrapper für die Microsoft Office 2003 Web Components modifizieren können. Anschließend wird beschrieben, wie Sie die Klassen-Wrapper neu erstellen können, um die den Wrappern zugeordneten Ereignisse in einer Anwendung zu verwalten, die Sie mit Microsoft Visual Studio .NET erstellen.

Die von Microsoft Visual Studio .NET generierten Klassen-Wrapper bieten standardmäßig keine Möglichkeit, Ereignisse für die folgenden Office 2003 Web Components zu verwalten:
  • Chart
  • Spreadsheet
  • PivotTable
Sie können den Quellcode für die Klassen-Wrapper ändern und dann den Code neu kompilieren, um die Ereignisse für diese Komponenten zu verwalten.

Hintergrund

Microsoft Visual Studio .NET generiert die Klasse event listener, anhand derer die Schnittstelle event implementiert wird. Diese event listener-Klasse wird an die Office Web Components (OWC) übergeben. Die OWC rufen dann die Methode QueryInterface für die Schnittstelle IDispatch auf (und nicht die Schnittstelle event). Die IDispatch-Schnittstelle für die generierte Klasse enthält jedoch keine Dispatch-IDs (DISPIDs) für die Ereignisse.

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben: Kennzeichnen Sie die generierte Klasse mit dem Wert ClassInterfaceType.None, um COM-Interop zu zwingen, IDispatch für die Schnittstelle (und nicht für die Klasse) zurückzumelden. Die Schnittstelle IDispatch enthält die DISPIDs für die Ereignisse.

Verfahren zum Modifizieren und Neuerstellen der Klassen-Wrapper

  1. Starten Sie die Visual Studio .NET-Eingabeaufforderung.
  2. Gehen Sie in der Eingabeaufforderung wie folgt vor:
    1. Erstellen Sie ein neues Verzeichnis mit dem Namen owc11, und wechseln Sie dann in dieses Verzeichnis:
      md c:\owc11

      cd c:\owc11
    2. Erstellen Sie den Quellcode für den Microsoft Windows Forms-Wrapper in C#:
      aximp "c:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Components\11\owc11.dll" /Quelle
    3. Löschen Sie die generierte Assembly AxOWC11.dll:
      del c:\owc11\axowc11.dll
  3. Öffnen Sie C:\OWC11\AxOWC11.cs in einem Texteditor (z.B. Editor).
  4. Fügen Sie der generierten Klasse für die Komponenten Chart, Spreadsheet und PivotTable den Wert [ToolboxItem(wahr)] hinzu. Siehe folgende Beispiele:

    Chart-Komponente
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxChartSpace : System.Windows.Forms.AxHost { 
      	... 
     } 
    Spreadsheet-Komponente
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxSpreadsheet : System.Windows.Forms.AxHost {
     	 ... 
     } 
    PivotTable-Komponente
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxPivotTable : System.Windows.Forms.AxHost {
     	 ... 
     } 
  5. Markieren Sie die Ereignisklassen als ClassInterfaceType.None. Siehe folgende Beispiele:

    Chart-Komponente
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]   public class AxChartSpaceEventMulticaster : OWC11.IChartEvents {  	 ...   } 
    Spreadsheet-Komponente
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]  public class AxSpreadsheetEventMulticaster : OWC11.ISpreadsheetEventSink {  	 ...  } 
    PivotTable-Komponente
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]   public class AxPivotTableEventMulticaster : OWC11.IPivotControlEvents {  	 ...   } 
  6. Speichern Sie die Änderungen, die Sie an "AxOWC11.cs" vorgenommen haben.
  7. Gehen Sie in der Visual Studio .NET-Eingabeaufforderung wie folgt vor:
    1. Fügen Sie C:\Programme\Microsoft.NET\Primary Interop Assemblies zu Ihrer Umgebungsvariable LIB hinzu:
      set lib=c:\Programme\microsoft.net\primary interop assemblies;%Pfad%
    2. Kopieren Sie Microsoft.Office.Interop.OWC11.dll und MSComCtl.dll aus dem GAC, in dem die Microsoft Office 2003 Primary Interop Assemblies installiert sind:
      copy %windir%\assembly\GAC\Microsoft.Office.Interop.Owc11\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Owc11.dll

      copy %windir%\assembly\GAC\mscomctl\10.0.4504.0__31bf3856ad364e35\mscomctl.dll
    3. Kompilieren Sie die Quelldatei AxOWC11.cs:
      csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
      Hinweis: Ihnen wird die folgende CS0108-Fehlermeldung angezeigt:
      Das Schlüsselwort "new" ist erforderlich
      Sie können diese Fehlermeldung gefahrlos ignorieren.
  8. Starten Sie Visual Studio .NET.
  9. Fügen Sie die neu kompilierte Datei AxOWC11.dll der Toolbox hinzu:
    1. Klicken Sie im Menü Extras auf Toolbox anpassen (in Visual Studio .NET 2002) bzw. auf Toolbox-Elemente hinzufügen/entfernen (Add/Remove Toolbox Items) (in Visual Studio .NET 2003), und klicken Sie anschließend auf die Registerkarte .NET Framework-Komponenten.
    2. Klicken Sie auf der Registerkarte .NET Framework-Komponenten auf Durchsuchen.
    3. Geben Sie im Textfeld Dateiname Folgendes ein: c:\owc11\axowc11.dll. Klicken Sie auf Öffnen.
    4. Klicken Sie auf OK, um das Dialogfeld Toolbox anpassen zu schließen.
Wenn Sie ein neues Microsoft Visual Basic .NET- oder Microsoft Visual C# .NET-Projekt erstellen, beachten Sie, dass die Liste der Steuerelemente auf der Registerkarte Allgemein im Dialogfeld Toolbox die Steuerelemente AxChartSpace, AxPivotTable und AxSpreadsheet enthält. Diese Komponenten können Sie jetzt Ihren Formularen hinzufügen.

Informationsquellen

Weitere Informationen zur Verwaltung von Ereignissen für die Office XP Web Components finden Sie in folgendem Artikel der Microsoft Knowledge Base:
328275 HOW TO: Handle Events for the Office Web Components in Visual Studio .NET

Eigenschaften

Artikel-ID: 823982 - Geändert am: Freitag, 16. Januar 2004 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office 2003 Web Components
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbpia kbofficewebspread kbofficewebpivot kbofficewebchart kbhowto KB823982
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