AfxTermExtensionModule

void &AFXAPI AfxTermExtensionModule ( AFX_EXTENSION_MODULEamp ; État, BOOL bAll = Faux );

Paramètres

état

Une référence à la structure AFX_EXTENSION_MODULE qui contient l'État du module d'extension DLL.

bal  ;  Si TRUE, nettoyage de tous les modules d'extension DLL. Sinon, nettoyage uniquement le module DLL actuel.

Remarques

Appelez cette fonction pour permettre aux MFC pour le nettoyage de la DLL d'extension lors de chaque processus se détache de la DLL (ce qui se produit lorsque la sortie du processus, ou lorsque la DLL est déchargée à la suite d'un appel de AfxFreeLibrary ). AfxTermExtensionModule va supprimer tout stockage local attaché au module et supprimez toutes les entrées du cache de la carte de message. Par exemple:

statique AFX_EXTE&NSION_MODULE extensionDLL ;
extern « C » int APIENTRY DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
 nbsp ; Si (dwReason == DLL_PROCESS_ATTACH)
   {
      / / Initialisation unique de DLL extension if (!AfxInitExtensionModule (extensionDLL, hInstance))
         return 0 ;
      / / TODO : effectuer d'autres tâches d'initialisation ici
   }
   else if (dwReason == DLL_PROCESS_DETACH)
   {
      / / Résiliation par processus de DLL d'extension
      AfxTermExtensionModule(extensionDLL) ;
     / / TODO : effectuer d'autres tâches de nettoyage ici
   }
   retour 1 ;   / / ok
}

Si votre application charge et libère les DLL d'extension dynamique, veillez à appeler AfxTermExtensionModule. Depuis la plupart extension DLL ne sont pas chargés dynamiquement (habituellement, ils sont liés par l'intermédiaire de leur bibliothèque d'importation), l'appel à AfxTermExtensionModule n'est généralement pas nécessaire.

Les DLL d'extension MFC doivent appeler AfxInitExtensionModule dans leur fonction DllMain. Si la DLL exporterez objets CRuntimeClass ou dispose de ses propres ressources personnalisés, vous devez également créer un objet CDynLinkLibrary dans DllMain.

Voir aussi  ;AfxInitExtensionModule

Index