Utilisation de l'expert Objet COM

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création de serveurs COM simples - Index


L'expert Objet COM effectue les opérations suivantes :

  • Création d'une nouvelle unité.
  • Définition d'une nouvelle classe qui descend de TCOMObject et configure le constructeur de la factory de classe. Pour plus d'informations sur la classe de base, voir Code généré par des experts.
  • Ajout au projet d'une bibliothèque de types et ajout de l'objet et de son interface à la bibliothèque de types.
  • Ouverture de la bibliothèque de types dans l'éditeur de bibliothèque de types

Avant de créer un objet COM, créez ou ouvrez le projet de l'application contenant les fonctionnalités à implémenter. Le projet peut être une application ou une bibliothèque ActiveX, selon vos besoins.


Pour afficher l'expert objet COM, voir Utilisation des experts COM.

Dans l'expert, vous devez spécifier :

  • Nom de CoClasse : C'est le nom de l'objet tel qu'il apparaît aux clients. La classe créée pour implémenter votre objet porte ce nom préfixé par un 'T'. Si vous choisissez de ne pas implémenter une interface existante, l'expert attribue à votre CoClasse une interface par défaut portant ce nom préfixé par un 'I'.
  • Instanciation : Sauf si vous créez un serveur en processus, vous devez indiquer comment COM lance l'application qui accueille votre objet COM. Si votre application implémente plusieurs objets COM, vous devez utiliser la même méthode d'instanciation pour tous.
  • Modèle de thread : Généralement, le client demande à votre objet de participer à différents threads d'exécution. Vous pouvez spécifier comment COM sérialise ces threads quand il appelle votre objet. Le choix du modèle de thread détermine comment l'objet est recensé. C'est à vous d'assurer la gestion de thread impliquée par le modèle choisi. Pour des informations sur la manière de gérer les threads dans votre application, voir Ecriture d'applications multithreads.
  • Interface : L'expert attribue à votre objet une interface par défaut qui descend de IUnknown. Par défaut, l'expert donne à votre interface le même nom que la CoClasse, précédé de la lettre 'I' pour indiquer qu'il s'agit d'une interface. Après être sorti de l'expert, vous devez utiliser l'éditeur de bibliothèques de types pour ajouter des propriétés et méthodes à cette interface. Cependant, vous pouvez aussi sélectionner une interface prédéfinie que votre objet va implémenter. Cliquez sur le bouton [...] dans l'expert Objet COM pour afficher l'expert de sélection d'interface qui vous permet de sélectionner toute interface double ou personnalisée définie dans une bibliothèque de types recensée sur votre système. L'interface que vous sélectionnez devient l'interface par défaut de votre nouvelle CoClasse. L'expert ajoute toutes les méthodes de cette interface à la classe d'implémentation générée, ainsi il ne vous reste plus qu'à remplir le corps des méthodes dans l'unité d'implémentation. Si vous sélectionnez une interface existante, l'interface n'est pas ajoutée à la bibliothèque de types de votre projet. Cela signifie que lors du déploiement de l'objet, vous devez également déployer la bibliothèque de types qui définit l'interface.
  • Inclure la bibliothèque de types : Vous pouvez décider si vous voulez inclure une bibliothèque de types pour votre objet. Cela est recommandé pour deux raisons : elle vous permet d'utiliser l'éditeur de bibliothèques de types pour définir les interfaces, et donc actualiser l'essentiel de l'implémentation, et cela donne aux clients un moyen simple d'obtenir des informations sur votre objet et ses interfaces. Si vous implémentez une interface existante, Delphi requiert l'utilisation d'une bibliothèque de types par votre projet. C'est la seule façon de fournir l'accès à la déclaration d'interface originale.
  • Marquer interface Oleautomation : Si vous voulez vous confiner aux types compatibles Automation et si vous choisissez de créer une bibliothèque de types, vous pouvez laisser COM gérer pour vous le marshaling quand vous ne générez pas un serveur en processus. En indiquant l'interface de votre objet comme étant OleAutomation dans la bibliothèque de types, vous permettez à COM de définir pour vous les proxys et stubs et de gérer le passage de paramètres entre les frontières de processus. Vous ne pouvez spécifier que l'interface est compatible Automation que si vous créez une nouvelle interface. Si vous sélectionnez une interface existante, ses attributs sont déjà spécifiés dans sa bibliothèque de types. Si l'interface de votre objet n'est pas marquée comme OleAutomation, vous devez soit créer un serveur en processus ou écrire votre propre code de marshaling.

Vous pouvez, si vous le souhaitez, ajouter une description de votre objet COM. Cette description apparaît pour l'objet dans la bibliothèque de types si vous en créez une.

Voir aussi