Partager via


Objets liés et monikers

Les objets liés, comme les objets incorporés, s’appuient sur un gestionnaire d’objets pour communiquer avec les applications serveur. Toutefois, l’objet lié lui-même gère l’affectation de noms et le suivi des sources de lien. L’objet lié agit comme un serveur in-process. Par exemple, lorsqu’il est activé, un objet lié localise et lance l’application serveur OLE qui est la source du lien.

Le gestionnaire d’un objet lié est constitué de deux composants main : le composant gestionnaire et le composant de liaison. Le composant gestionnaire contient les éléments de contrôle et de communication à distance et fonctionne comme un gestionnaire pour un objet incorporé. Le composant de liaison a son propre contrôleur et son propre cache et fournit l’accès au stockage structuré de l’objet. Le contrôleur de composants de liaison prend en charge le nommage de la source via l’utilisation de monikers et la liaison, le processus de localisation et d’exécution de la source de lien. (Pour plus d’informations sur les monikers et la liaison, consultez Le modèle objet de composant.)

Lorsqu’un utilisateur crée initialement un objet lié ou en charge un objet existant à partir du stockage, le conteneur charge un instance du composant de liaison en mémoire, ainsi que le gestionnaire d’objets. Le composant de liaison fournit des interfaces, notamment IOleLink, qui identifient l’objet en tant que lien et lui permettent de gérer le nommage, le suivi et la mise à jour de sa source de lien.

En implémentant l’interface IOleLink , un objet lié fournit à son conteneur des fonctions qui prennent en charge la liaison. Seuls les objets liés implémentent IOleLink et, en interrogeant cette interface, un conteneur peut déterminer si un objet donné est incorporé ou lié. La fonction la plus importante fournie par IOleLink permet à un conteneur de se lier à la source de l’objet lié, c’est-à-dire d’activer la connexion au document qui stocke les données natives de l’objet lié. IOleLink définit également des fonctions pour gérer les informations relatives à l’objet lié, telles que les données de présentation mises en cache et l’emplacement de la source de lien.

Lorsqu’un document composé contenant un objet lié est enregistré, les données du lien sont enregistrées avec la source du lien, et non avec le conteneur. Seules les informations sur son nom et son emplacement sont enregistrées avec le document composé. Ce comportement contraste avec celui d’un objet incorporé, dont les données sont stockées avec celle de son conteneur.

Les applications conteneur peuvent fournir des informations sur leurs objets incorporés afin que ces derniers, ou des parties de ceux-ci, puissent agir en tant que sources de liens. En implémentant la prise en charge de la liaison aux objets incorporés de votre conteneur, vous rendez les incorporations imbriquées possibles, ce qui soulage l’utilisateur d’avoir à suivre les originaux de chaque objet d’incorporation vers lequel un lien est souhaité. Par exemple, si un utilisateur souhaite incorporer une feuille de calcul Microsoft Excel dans Microsoft Word et que la feuille de calcul contient une image bitmap créée dans Paintbrush, l’utilisateur peut créer un lien vers une copie de l’image bitmap contenue dans la feuille de calcul plutôt que vers l’original.

Documents composés

Serveurs in-process

Gestionnaires d’objets