Partager via


Objets liés et monikers

Les objets liés, tels que 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 le nommage et le suivi des sources de liens. 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 principaux : le composant gestionnaire et le composant de liaison. Le composant gestionnaire contient les éléments de contrôle et de communication à distance et les fonctions comme un gestionnaire pour un objet incorporé. Le composant de liaison possède 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 source par le biais de l’utilisation de monikers et de liaisons, 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 composant.)

Lorsqu’un utilisateur crée initialement un objet lié ou charge un objet existant à partir du stockage, le conteneur charge une 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 l’affectation de noms, 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 lier à la source de l’objet lié, autrement dit, d’activer la connexion au document qui stocke les données natives de l’objet lié. IOleLink définit également des fonctions permettant de 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 de lien, et non avec le conteneur. Seules les informations sur son nom et son emplacement sont enregistrées avec le document composé. Ce comportement diffère de 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, de sorte que ces dernières, ou parties de celles-ci, peuvent agir comme des sources de liaison. 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 permet à l’utilisateur de devoir suivre les originaux de chaque objet incorporé auquel 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 bitmap créée dans Paintbrush, l’utilisateur peut établir un lien vers une copie de la bitmap contenue dans la feuille de calcul plutôt que dans l’original.

documents composés

serveurs In-Process

gestionnaires d’objets