Serveur Automation
L'automatisation le permet ainsi à votre application de manipuler des objets implémentés dans une autre application, ou d'exposer des objets de sorte qu'ils peuvent être manipulés.Un serveur Automation est une application qui expose les objets programmables (objets Automation appelés) à d'autres applications ( clients Automationappelé).Les serveurs Automation sont parfois appelés composants d'Automation.
Exposer des objets Automation permet aux clients d'automatiser certaines procédures en accédant directement aux objets et fonctionnalités que le serveur rend disponible.Exposant des objets de cette façon est utile lorsque les applications fournissent la fonctionnalité utile pour d'autres applications.Par exemple, un traitement de texte peut exposer ses fonctionnalités de correction orthographique afin que d'autres programmes puissent l'utiliser.L'exposition des objets permettez aux fournisseurs pour améliorer les fonctionnalités de leurs applications à l'aide de la fonctionnalité prête à l'emploi d'autres applications.
Ces objets Automation possèdent des propriétés et des méthodes comme leur interface externe.Les propriétés sont appelées attributs de l'objet Automation.Les propriétés sont comme les données membres de la classe C++.Les méthodes sont des fonctions qui opèrent aux objets Automation.Les méthodes sont comme les fonctions membres publiques de la classe C++.
[!REMARQUE]
Bien que les propriétés sont comme les membres de données de C++, elles ne sont pas directement accessibles.Pour fournir l'accès transparent, installez une variable interne dans l'objet Automation avec une paire get/fonctions membres d'ensemble pour y accéder.
En exposant la fonctionnalité d'application via une interface commune et bien définie, automation permet de générer des applications dans un langage de programmation général unique comme Microsoft Visual Basic plutôt que dans des langages macros divers et spécifiques à l'application.
Prise en charge des serveurs Automation
Visual C++ et l'infrastructure MFC fournissent la prise en charge complète pour les serveurs Automation.Ils gèrent une grande partie de la surcharge impliquée en faisant un serveur Automation, vous pouvez concentrer vos efforts sur les fonctionnalités de votre application.
Le mécanisme principal de l'infrastructure de l'automation de prise en charge est la table de dispatch, un ensemble de macros qui se développe en les déclarations et les appels nécessaires pour exposer des méthodes et des propriétés pour OLE.Une table de dispatch type se présente comme suit :
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()
La fenêtre Propriétés et l'Affichage de classes aident à maintenir des tables de dispatch.Lorsque vous ajoutez une nouvelle méthode ou propriété une classe, Visual C++ ajoute DISP_FUNCTION ou un correspondant d' DISP_PROPERTY avec les paramètres indiquant le nom de la classe, externe et les noms internes de la méthode ou la propriété, les types de données.
La boîte de dialogue de Ajouter une classe simplifie également la déclaration de classes automation et la gestion de leurs propriétés et événements.Lorsque vous utilisez la boîte de dialogue de classe pour ajouter une classe à votre projet, vous spécifiez sa classe de base.Si la classe de base permet l'automation, les contrôles d'affichages de boîte de dialogue ajouter une classe que vous utilisez pour spécifier si la nouvelle classe doit prendre en charge l'automation, si elle est « OLE pouvant être créés » (autrement dit, si les objets de la classe peuvent être créés sur une demande d'un client COM), et le nom externe pour le client COM utilise.
La boîte de dialogue de 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 code squelette pour l'implémentation de fonctions membres de votre classe.
L'Assistant Application MFC simplifie les étapes relatives en obtenant votre application serveur Automation en dehors de le monde.Si vous activez la case à cocher d' Automation de la page Fonctionnalités avancées , l'Assistant Application MFC ajoute à la fonction d' InitInstance de votre application appelle requis pour stocker vos objets Automation et exécuter votre application comme un serveur Automation.