Serveurs COM
Remonter à Composantes d'une application COM
Un serveur COM est une application ou une bibliothèque qui fournit des services à une application ou bibliothèque client. Un serveur COM est constitué d'un ou de plusieurs objets COM, un objet COM étant un ensemble de propriétés (données membre ou contenu) et de méthodes (fonctions membre).
Les clients ne savent pas comment l'objet COM effectue son service ; l'implémentation de l'objet est encapsulée. Un objet met ses services à disposition par le biais de ses interfaces.
En outre, les clients n'ont pas besoin de savoir où réside l'objet COM. COM fournit un accès transparent quel que soit l'emplacement de l'objet.
Quand il demande un service à un objet COM, le client transmet un identificateur de classe (CLSID) à COM. Un CLSID est juste un GUID qui référence un objet COM. COM utilise ce CLSID, recensé dans le registre système, pour localiser l'implémentation appropriée du serveur. Une fois le serveur localisé, COM amène le code en mémoire, et fait instancier par le serveur une instance de l'objet pour le client. Ce processus est géré indirectement par un objet spécial appelé une factory (basé sur les interfaces) qui crée sur demande des instances d'objet.
Au minimum, un serveur COM doit effectuer ceci :
- Recenser des entrées dans le registre système pour associer le module serveur à l’identificateur de classe (CLSID).
- Implémenter un objet factory de classe, qui fabrique un autre objet à partir d’un CLSID particulier.
- Exposer la factory d’objet à COM.
- Fournir un mécanisme de déchargement grâce auquel un serveur qui ne sert pas de client pourra être supprimé de la mémoire.
Remarque : Les experts de Delphi automatisent la création des objets et des serveurs COM.
Rubriques
- CoClasses et factories de classes
- Serveurs en processus, hors processus et distants
- Le mécanisme du marshaling
- Agrégation (COM)