Función DllCanUnloadNow (combaseapi.h)

Determina si el archivo DLL que implementa esta función está en uso. Si no es así, el autor de la llamada puede descargar el archivo DLL de la memoria.

OLE no proporciona esta función. Los archivos DLL que admiten el modelo de objetos de componente OLE (COM) deben implementar y exportar DllCanUnloadNow.

Sintaxis

HRESULT DllCanUnloadNow();

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto se S_OK. De lo contrario, es S_FALSE.

Comentarios

Una llamada a DllCanUnloadNow determina si el archivo DLL desde el que se exporta todavía está en uso. Un archivo DLL ya no está en uso cuando no administra ningún objeto existente (el recuento de referencias de todos sus objetos es 0).

Notas a los autores de llamadas

No debe tener que llamar directamente a DllCanUnloadNow . OLE lo llama solo a través de una llamada a la función CoFreeUnusedLibraries . Cuando devuelve S_OK, CoFreeUnusedLibraries libera el archivo DLL.

Notas para los implementadores

Debe implementar DllCanUnloadNow en y exportarlo desde archivos DLL que se van a cargar dinámicamente a través de una llamada a la función CoGetClassObject . (También debe implementar y exportar la función DllGetClassObject en el mismo archivo DLL).

Si un archivo DLL cargado a través de una llamada a CoGetClassObject no puede exportar DllCanUnloadNow, el archivo DLL no se descargará hasta que la aplicación llame a la función CoUninitialize para liberar las bibliotecas OLE.

DllCanUnloadNow debe devolver S_FALSE si hay referencias existentes a objetos que administra el archivo DLL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado combaseapi.h (incluya Objbase.h)

Consulte también

DllGetClassObject