DllCanUnloadNow
Determines
whether the DLL that implements this function is in use. If not, the caller can
safely unload the DLL from memory.
Note OLE does not
provide this function. DLLs that support the OLE Component Object Model (COM)
should implement and export DllCanUnloadNow.
STDAPI
DllCanUnloadNow();
Return Values
S_OK
The DLL can
be unloaded.
S_FALSE
The DLL
cannot be unloaded now.
Remarks
A call to DllCanUnloadNow
determines whether the DLL from which it is exported is still in use. A DLL is
no longer in use when it is not managing any existing objects (the reference
count on all of its objects is 0).
Notes to Callers
You should
not have to call DllCanUnloadNow directly. OLE calls it only through a
call to the CoFreeUnusedLibraries
Notes to Implementers
You need to
implement DllCanUnloadNow in, and export it from, DLLs that are to be
dynamically loaded through a call to the CoGetClassObject14W.OVW function in the same DLL).
If a DLL
loaded through a call to CoGetClassObject fails to export DllCanUnloadNow,
the DLL will not be unloaded until the application calls the CoUninitialize
If the DLL
links to another DLL, returning S_OK from DllCanUnloadNow will also
cause the second, dependent DLL to be unloaded. To eliminate the possibility of
a crash, the primary DLL should call the CoLoadLibrary
DllCanUnloadNow should return S_FALSE if there are any existing
references to objects that the DLL manages.
See Also