Especificación del estado en ejecución
Cuando un objeto incrustado realiza la transición al estado en ejecución, el controlador de objetos debe buscar y ejecutar la aplicación de servidor para utilizar los servicios que solo proporciona el servidor. Los objetos incrustados se colocan en estado de ejecución explícitamente a través de una solicitud por parte del contenedor, como la necesidad de dibujar un formato no almacenado en caché actualmente, o implícitamente por OLE en respuesta a invocar alguna operación, como cuando un usuario del contenedor hace doble clic en el objeto.
Cuando un objeto vinculado realiza la transición al estado en ejecución, el proceso se conoce como enlace. En el proceso de enlace, el controlador de objetos pide a su moniker almacenado que busque los datos del vínculo y, a continuación, ejecuta la aplicación de servidor.
A primera vista, el enlace de un objeto vinculado parece no ser más complicado que ejecutar un objeto incrustado. Sin embargo, los siguientes puntos complican el proceso:
- Un vínculo puede hacer referencia a un objeto, o a una parte del mismo, que está incrustado en otro contenedor. Esta funcionalidad implica una posibilidad de incrustaciones anidadas. La resolución de referencias a dicha jerarquía requiere recorrer recursivamente un moniker compuesto, empezando por el miembro más a la derecha.
- Cuando se ejecuta el origen del vínculo, OLE se enlaza a la instancia en ejecución del objeto en lugar de ejecutar otra instancia. En el caso de objetos incrustados anidados, uno de los cuales es el origen del vínculo, OLE debe poder enlazar a un objeto que ya se está ejecutando en cualquier momento.
- La ejecución de un objeto requiere tener acceso al área de almacenamiento del objeto . Cuando se ejecuta un objeto incrustado, OLE recibe un puntero al almacenamiento durante el proceso de carga, que pasa a la aplicación de servidor OLE. Sin embargo, en el caso de los objetos vinculados, no hay ninguna interfaz estándar para acceder al almacenamiento. La aplicación de servidor OLE puede usar la interfaz del sistema de archivos o algún otro mecanismo.