DllCanUnloadNow-Funktion (combaseapi.h)

Bestimmt, ob die DLL, die diese Funktion implementiert, verwendet wird. Andernfalls kann der Aufrufer die DLL aus dem Arbeitsspeicher entladen.

OLE stellt diese Funktion nicht bereit. DLLs, die das OLE-Komponentenobjektmodell (COM) unterstützen, sollten DllCanUnloadNow implementieren und exportieren.

Syntax

HRESULT DllCanUnloadNow();

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls wird sie S_FALSE.

Hinweise

Ein Aufruf von DllCanUnloadNow bestimmt, ob die DLL, aus der sie exportiert wird, weiterhin verwendet wird. Eine DLL wird nicht mehr verwendet, wenn sie keine vorhandenen Objekte verwaltet (die Verweisanzahl für alle objekte ist 0).

Hinweise für Anrufer

Sie sollten DllCanUnloadNow nicht direkt aufrufen müssen. OLE ruft sie nur über einen Aufruf der Funktion CoFreeUnusedLibraries auf . Wenn S_OK zurückgegeben wird, gibt CoFreeUnusedLibraries die DLL frei.

Hinweise zu Implementierern

Sie müssen DllCanUnloadNow in DLLs implementieren und aus diesen exportieren, die über einen Aufruf der CoGetClassObject-Funktion dynamisch geladen werden sollen. (Sie müssen auch die DllGetClassObject-Funktion in derselben DLL implementieren und exportieren.)

Wenn eine DLL, die über einen Aufruf von CoGetClassObject geladen wird, DllCanUnloadNow nicht exportieren kann, wird die DLL erst entladen, wenn die Anwendung die CoUninitialize-Funktion aufruft, um die OLE-Bibliotheken freizugeben.

DllCanUnloadNow sollte S_FALSE zurückgeben, wenn Verweise auf Objekte vorhanden sind, die von der DLL verwaltet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile combaseapi.h (include Objbase.h)

Weitere Informationen

Dllgetclassobject