Partager via


Serveurs Automation

L'Automation rend possible pour votre application la manipulation d'objets implémentés dans une autre application, ou l'exposition d'objets pour qu'ils puissent être manipulés. Un serveur Automation est une application qui expose des objets programmables (appelés objets Automation) à d’autres applications (appelées clients Automation). Les serveurs Automation sont parfois appelés composants Automation.

L'exposition des objets Automation permet aux clients d'automatiser certaines procédures en accédant directement aux objets et aux fonctionnalités que le serveur rend disponibles. L'exposition des objets de cette manière est bénéfique lorsque les applications fournissent des fonctionnalités qui sont utiles à d'autres applications. Par exemple, un traitement de texte peut exposer sa fonctionnalité de vérification d'orthographe pour qu'un autre programme puisse l'utiliser. L'exposition d'objets permet alors aux fournisseurs d'améliorer les fonctionnalités de leurs applications en utilisant la fonctionnalité prête à l'emploi d'autres applications.

Ces objets Automation possèdent des propriétés et des méthodes qui leur servent d'interface externe. Les propriétés sont appelées les attributs des objets Automation. Les propriétés sont comme les membres de données d'une classe C++. Les méthodes sont des fonctions qui utilisent des objets Automation. Les méthodes sont comme les fonctions membres publiques d'une classe en C++.

Remarque

Bien que les propriétés sont comme les membres de données C++, elles ne sont pas directement accessibles. Pour fournir un accès transparent, installez une variable interne dans l'objet Automation avec une paire de fonctions get/set pour y accéder.

En exposant des fonctionnalités d'application via une interface commune et bien définie, Automation permet de générer des applications dans un seul langage de programmation général, tel que Microsoft Visual Basic, et non pas dans des langages macros spécifiques à chaque application.

Prise en charge des serveurs Automation

Visual C++ et le framework MFC fournissent la prise en charge complète des serveurs Automation. Ils gèrent une grande partie de la charge mémoire générée par un serveur Automation, donc vous pouvez concentrer vos efforts sur la fonctionnalité de votre application.

Le mécanisme principal du framework pour la prise en charge de l’Automation est la table de dispatch, un ensemble de macros qui se développe en déclarations et en appels nécessaires pour exposer les méthodes et les propriétés pour OLE. Une table de dispatch classique ressemble à ceci :

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

L’Assistant Classe et la vue De classe aident à gérer les cartes de répartition. Lorsque vous ajoutez une nouvelle méthode ou propriété à une classe, Visual Studio ajoute une macro correspondante DISP_FUNCTION avec DISP_PROPERTY des paramètres indiquant le nom de classe, les noms externes et internes de la méthode ou de la propriété et les types de données.

La boîte de dialogue Ajouter une classe simplifie également la déclaration des classes Automation et la gestion de leurs propriétés et opérations. Lorsque vous utilisez la boîte de dialogue Ajouter une classe pour ajouter une classe à votre projet, vous spécifiez sa classe de base. Si la classe de base permet l'Automation, la boîte de dialogue Ajouter une classe affiche les contrôles que vous utilisez pour spécifier si la nouvelle classe doit prendre en charge l'Automation, si elle "peut être créée avec OLE" (autrement dit, si les objets de la classe peuvent être créés sur une requête d'un client COM), ainsi que le nom externe pour que le client COM l'utilise.

La boîte de dialogue Ajouter une classe crée ensuite une déclaration de classe, y compris les macros appropriées pour les fonctionnalités OLE que vous avez spécifiées. Elle ajoute également le squelette du code pour l'implémentation des fonctions membres de votre classe.

L'Assistant Application MFC simplifie les étapes d'obtention de l'application serveur Automation à partir de rien. Si vous sélectionnez la zone Automation case activée dans la page Fonctionnalités avancées, l’Assistant Application MFC ajoute à la fonction de InitInstance votre application les appels requis pour inscrire vos objets Automation et exécuter votre application en tant que serveur Automation.

Ce que vous voulez faire

Voir aussi

Automation
Assistant Application MFC