Création de clients pour les serveurs n'ayant pas une bibliothèque de types

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création de clients COM - Index


Certaines anciennes technologies COM comme OLE ne proposent pas les informations de type dans une bibliothèque de types. Elles reposent à la place sur un ensemble standard d'interfaces prédéfinies. Pour écrire des clients accueillant de tels objets, vous pouvez utiliser les composants Vcl.OleCtnrs.TOleContainer. Ce composant apparaît dans la catégorie Système de la palette d'outils.

TOleContainer se comporte comme le site d'accueil d'un objet Ole2. Il implémente l'interface IOleClientSite et, de manière facultative, IOleDocumentSite. La communication est gérée en utilisant des verbes OLE.

Pour utiliser TOleContainer

  1. Placez un composant TOleContainer dans votre fiche.
  2. Initialisez la propriété AllowActiveDoc à true si vous voulez pouvoir accueillir un document actif.
  3. Initialisez la propriété AllowInPlace pour indiquer si l'objet accueilli doit apparaître dans le TOleContainer ou dans une fenêtre séparée.
  4. Ecrivez des gestionnaires d'événements pour répondre quand l'objet est activé, désactivé, déplacé ou redimensionné.
  5. Pour lier l'objet TOleContainer à la conception, cliquez avec le bouton droit de la souris et choisissez Insérer un objet. Dans la boîte de dialogue Insertion d'objet, choisissez l'objet serveur à accueillir.
  6. Vous avez plusieurs moyens de lier l'objet TOleContainer à l'exécution, selon la manière dont vous voulez identifier l'objet serveur. La méthode CreateObject attend un identificateur de programme, CreateObjectFromFile attend le nom d'un fichier dans lequel l'objet a été enregistré, CreateObjectFromInfo attend un enregistrement contenant des informations sur la manière de créer l'objet ou CreateLinkToFile qui attend le nom d'un fichier dans lequel l'objet a été enregistré et effectue une liaison et non une incorporation.
  7. Une fois l'objet lié, vous pouvez accéder à son interface en utilisant la propriété OleObjectInterface. Cependant, comme la communication avec les objets Ole2 était basée sur les verbes OLE, vous préférerez probablement envoyer des commandes au serveur en utilisant la méthode DoVerb.
  8. Quand vous voulez libérer l'objet serveur, appelez la méthode DestroyObject.

Voir aussi