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.

Serveur Automation est une application (un type de serveur COM) qui affiche ses fonctionnalités via des interfaces COM vers d'autres applications, appelées Clients Automation. L'exposition permet aux clients Automation d'automatiser certaines fonctions en accédant directement aux objets et 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).

  • Automation à distance (sur un réseau, en utilisant DCOM (Distributed COM)).

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 Automation 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 permettent d'automatiser plusieurs de leurs fonctionnalités. Par exemple, dans Visual C++, vous pouvez écrire des macros en 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 et les clients Automation. Automation utilise le type VARIANT pour passer des données. Le type VARIANT est une union avec balises. Il comprend des données membre pour la valeur (il s'agit d'une union anonyme C++) et des données membre 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. En outre, il prend en charge les types HRESULT (codes d’erreur OLE), CURRENCY (type numérique à point fixe) et DATE (date et heure absolues), ainsi que les pointeurs vers IUnknown et IDispatch interfaces.

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

Exemples d'utilisation Automation

  • AUTOCLIK Utilisez cet exemple pour apprendre les techniques d'Automation et en guise de base pour découvrir Automation à distance.

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

  • CALCDRIV Application cliente Automation gérant MFCCALC.

  • INPROC Illustre une application serveur Automation en fonctionnement.

  • IPDRIVE Application Automation gérant INPROC.

  • MFCCALC Illustre une application cliente Automation.

Que voulez-vous en savoir plus sur

Ce que vous voulez faire

Voir aussi

MFC COM