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) |