Partager via


Méthode ISurrogate ::FreeSurrogate (objidl.h)

Décharge un serveur DLL.

Syntaxe

HRESULT FreeSurrogate();

Valeur de retour

Cette méthode peut retourner les valeurs de retour standard E_UNEXPECTED, E_FAIL et S_OK.

Remarques

COM appelle FreeSurrogate quand il n’y a plus de serveurs DLL en cours d’exécution dans le processus de substitution. Lorsque FreeSurrogate est appelé, la méthode doit révoquer correctement toutes les fabriques de classes inscrites dans le substitut, puis provoquer la fermeture du processus de substitution.

Les processus de substitution doivent appeler la fonction CoFreeUnusedLibraries régulièrement pour décharger les serveurs DLL qui ne sont plus utilisés. Le processus de substitution assume cette responsabilité, qui serait normalement la responsabilité du client. CoFreeUnusedLibraries appelle la fonction DllCanUnloadNow sur tous les serveurs DLL chargés. Étant donné que CoFreeUnusedLibraries dépend de l’existence et de l’implémentation appropriée de DllCanUnloadNow dans les serveurs DLL, il n’est pas garanti de décharger tous les serveurs DLL qui doivent être déchargés . Tous les serveurs n’implémentent pas DllCanUnloadNow, et cette fonction n’est pas fiable pour les DLL à thread libre. En outre, le substitut n’a aucun moyen d’être informé lorsque tous les serveurs DLL sont partis. COM, toutefois, peut déterminer quand tous les serveurs DLL ont été déchargés, puis appelle la méthode FreeSurrogate .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h (inclure ObjIdl.h)

Voir aussi

DllSurrogate

ISurrogate

Écriture d’un substitut personnalisé