Compartilhar via


Função CoReleaseServerProcess (combaseapi.h)

Diminui a contagem global de referência por processo.

Sintaxe

ULONG CoReleaseServerProcess();

Retornar valor

Se o aplicativo de servidor deve iniciar sua limpeza, a função retornará 0; caso contrário, a função retornará um valor diferente de zero.

Comentários

Os servidores podem chamar CoReleaseServerProcess para diminuir uma contagem global de referência por processo incrementada por meio de uma chamada para CoAddRefServerProcess.

Quando essa contagem atinge zero, o OLE chama automaticamente CoSuspendClassObjects, o que impede que novas solicitações de ativação entrem. Isso permite que o servidor desregistre seus objetos de classe de seus vários threads sem se preocupar que outra solicitação de ativação possa entrar. Novas solicitações de ativação resultam na inicialização de uma nova instância do processo do servidor local.

A maneira mais simples de um aplicativo de servidor local usar essas funções é chamar CoAddRefServerProcess no construtor para cada um de seus objetos de instância e em cada um de seus métodos IClassFactory::LockServer quando o parâmetro fLock for TRUE. O aplicativo de servidor também deve chamar CoReleaseServerProcess no destruidor de cada um de seus objetos de instância e em cada um de seus métodos IClassFactory::LockServer quando o parâmetro fLock for FALSE. Por fim, o aplicativo de servidor deve marcar o código de retorno de CoReleaseServerProcess; se retornar 0, o aplicativo de servidor deverá iniciar sua limpeza. Isso normalmente significa que um servidor com vários threads deve sinalizar seus vários threads para sair de seus loops de mensagem e chamar CoRevokeClassObject e CoUninitialize.

Se essas APIs forem usadas, elas deverão ser chamadas nas instâncias de objeto e no método LockServer , caso contrário, o aplicativo de servidor poderá ser desligado prematuramente. Normalmente, os servidores em processo não devem chamar CoAddRefServerProcess ou CoReleaseServerProcess.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho combaseapi.h (inclua Objbase.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

Coaddrefserverprocess

CoSuspendClassObjects

IClassFactory::LockServer

Auxiliares de implementação de servidor fora do processo