Contrôle d'un serveur Automation en utilisant une interface de répartition
Remonter à Ecriture de code client basé sur les définitions de la bibliothèque de types
Généralement, vous utilisez l'interface double pour contrôler le serveur Automation. Toutefois, il se peut que vous deviez contrôler un serveur Automation avec une interface de répartition s'il n'y a pas d'interface double disponible.
Pour appeler les méthodes d'une interface de répartition,
- Connectez-vous au serveur, en utilisant la fonction globale CreateOleObject.
- Utilisez l'opérateur as pour transtyper l'interface IDispatch renvoyée par CreateOleObject en une interface de répartition pour la CoClasse. Ce type dispinterface est déclaré dans l'unité NomBibTypes_TLB.
- Contrôlez le serveur Automation en appelant les méthodes de la dispinterface.Vous pouvez utiliser autrement les interfaces de répartition en les assignant à un Variant. En assignant l'interface renvoyée par CreateOleObject à un Variant, vous pouvez tirer profit de la gestion intégrée des interfaces que propose le type Variant. Appelez simplement les méthodes de l'interface et c'est le Variant qui gère automatiquement les appels IDispatch, la récupération de l'identificateur de répartition et les appels de méthode appropriés. Le type Variant possède une gestion intégrée permettant l'appel des interfaces de répartition, via ses méthodes var.
V: Variant; begin V:= CreateOleObject("TheServerObject"); V.MethodName; { appelle la méthode spécifiée } ...
Un avantage de l'utilisation de Variants est qu'il n'est pas nécessaire d'importer la bibliothèque de types car les Variants utilisent uniquement les méthodes standard de IDispatch pour appeler le serveur. La contrepartie, c'est que les Variants sont plus lents car ils utilisent une liaison dynamique à l'exécution.