Compartir a través de


Función CoReleaseServerProcess (combaseapi.h)

Disminuye el recuento global de referencias por proceso.

Sintaxis

ULONG CoReleaseServerProcess();

Valor devuelto

Si la aplicación de servidor debe iniciar su limpieza, la función devuelve 0; de lo contrario, la función devuelve un valor distinto de cero.

Comentarios

Los servidores pueden llamar a CoReleaseServerProcess para disminuir un recuento global de referencias por proceso incrementado a través de una llamada a CoAddRefServerProcess.

Cuando ese recuento alcanza cero, OLE llama automáticamente a CoSuspendClassObjects, lo que impide que se produzcan nuevas solicitudes de activación. Esto permite que el servidor anule el registro de sus objetos de clase de sus distintos subprocesos sin preocuparse de que pueda entrar otra solicitud de activación. Las nuevas solicitudes de activación producen el inicio de una nueva instancia del proceso del servidor local.

La manera más sencilla para que una aplicación de servidor local use estas funciones es llamar a CoAddRefServerProcess en el constructor para cada uno de sus objetos de instancia y en cada uno de sus métodos IClassFactory::LockServer cuando el parámetro fLock es TRUE. La aplicación de servidor también debe llamar a CoReleaseServerProcess en el destructor de cada uno de sus objetos de instancia y en cada uno de sus métodos IClassFactory::LockServer cuando el parámetro fLock es FALSE. Por último, la aplicación de servidor debe comprobar el código de retorno de CoReleaseServerProcess; si devuelve 0, la aplicación de servidor debe iniciar su limpieza. Normalmente, esto significa que un servidor con varios subprocesos debe indicar sus distintos subprocesos para salir de sus bucles de mensaje y llamar a CoRevokeClassObject y CoUninitialize.

Si estas API se usan en absoluto, deben llamarse tanto en las instancias de objeto como en el método LockServer ; de lo contrario, la aplicación de servidor puede apagarse prematuramente. Normalmente, los servidores en proceso no deben llamar a CoAddRefServerProcess o CoReleaseServerProcess.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado combaseapi.h (incluya Objbase.h)
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

CoAddRefServerProcess

CoSuspendClassObjects

IClassFactory::LockServer

Asistentes de implementación del servidor fuera de proceso