INFO : Écriture de clients Automation pour plusieurs versions d'Office

Résumé

Lorsque vous développez des projets qui automatisent des applications Office, vous pouvez référencer une bibliothèque de types Office pour qu'elle effectue une liaison anticipée, ou fournir des informations sur les membres d'un modèle d'objet particulier. Ces membres incluent les propriétés, événements et méthodes qui sont pris en charge par cette version de Microsoft Office, et les paramètres nécessaires pour appeler ces fonctions lors de l'exécution. L'implémentation réelle des membres peut varier selon la version puisque le modèle d'objet Office est modifié pour prendre en charge la nouvelle fonctionnalité.

Cet article décrit les implications d'ordre général liées à la création de clients Automation qui fonctionnent avec plusieurs versions de Microsoft Office et explique les différences apportées par une liaison dans ces situations.

Plus d'informations

Les applications Office qui sont testées et compilées avec des versions antérieures d'une bibliothèque de types continuent de fonctionner, inchangées, lorsque les utilisateurs finaux de votre produit mettent à niveau leurs installations Office vers une version plus récente. De cette manière, Office procure une compatibilité descendante.

Toutefois, des applications qui sont testées et compilées avec des bibliothèques de types de versions plus récentes de l'application Office peuvent ne pas fonctionner avec des versions antérieures de Microsoft Office. Les bibliothèques de types Office ne sont pas compatibles binaire et, avec chaque nouvelle version de Microsoft Office, peuvent être modifiées pour inclure de nouvelles fonctionnalités et interfaces. La fonctionnalité est implémentée parmi les membres de la nouvelle version qui n'est pas incluse dans la version antérieure. De nouvelles méthodes sont ajoutées à la fin de la liste de fonctions pour toute interface d'objet particulière, de sorte que les membres précédents sont situés à l'emplacement approprié par rapport au début de l'interface et sont accessibles au code Automation existant. Les versions antérieures de Microsoft Office ne connaissant pas ces nouveaux membres, elles échouent si vous tentez d'y accéder.

Si vous avez besoin d'utiliser une fonctionnalité dans une nouvelle version de Microsoft Office, mais que vous développez un projet qui doit fonctionner sur des systèmes qui contiennent plusieurs versions, vous devez utiliser une liaison tardive pour l'appel. Lorsque vous utilisez une liaison tardive, vous indiquez à votre application d'utiliser IDispatch pour une interface d'objet particulière. GetIDsOfNames permet de rechercher le paramètre dispID de la méthode du membre spécifique que vous souhaitez utiliser, et Invoke permet d'effectuer l'appel Automation.

Pour résumer, si vous développez un client Automation que vous prévoyez d'utiliser avec plusieurs versions d'une application Office, vous devez :
  • Référencer la bibliothèque de types de la version la plus ancienne de l'application Office que vous prévoyez d'automatiser. - ou -

  • Utiliser une liaison tardive.
Un des problèmes de la liaison anticipée est que la plupart des compilateurs de bibliothèques de types vont automatiquement mettre à jour votre référence à la bibliothèque la plus récente disponible sur le système. Cela signifie que si vous avez besoin d'utiliser la version la plus ancienne de la bibliothèque pour travailler avec plusieurs versions d'une application Office, vous devez explicitement spécifier la bibliothèque la plus ancienne de votre projet.

Par exemple, si un projet Microsoft Visual Basic existant a été compilé sur un ordinateur avec Microsoft Word 97, ce projet s'exécute correctement sur Word 97, Word 2000, Word 2002 et Office Word 2003. Si vous installez par la suite Word 2000, la référence du projet se mettra automatiquement à jour pour la bibliothèque d'objets Word 2000 la prochaine fois que vous ouvrirez le projet Visual Basic. Si vous recompilez ensuite le projet à l'aide de la bibliothèque Word 2000, il se peut que le code ne fonctionne plus avec Word 97. Pour corriger ce problème, supprimez la référence à la nouvelle bibliothèque et recherchez clairement la bibliothèque de types la plus ancienne. Vous pouvez également utiliser une liaison tardive afin que cette mise à jour automatique ne s'applique pas.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.

242375 PROBLÈME : Le client Automation Microsoft Office 97 échoue après une recompilation avec une bibliothèque de types Office 2000 ou version ultérieure

Références

Pour plus d'informations sur l'utilisation de plusieurs versions de Microsoft Office, reportez-vous à l'article suivant de la Base de connaissances Microsoft :
245115 INFO : Utilisation des liaisons anticipée et tardive dans Automation

Pour plus d'information sur les liaisons anticipée et tardive lors de l'utilisation de la technologie Automation, reportez-vous à la rubrique "Fonctionnalité CreateObject" dans l'index de l'aide de Visual Basic.

(c) Microsoft Corporation 2001, Tous droits réservés. Contributions de Chris Jensen, Microsoft Corporation.

Propriétés

ID d'article : 244167 - Dernière mise à jour : 23 août 2006 - Révision : 1

Commentaires