Partager via


Automation

Automation (anciennement appelé OLE Automation) permet à une application de manipuler des objets implémentés dans une autre application, ou d'exposer des objets pour qu'ils puissent être manipulés.

Automation Server est une application (un type de serveur COM) qui affiche ses fonctionnalités via des interfaces COM vers d'autres applications, appelées Automation Clients. L'exposition permet aux clients Automation d'automatiser certaines fonctions en accédant directement aux objets en utilisant les services qu'ils fournissent.

Les serveurs et les clients Automation utilisent des interfaces COM qui sont toujours dérivées de IDispatch et prennent et retournent un ensemble de types de données appelés types Automation. Vous pouvez automatiser un objet qui expose une interface Automation, en fournissant les méthodes et les propriétés auxquelles vous pouvez accéder à partir d'autres applications. Automation est disponible pour les objets OLE et COM. L'objet automatisé peut être local ou distant (sur un ordinateur accessible depuis un réseau) ; il existe deux catégories d'automatisation :

  • Automation (local).

  • Remote Automation (sur un réseau, en utilisant le Distributed COM, ou DCOM).

Exposer des objets est judicieux si les applications offrent des fonctionnalités utiles pour d'autres applications. Par exemple, un contrôle ActiveX est un type de serveur Automation ; l'application qui héberge le contrôle ActiveX est le client automatisation de ce contrôle.

À titre d'exemple, un traitement de texte peut exposer ses fonctionnalités de contrôle d'orthographe à d'autres programmes. L'exposition des objets permet aux fournisseurs d'améliorer leurs applications en utilisant les fonctions déjà existantes d'autres applications. De cette manière, Automation applique certains principes de programmation orientée objet, tels que la réutilisabilité et l'encapsulation, au niveau des applications elles-mêmes.

Le support que Automation offre aux utilisateurs et aux fournisseurs de solutions est plus important. En exposant des fonctionnalités d'application via une interface commune et bien définie, Automation permet de générer des solutions complètes dans un seul langage de programmation général, tel que Microsoft Visual Basic, et non pas dans des macro-langages spécifiques à chaque application.

De nombreuses applications commerciales, telles que Microsoft Excel et Microsoft Visual C++, vous permet d'automatiser plusieurs de leurs fonctionnalités. Par exemple, dans Visual C++, vous pouvez écrire des macros de VBScript pour automatiser la génération, certains aspects de la modification de code, ou des tâches de débogage.

Passage de paramètres dans Automation

Une difficulté dans la création de méthodes Automation permet de fournir un mécanisme uniforme « sûr » pour passer des données entre les serveurs Automation et les clients. Automation utilise le type VARIANT pour passer des données. Le type VARIANT est une union avec balises. Il comprend un membre de données pour la valeur (il s'agit d'une union anonyme C++) et un membre de données indiquant le type d'informations stockées dans l'union. Le type VARIANT prend en charge plusieurs types de données standard : des entiers codés sur 2 et 4 octets, des nombres à virgule flottante codés sur 4 et 8 octets, des chaînes et des valeurs booléennes. De plus, il prend en charge les types HRESULT (OLE codes d'erreur), DEVISE (un des types numériques à virgule fixe), et DATE (date et heure absolue), ainsi que les pointeurs vers IUnknown et les interfaces IDispatch.

Le type VARIANT est encapsulé dans la classe COleVariant. La prise en charge des classes CURRENCY et DATE sont encapsulées dans les classes COleCurrency et COleDateTime.

Exemples d'utilisation d'Automation

  • AUTOCLIK : Utilisez cet exemple pour apprendre les techniques d'Automation et comme base pour apprendre Remote Automation.

  • ACDUAL ajoute des interfaces doubles à une application de serveur Automation.

  • CALCDRIV : client Automation gérant MFCCALC.

  • INPROC : illustre une application serveur Automation en fonctionnement.

  • IPDRIVE : application Automation gérant INPROC.

  • MFCCALC : illustre une application cliente Automation.

Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?

Que voulez-vous faire ?

Voir aussi

Concepts

MFC COM