Compartilhar via


Método ISurrogate::FreeSurrogate (objidl.h)

Descarrega um servidor DLL.

Sintaxe

HRESULT FreeSurrogate();

Retornar valor

Esse método pode retornar os valores de retorno padrão E_UNEXPECTED, E_FAIL e S_OK.

Comentários

O COM chama FreeSurrogate quando não há mais servidores DLL em execução no processo alternativo. Quando FreeSurrogate é chamado, o método deve revogar corretamente todas as fábricas de classes registradas no substituto e, em seguida, fazer com que o processo substituto saia.

Os processos alternativos devem chamar a função CoFreeUnusedLibraries periodicamente para descarregar servidores DLL que não estão mais em uso. O processo alternativo pressupõe essa responsabilidade, que normalmente seria responsabilidade do cliente. CoFreeUnusedLibraries chama a função DllCanUnloadNow em todos os servidores DLL carregados. Como CoFreeUnusedLibraries depende da existência e da implementação adequada de DllCanUnloadNow em servidores DLL, não há garantia de descarregar todos os servidores DLL que devem ser descarregados -- nem todos os servidores implementam DllCanUnloadNow e essa função não é confiável para DLLs de thread livre. Além disso, o substituto não tem como ser informado quando todos os servidores DLL se foram. COM, no entanto, pode determinar quando todos os servidores DLL foram descarregados e chamará o método FreeSurrogate .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h (inclua ObjIdl.h)

Confira também

DllSurrogate

Isurrogate

Escrevendo um substituto personalizado