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 |