Méthode ISurrogate ::FreeSurrogate (objidlbase.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 classe 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 avec 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 et appelle ensuite 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 | objidlbase.h (inclure ObjIdl.h) |