COMMENT FAIRE : Gérer les événements pour Office 2003 Web Components dans Visual Studio .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 823982 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit étape par étape comment modifier les wrappers de classe pour Microsoft Office 2003 Web Components. Il explique ensuite comment régénérer les wrappers de classe pour pouvoir gérer leurs événements dans une application créée à l'aide de Microsoft Visual Studio .NET.

Par défaut, les wrappers de classe générés par Microsoft Visual Studio .NET ne vous permettent pas de gérer les événements pour les composants Web Office 2003 suivants :
  • Chart
  • Spreadsheet
  • PivotTable
Pour gérer les événements pour ces composants, vous pouvez modifier le code source pour les wrappers de classe et recompiler le code.

Introduction

Microsoft Visual Studio .NET génère une classe event listener qui implémente une interface event. Cette classe event listener est passée à Office Web Components (OWC). Office Web Components appelle ensuite la méthode QueryInterface pour l'interface IDispatch au lieu d'appeler l'interface event. Cependant, l'interface IDispatch pour la classe générée ne contient pas d'identificateurs DISPID (DISpatch IDentifier) pour les événements.

Pour résoudre ce problème, vous pouvez marquer la classe générée en utilisant la valeur ClassInterfaceType.None pour forcer COM Interop à retourner IDispatch pour l'interface et non pour la classe. L'interface IDispatch contient les identificateurs DISPID pour les événements.

Procédure à suivre pour modifier et régénérer les wrappers de classe

  1. Démarrez l'invite de commandes Visual Studio .NET.
  2. À l'invite de commandes, procédez comme suit :
    1. Créez un dossier nommé owc11, puis passez à ce répertoire :
      md c:\owc11

      cd c:\owc11
    2. Générez le code source dans C# pour le wrapper Microsoft Windows Forms :
      aximp "c:\program files\common files\microsoft shared\web components\11\owc11.dll" /source
    3. Supprimez l'assembly généré AxOWC11.dll :
      del c:\owc11\axowc11.dll
  3. Dans un éditeur de texte tel que le Bloc-notes, ouvrez C:\OWC11\AxOWC11.cs.
  4. Ajoutez [ToolboxItem(true)] à la classe générée pour les composants Chart, Spreadsheet et PivotTable, comme dans les exemples suivants :

    Composant Chart
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxChartSpace : System.Windows.Forms.AxHost { 
      	... 
     } 
    Composant Spreadsheet
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxSpreadsheet : System.Windows.Forms.AxHost {
     	 ... 
     } 
    Composant PivotTable
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxPivotTable : System.Windows.Forms.AxHost {
     	 ... 
     } 
  5. Marquez les classes d'événements comme ClassInterfaceType.None, comme dans les exemples suivants :

    Composant Chart
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxChartSpaceEventMulticaster : OWC11.IChartEvents {
     	 ...
      } 
    Composant Spreadsheet
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)]
     public class AxSpreadsheetEventMulticaster : OWC11.ISpreadsheetEventSink {
     	 ...
     } 
    Composant PivotTable
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxPivotTableEventMulticaster : OWC11.IPivotControlEvents {
     	 ... 
     } 
  6. Enregistrez vos modifications dans AxOWC11.cs.
  7. À l'invite de commandes Visual Studio .NET, procédez comme suit :
    1. Ajoutez C:\Program Files\Microsoft.NET\Primary Interop Assemblies à votre variable d'environnement LIB :
      set lib=c:\program files\microsoft.net\primary interop assemblies;%path%
    2. Copiez Microsoft.Office.Interop.OWC11.dll et MSComCtl.dll du GAC où sont installés les assemblys PIA (Primary Interop Assembly) Microsoft Office 2003 :
      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. Compilez le fichier source, AxOWC11.cs :
      csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
      Remarque Le message d'erreur CS0108 suivant s'affiche :
      Le mot clé new est requis
      Vous pouvez ignorer cette erreur.
  8. Démarrez Visual Studio .NET.
  9. Ajoutez le fichier que vous venez de compiler, AxOWC11.dll, à la Boîte à outils :
    1. Dans le menu Outils, cliquez sur Personnaliser la boîte à outils (dans Visual Studio .NET 2002) ou sur Ajouter/Supprimer des éléments de la boîte à outils (dans Visual Studio .NET 2003), puis cliquez sur l'onglet Composants .NET Framework.
    2. Sous l'onglet Composants .NET Framework, cliquez sur Parcourir.
    3. Dans la zone de texte Nom de fichier, tapez c:\owc11\axowc11.dll. Cliquez sur Ouvrir.
    4. Cliquez sur OK pour fermer la boîte de dialogue Personnaliser la boîte à outils.
Lorsque vous créez un projet Microsoft Visual Basic .NET ou un projet Microsoft Visual C# .NET, notez que la liste de contrôles sous l'onglet Général dans la Boîte à outils contient les contrôles AxChartSpace, AxPivotTable et AxSpreadsheet. Vous pouvez désormais ajouter ces composants à vos formulaires.

Références

Pour plus d'informations sur la gestion des événements pour Office XP Web Components à l'aide de Visual Studio .NET, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
328275 COMMENT FAIRE : Gérer les événements pour Office Web Components dans Visual Studio .NET

Propriétés

Numéro d'article: 823982 - Dernière mise à jour: vendredi 9 janvier 2004 - Version: 1.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office 2003 Web Components
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# .NET 2002 Initiation
Mots-clés : 
kbpia kbofficewebspread kbofficewebpivot kbofficewebchart kbhowto KB823982
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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