Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’automatisation (anciennement OLE Automation) permet à une application de manipuler des objets implémentés dans une autre application ou d’exposer des objets afin qu’ils puissent être manipulés.
Un serveur Automation est une application (type de serveur COM) qui expose ses fonctionnalités via des interfaces COM à d’autres applications, appelées clients Automation. L’exposition permet aux clients Automation d’automatiser certaines fonctions en accédant directement aux objets et en utilisant les services qu’ils fournissent.
Les serveurs et clients Automation utilisent des interfaces COM qui sont toujours dérivées IDispatch
et qui utilisent et retournent un ensemble spécifique de types de données appelés types Automation. Vous pouvez automatiser n’importe quel objet qui expose une interface Automation, en fournissant des méthodes et des propriétés auxquelles vous pouvez accéder à partir d’autres applications. L’automatisation est disponible pour les objets OLE et COM. L’objet automatisé peut être local ou distant (sur un autre ordinateur accessible sur un réseau) ; il existe donc deux catégories d’automatisation :
Automation (local).
Remote Automation (via un réseau, à l’aide de Distributed COM ou DCOM).
L’exposition d’objets est bénéfique lorsque les applications fournissent des fonctionnalités utiles à d’autres applications. Par exemple, un contrôle ActiveX est un type de serveur Automation ; l’application hébergeant le contrôle ActiveX est le client d’automatisation de ce contrôle.
Par exemple, un traitement de texte peut exposer ses fonctionnalités de vérification orthographique à d’autres programmes. L’exposition des objets permet aux fournisseurs d’améliorer leurs applications à l’aide des fonctionnalités prêtes à l’emploi d’autres applications. De cette façon, Automation applique certaines des principes de la programmation orientée objet, telles que la réutilisation et l’encapsulation, au niveau des applications elles-mêmes.
Plus important est le support fourni par Automation aux utilisateurs et aux fournisseurs de solutions. En exposant les fonctionnalités d’application par le biais d’une interface commune et bien définie, Automation permet de créer des solutions complètes dans un langage de programmation général unique, tel que Microsoft Visual Basic, plutôt que dans divers langages macro spécifiques à l’application.
De nombreuses applications commerciales, telles que Microsoft Excel et Microsoft Visual C++, vous permettent d’automatiser une grande partie de leurs fonctionnalités. Par exemple, dans Visual C++, vous pouvez écrire des macros VBScript pour automatiser les builds, les aspects de la modification du code ou les tâches de débogage.
Passage de paramètres dans Automation
L’une des difficultés de création de méthodes Automation contribue à fournir un mécanisme uniforme « sécurisé » pour transmettre des données entre les serveurs Automation et les clients. Automation utilise le type VARIANT pour transmettre des données. Le type VARIANT est une union étiquetée. Il a un membre de données pour la valeur (il s’agit d’une union C++ anonyme) et d’un membre de données indiquant le type d’informations stockées dans l’union. Le type VARIANT prend en charge un certain nombre de types de données standard : entiers de 2 et 4 octets, nombres à virgule flottante de 4 et 8 octets, chaînes et 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 de prise en charge sont encapsulées dans les classes COleCurrency et COleDateTime .
Exemples Automation
AUTOCLIK Utilisez cet exemple pour apprendre les techniques Automation et comme base pour l’apprentissage d’Automation à distance.
ACDUAL Ajoute des interfaces doubles à une application serveur Automation.
CALCDRIV Application cliente Automation qui pilote MFCCALC.
INPROC Illustre une application de serveur Automation In-Process.
IPDRIVE Application cliente Automation qui pilote INPROC.
MFCCALC Illustre une application cliente Automation.