Share via


Registro de un servidor EXE en ejecución

Cuando se inicia un servidor ejecutable (EXE), debe llamar a CoRegisterClassObject, que registra el CLSID para el servidor en lo que se denomina tabla de clases (una tabla diferente a la tabla de objetos en ejecución). Cuando un servidor está registrado en la tabla de clases, permite que el administrador de control de servicios (SCM) determine que no es necesario volver a iniciar la clase, ya que el servidor ya se está ejecutando. Solo si el servidor no aparece en la tabla de clases comprobará el registro para ver los valores adecuados e iniciará el servidor asociado con el CLSID especificado.

Pase CoRegisterClassObject el CLSID para la clase y un puntero a su interfaz IUnknown . Los clientes que posteriormente llaman a CoGetClassObject con este CLSID recuperarán un puntero a su interfaz solicitada, siempre y cuando la seguridad no lo impida. (Consulte Funciones auxiliares de creación de instancias para obtener una descripción de varias funciones de creación y activación de instancias).

El servidor de un objeto de clase debe llamar a CoRevokeClassObject para revocar el objeto de clase (quitar su registro) cuando se cumplen todas las siguientes condiciones:

  • No hay instancias existentes de la definición de objeto.
  • No hay bloqueos en el objeto de clase.
  • La aplicación que proporciona servicios al objeto de clase no está bajo control de usuario (no es visible para el usuario en la pantalla).

Instalación de una aplicación de servicio

Registrar una clase en la instalación

Registrar objetos en el ROT

Autoregistro