Compartilhar via


Função DllCanUnloadNow (combaseapi.h)

Determina se a DLL que implementa essa função está em uso. Caso contrário, o chamador pode descarregar a DLL da memória.

O OLE não fornece essa função. As DLLs que dão suporte ao COM (Component Object Model) OLE devem implementar e exportar DllCanUnloadNow.

Sintaxe

HRESULT DllCanUnloadNow();

Retornar valor

Se a função for bem-sucedida, o valor retornado será S_OK. Caso contrário, será S_FALSE.

Comentários

Uma chamada para DllCanUnloadNow determina se a DLL da qual ela é exportada ainda está em uso. Uma DLL não está mais em uso quando não está gerenciando nenhum objeto existente (a contagem de referência em todos os seus objetos é 0).

Anotações aos Chamadores

Você não deve precisar chamar DllCanUnloadNow diretamente. O OLE o chama apenas por meio de uma chamada para a função CoFreeUnusedLibraries . Quando retorna S_OK, CoFreeUnusedLibraries libera a DLL.

Observações aos implementadores

Você deve implementar DllCanUnloadNow no e exportá-lo de DLLs que devem ser carregadas dinamicamente por meio de uma chamada para a função CoGetClassObject . (Você também precisa implementar e exportar a função DllGetClassObject na mesma DLL).

Se uma DLL carregada por meio de uma chamada para CoGetClassObject falhar ao exportar DllCanUnloadNow, a DLL não será descarregada até que o aplicativo chame a função CoUninitialize para liberar as bibliotecas OLE.

DllCanUnloadNow deverá retornar S_FALSE se houver referências existentes aos objetos gerenciados pela DLL.

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)

Confira também

Dllgetclassobject