Gestionnaire OLE

Un gestionnaire OLE est une DLL contenant plusieurs composants d’interaction utilisés pour la liaison et l’incorporation. Pour éviter les dépenses liées à la communication interprocessus constante entre un conteneur et son serveur, le gestionnaire est chargé dans l’espace de processus du conteneur pour agir au nom d’un serveur comme une sorte de processus de substitution. Le gestionnaire OLE gère les demandes de conteneur qui ne nécessitent pas l’attention de l’application serveur, telles que les demandes de dessin. Lorsqu’un conteneur demande quelque chose que le gestionnaire d’objets ne peut pas fournir, le gestionnaire communique avec l’application serveur à l’aide du mécanisme de communication com hors processus.

Les composants du gestionnaire OLE incluent des éléments de communication à distance pour gérer la communication entre le gestionnaire et son serveur, un cache pour stocker les données d’un objet (ainsi que des informations sur la façon dont ces données doivent être mises en forme et affichées) et un objet de contrôle qui coordonne les activités des autres composants de la DLL. En outre, si un objet est un lien, la DLL inclut également un composant de liaison, ou objet lié, qui effectue le suivi du nom et de l’emplacement de la source du lien.

OLE fournit un gestionnaire par défaut que la plupart des applications utilisent pour la liaison et l’incorporation. Si la valeur par défaut ne correspond pas aux exigences de votre serveur, vous pouvez remplacer complètement le gestionnaire par défaut ou utiliser des parties des fonctionnalités qu’il fournit, le cas échéant. Dans ce dernier cas, le gestionnaire d’application est implémenté en tant qu’objet d’agrégation composé d’un nouvel objet de contrôle et du gestionnaire par défaut. Les gestionnaires combinés application/par défaut sont également appelés gestionnaires in-process. Le gestionnaire de communication à distance est utilisé pour les objets auxquels aucun CLSID n’est affecté dans le registre système ou qui n’ont aucun gestionnaire spécifié. Tout ce qui est nécessaire à partir d’un gestionnaire pour ces types d’objets, c’est qu’ils transmettent des informations au-delà de la limite du processus. Pour créer un instance du gestionnaire par défaut, appelez OleCreateDefaultHandler. Pour certaines circonstances particulières, appelez OleCreateEmbeddingHelper.

Lorsque vous créez une instance d’un gestionnaire pour une classe, vous ne pouvez pas l’utiliser pour une autre. Lorsqu’il est utilisé pour un document composé, le gestionnaire OLE implémente les structures de données côté conteneur lorsque les objets d’une classe particulière sont accessibles à distance.

OLE a défini le gestionnaire par défaut pour les clients des serveurs locaux de documents composés. Le gestionnaire par défaut a implémenté un certain nombre d’interfaces que le serveur standard n’a pas. Lorsque OLE autorisait par la suite les serveurs in-process pour les documents composés, ils devaient créer une assistance d’incorporation qui implémentait ces interfaces supplémentaires afin que les clients puissent les utiliser en toute transparence.

Les concepteurs d’infrastructure qui définissent et implémentent un gestionnaire côté client doivent prendre en compte ce problème dans leur conception et fournir une assistance in-process équivalente pour les mêmes raisons. Même si les concepteurs n’implémentent pas d’interfaces sur le gestionnaire que les serveurs n’exposent pas, ils souhaitent peut-être définir une assistance maintenant afin de pouvoir les ajouter à l’avenir. Vous pouvez également implémenter les interfaces supplémentaires sur l’objet serveur lui-même.

Gestionnaire de Client-Side léger