Code généré par les experts
Remonter à Implémentation des objets COM à l'aide d'experts
Les experts Delphi et C++Builder des classes qui dérivent de l'infrastructure ActiveX Delphi (DAX). En dépit de son nom, ActiveX Delphi gère tant Delphi et C++, que tous les types d'objet COM et pas uniquement les contrôles ActiveX. Les classes de cette infrastructure fournissent l'implémentation sous-jacente des interfaces COM aux objets que vous créez en utilisant un expert.
La figure suivante illustre les objets de l'infrastructure ActiveX de Delphi :
Remarque : Pour C++Builder, les noms d'objet DAX contiennent généralement "Cpp" (par exemple, TCppComObject et TCppActiveXPropertyPage, et ainsi de suite).
Chaque expert génère une unité d'implémentation qui implémente votre objet serveur COM. L'objet serveur COM (l'objet implémentation) descend de l'une des classes DAX :
Classes de base DAX utilisées par les classes d'implémentation générées :
Expert | Classe de base DAX | Gestion héritée |
---|---|---|
Gestion des interfaces IUnknown et ISupportErrorInfo. Gestion de l’agrégation, des exceptions OLE, de la convention d’appel safecall et des conventions sur les interfaces doubles. Gestion de la lecture des informations des bibliothèques de types. | ||
Serveurs Automation ou Création d'une page Active Server - Index |
Tout ce qui est fourni par TTypedComObject, plus : Gestion de l’interface IDispatch. Gestion de l’auto-marshaling. |
Correspondant aux classes DAX, c'est une hiérarchie d'objets fabricant de classe qui gère la création de ces objets COM. L'expert ajoute du code à la section initialisation de votre unité d'implémentation qui instancie le fabricant de classe approprié à votre classe d'implémentation.
Les experts génèrent également une bibliothèque de types et son unité associée, qui porte un nom de la forme Project1_TLB. L'unité Project1_TLB contient les définitions dont votre application a besoin pour utiliser les types et les interfaces définis dans la bibliothèque de types. Pour plus d'informations sur le contenu de ce fichier, voir Code généré par l'importation des informations d'une bibliothèque de types.
Vous pouvez modifier l'interface générée par l'expert en utilisant l'Editeur de bibliothèques de types. Si vous le faites, la classe d'implémentation est automatiquement actualisée pour refléter vos modifications. Il vous suffit juste de remplir le corps des méthodes générées pour compléter l'implémentation.