dllCanUnloadNow 函数 (combaseapi.h)

确定是否正在使用实现此函数的 DLL。 否则,调用方可以从内存中卸载 DLL。

OLE 不提供此函数。 支持 OLE 组件对象模型 (COM) 的 DLL 应实现并导出 DllCanUnloadNow

语法

HRESULT DllCanUnloadNow();

返回值

如果函数成功,则返回值S_OK。 否则,它将S_FALSE。

注解

DllCanUnloadNow 的调用确定从中导出它的 DLL 是否仍在使用。 如果 DLL 未管理任何现有对象, (其所有对象的引用计数为 0) ,则不再使用 DLL。

给调用方的说明

不应直接调用 DllCanUnloadNow 。 OLE 只能通过调用 CoFreeUnusedLibraries 函数来调用它。 当它返回S_OK时, CoFreeUnusedLibraries 释放 DLL。

实施者说明

必须在 中实现 DllCanUnloadNow ,并从中导出 DLL,这些 DLL 将通过对 CoGetClassObject 函数的调用来动态加载。 (还需要在同一 DLL) 中实现和导出 DllGetClassObject 函数。

如果通过调用 CoGetClassObject 加载的 DLL 无法导出 DllCanUnloadNow,则在应用程序调用 CoUninitialize 函数以释放 OLE 库之前,不会卸载 DLL。

如果 DLL 管理的对象存在任何现有引用,DllCanUnloadNow 应返回S_FALSE。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)

另请参阅

DllGetClassObject