Controladores de objetos
Si una aplicación de servidor OLE es un servidor local, lo que significa que se ejecuta en su propio espacio de proceso, la comunicación entre el contenedor y el servidor debe producirse a través de los límites del proceso. Dado que este proceso es costoso, OLE se basa en un objeto suplente cargado en el espacio de proceso del contenedor para actuar en nombre de una aplicación de servidor local. Este objeto suplente, conocido como controlador de objetos, solicitudes de contenedor de servicios que no requieren la atención de la aplicación de servidor, como solicitudes de dibujo. Cuando un contenedor solicita algo que el controlador de objetos no puede proporcionar, el controlador se comunica con la aplicación de servidor mediante el mecanismo de comunicación fuera de proceso de COM.
Un controlador de objetos es único para una clase de objeto. Cuando se crea una instancia de un controlador para una clase, no se puede usar para otra. Cuando se usa para un documento compuesto, el controlador de objetos implementa las estructuras de datos del lado contenedor cuando se accede a los objetos de una clase determinada de forma remota.
OLE proporciona un controlador de objetos predeterminado que pueden usar las aplicaciones de servidor local. En el caso de las aplicaciones que requieren comportamientos especiales, los desarrolladores pueden implementar un controlador personalizado que reemplace el controlador predeterminado o lo use para proporcionar determinados comportamientos predeterminados.
Un controlador de objetos es un archivo DLL que contiene varios componentes que interactúan. Estos componentes incluyen elementos de comunicación remota para administrar la comunicación entre el controlador y su aplicación de servidor, una memoria caché para almacenar los datos de un objeto, junto con información sobre cómo se deben dar formato y mostrar esos datos, y un objeto de control que coordina las actividades de los demás componentes del archivo DLL. Además, si un objeto es un vínculo, el archivo DLL también incluye un componente de vinculación o un objeto vinculado, que realiza un seguimiento del nombre y la ubicación del origen del vínculo.
La memoria caché contiene información de datos y presentación suficiente para que el controlador muestre un objeto cargado, pero no en ejecución, en su contenedor. OLE proporciona una implementación de la memoria caché usada por el controlador de objetos predeterminado de OLE y el objeto de vínculo. La memoria caché almacena los datos en formatos necesarios por el controlador de objetos para satisfacer las solicitudes de dibujo del contenedor. Cuando cambian los datos de un objeto, el objeto envía una notificación a la memoria caché para que se pueda producir una actualización. Para obtener más información sobre la memoria caché, consulte Visualización del almacenamiento en caché.
Para obtener más información, consulte el siguiente tema:
Temas relacionados