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 permet à votre 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 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 d’objets Automation permet aux clients d’automatiser certaines procédures en accédant directement aux objets et fonctionnalités que le serveur met à disposition. L’exposition d’objets de cette façon est bénéfique lorsque les applications fournissent des fonctionnalités utiles pour d’autres applications. Par exemple, un traitement de texte peut exposer ses fonctionnalités de vérification orthographique afin que d’autres programmes puissent l’utiliser. L’exposition d’objets permet ainsi aux fournisseurs d’améliorer les fonctionnalités de leurs applications à l’aide des fonctionnalités prêtes à l’emploi d’autres applications.
Ces objets Automation ont des propriétés et des méthodes comme interface externe. Les propriétés sont des attributs nommés de l’objet Automation. Les propriétés sont similaires aux membres de données d’une classe C++. Les méthodes sont des fonctions qui fonctionnent sur des objets Automation. Les méthodes sont similaires aux fonctions membres publiques d’une classe C++.
Remarque
Bien que les propriétés soient similaires aux membres de données C++, elles ne sont pas directement accessibles. Pour fournir un accès transparent, configurez une variable interne dans l’objet Automation avec une paire de fonctions membres get/set pour y accéder.
En exposant les fonctionnalités d’application par le biais d’une interface commune et bien définie, Automation permet de créer des applications dans un langage de programmation général unique comme Microsoft Visual Basic au lieu de langages macros spécifiques à l’application divers.
Prise en charge des serveurs Automation
Visual C++ et l’infrastructure MFC fournissent une prise en charge étendue des serveurs Automation. Ils gèrent une grande partie de la surcharge impliquée dans la création d’un serveur Automation. Vous pouvez donc concentrer vos efforts sur les fonctionnalités de votre application.
Le mécanisme principal de l’infrastructure pour prendre en charge Automation est la carte de répartition, un ensemble de macros qui s’étend dans les déclarations et les appels nécessaires pour exposer des méthodes et des propriétés pour OLE. Une carte de répartition 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 autorise 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 Automation, s’il s’agit de « OLE creatable » (autrement dit, si les objets de la classe peuvent être créés sur une demande d’un client COM) et le nom externe du client COM à utiliser.
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. Il ajoute également le code squelette pour l’implémentation des fonctions membres de votre classe.
L’Assistant Application MFC simplifie les étapes impliquées dans l’obtention de votre application serveur Automation. Si vous activez la case à cocher Automation 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.