Share via


ISurrogate::FreeSurrogate-Methode (objidl.h)

Entlädt einen DLL-Server.

Syntax

HRESULT FreeSurrogate();

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_UNEXPECTED, E_FAIL und S_OK zurückgeben.

Hinweise

COM ruft FreeSurrogate auf, wenn im Ersatzprozess keine weiteren DLL-Server ausgeführt werden. Wenn FreeSurrogate aufgerufen wird, muss die -Methode alle im Ersatzmodell registrierten Klassenfabriken ordnungsgemäß widerrufen und dann das Beenden des Ersatzprozesses bewirken.

Ersatzprozesse müssen die Funktion CoFreeUnusedLibraries regelmäßig aufrufen, um nicht mehr verwendete DLL-Server zu entladen. Der Ersatzprozess übernimmt diese Verantwortung, die normalerweise in der Verantwortung des Kunden liegt. CoFreeUnusedLibraries ruft die DllCanUnloadNow-Funktion auf allen geladenen DLL-Servern auf. Da CoFreeUnusedLibraries von der Existenz und der ordnungsgemäßen Implementierung von DllCanUnloadNow auf DLL-Servern abhängt, ist es nicht garantiert, dass alle DLL-Server entladen werden, die entladen werden sollen. Nicht jeder Server implementiert DllCanUnloadNow, und diese Funktion ist für Freethread-DLLs unzuverlässig. Darüber hinaus hat der Ersatz keine Möglichkeit, informiert zu werden, wenn alle DLL-Server weg sind. COM kann jedoch bestimmen, wann alle DLL-Server entladen wurden, und ruft dann die FreeSurrogate-Methode auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objidl.h (include ObjIdl.h)

Weitere Informationen

DllSurrogate

ISurrogate

Schreiben eines benutzerdefinierten Ersatzes