Information : Les bibliothèques de types pour Office peuvent changer avec la nouvelle version

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

224925
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Résumé
Produits Microsoft Office peuvent changer d'une version à l'autre. En règle générale, la bibliothèque de type pour un produit Office aura les mêmes fonctions qui étaient présentes dans la version antérieure du produit, mais certaines fonctions peut-être ajouts au nombre d'arguments. Par conséquent, si vous utilisez des classes wrapper généré ClassWizard pour une bibliothèque d'objet Office avec le code écrit avec une version précoce de la bibliothèque d'objet, vous pouvez recevoir l'erreur de compilation suivante :
erreur l'erreur C2660: (fonction): fonction ne prend pas de paramètres (n)
Plus d'informations
Pour illustrer, une telle fonction a changé est la méthode de complément de Microsoft Word 2000 de l'objet documents. Si vous avez utilisé l'Assistant ClassWizard pour générer des wrappers de classe pour les fonctions dans la bibliothèque de type Microsoft Word 2000 et que vous utilisez code qui fonctionnait avec Microsoft Word 97, vous recevrez l'erreur de compilation décrite précédemment. Le tableau suivant décrit la façon dont vous pouvez corriger ce problème. Notez que bien que le cas illustré s'applique au code spécifiquement automatise Word, les mêmes informations peuvent être appliquées à d'autres applications Microsoft Office.

Avec la bibliothèque de type Word 97, vous pouvez utiliser le code suivant pour automatiser Word et démarrer un nouveau document :
   _Application oApp;   Documents oDocs;   _Document oDoc;   COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),               vtTrue((short)TRUE),               vtFalse((short)FALSE);   // Create an instance of Word   if (!oApp.CreateDispatch("Word.Application"))    {      AfxMessageBox("Word failed to start!");      return;   } 	   // Add a new document and make Word visible   oDocs = oApp.GetDocuments();   oDoc = oDocs.Add(vtOptional,vtOptional);   oApp.SetVisible(TRUE);				
si vous essayez d'exécuter ce code par rapport à la bibliothèque de type Word 2000, vous recevrez l'erreur de compilation l'erreur C2660 vous "'Ajouter': fonction ne prend pas de 2 paramètres" pour la ligne suivante de code :
     oDoc = oDocs.Add(vtOptional,vtOptional);				
pour corriger ce problème, vous pouvez effectuer les étapes suivantes.
  1. Cliquez sur l'onglet ClassView de la fenêtre projet.
  2. Dans la liste de classes pour votre espace de travail, double-cliquez sur la classe de documents pour afficher ses membres.
  3. Recherchez la fonction Ajouter un membre et vous verrez qu'il s'attend à quatre arguments. Votre code seulement passe deux arguments, donc vous recevez l'erreur de compilation.
  4. Reportez-vous à l'aide de Visual Basic dans Microsoft Word et recherchez la rubrique pour l'ajouter une méthode de l'objet documents pour déterminer le type de données à utiliser pour ces arguments et/ou pour déterminer si les arguments sont facultatifs. Dans ce cas, les deux nouveaux arguments sont facultatifs.
  5. Revenir à votre projet et modifier la ligne incriminée de code à lire :
       oDoc = Docs.Add(vtOptional,vtOptional,vtOptional,vtOptional);					
  6. Recompilez le projet. Il doit désormais compile sans erreur.

Automatisation de plusieurs versions d'applications Office

Si vous avez l'intention d'écrire du code MFC qui automatisera plusieurs versions d'une application Microsoft Office, vous devez utiliser l'Assistant ClassWizard pour générer des classes wrapper à partir de la bibliothèque de type de la version la plus ancienne. Par exemple, si vous souhaitez que votre client Automation pour prendre en charge Microsoft Word 97 et 2000, utilisez la bibliothèque de type Word 97 pour vos classes wrapper. De même, votre client Automation pour prendre en charge Microsoft 2000 et 2002, utilisez la bibliothèque de types Word 2000 pour vos classes wrapper.
Références
Pour plus d'informations sur Office Automation, reportez-vous au site de support de développement de Microsoft Office à :

Avertissement : Cet article a été traduit de manière automatique

Propriétés

ID d'article : 224925 - Dernière mise à jour : 02/23/2014 08:10:54 - Révision : 5.4

  • Microsoft Excel 2000 Standard
  • Microsoft Word 2002 Standard Edition
  • Microsoft Excel 2002
  • Microsoft PowerPoint 2002 Standard
  • Microsoft Access 2002
  • Microsoft Word 2000 Standard Edition
  • Microsoft PowerPoint 2000 Standard
  • Microsoft Access 2000 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • kbnosurvey kbarchive kbmt kbautomation kbinfo KB224925 KbMtfr
Commentaires