DllCanUnloadNow
9/8/2008
Essa função determina se a dynamic-link library (DLL) que implementa essa função está em uso. Se não for, o chamador segura pode descarregar a DLL de memória.
Observação
OLE não fornece essa função.As DLLs que suporte o OLE Component Object Model (COM) deve implementar e exportar DllCanUnloadNow.
Syntax
STDAPI DllCanUnloadNow(void);
Parameters
Nenhum.
Return Value
Valor | Descrição |
---|---|
S_OK |
O DLL pode ser descarregado. |
S_FALSE |
O DLL não pode ser descarregado agora. |
Remarks
Um chamar para DllCanUnloadNow Determina se o DLL do qual ele é exportado é ainda em uso. Um DLL não está mais em uso quando ele não está gerenciando quaisquer objetos existentes, ou seja, quando o contagem de referência em todos os seus objetos é zero.
Notas para chamadores
Você não precisa chamar DllCanUnloadNow diretamente. OLE chama apenas por um chamar para o CoFreeUnusedLibraries função. Quando ela Retorna S_OK, CoFreeUnusedLibraries Com segurança libera o DLL.
Notas para Implementers
Você precisa implementar DllCanUnloadNow Em e exportá-lo, as DLLs que devem ser carregadas dinamicamente por um chamar para o CoGetClassObject função. Você também precisará implementar e exportar o DllGetClassObject função no mesmo DLL.
Se um DLL carregado por um chamar para CoGetClassObject Falha ao exportar DllCanUnloadNow, o DLL não será descarregado até que as chamadas aplicativo o CoUninitialize função a versão de OLE bibliotecas.
Se o DLL links para outro DLL e DllCanUnloadNow Retorna S_OK, o primário e o dependente DLL será descarregado. Para eliminar a possibilidade de um falhar, deve DLL o primário chamar o CoLoadLibrary função, especificando o caminho para o segundo DLL como o primeiro parâmetro e configuração de automática livre parâmetro para TRUE. Isso força a biblioteca COM para recarregar o segundo DLL e defini-la up for um chamar para CoFreeUnusedLibraries a livre-lo separadamente quando apropriado.
DllCanUnloadNow deve retornar S_FALSE se há quaisquer referências existentes aos objetos que gerencia a DLL.
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
Requirements
Header | objbase.h |
Library | oleaut32.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
CoFreeUnusedLibraries
CoGetClassObject
CoLoadLibrary
CoUninitialize
DllGetClassObject