AfxInitExtensionModule

Appelez cette fonction dans le DllMain d'une DLL d'extension pour initialiser la DLL.

BOOL AFXAPI AfxInitExtensionModule( 
   AFX_EXTENSION_MODULE& state, 
   HMODULE hModule  
);

Paramètres

  • state
    Une référence à la structure structure d'AFX_EXTENSION_MODULE qui contient l'état du module DLL d'extension après l'initialisation. L'état inclut une copie les objets de classe runtime qui ont été initialisés par la DLL d'extension dans la construction d'objets statiques réguliers exécutés avant que DllMain soit entré.

  • hModule
    Un descripteur du module DLL d'extension.

Valeur de retour

TRUE si la DLL d'extension a été lancée ; sinon, FALSE.

Notes

Par exemple :

static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    // Remove this if you use lpReserved
    UNREFERENCED_PARAMETER(lpReserved);

    if (dwReason == DLL_PROCESS_ATTACH)
    {
        TRACE0("NVC_MFC_DLL.DLL Initializing!\n");
        
        // Extension DLL one-time initialization 
        if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))
            return 0;

AfxInitExtensionModule génère une copie du HMODULE de la DLL et capture les runtime-classes de la DLL (structures CRuntimeClass) ainsi que ses fabriques d'objets (objets COleObjectFactory) pour les utiliser lors de la création de l'objet CDynLinkLibrary.

Les DLL d'extension de MFC doivent avoir deux éléments dans leur fonction DllMain :

  • Appelez AfxInitExtensionModule et vérifiez la valeur de retour.

  • Créez un objet de CDynLinkLibrary si la DLL exporte les objets de CRuntimeClass, structure ou possède ses propres ressources personnalisées.

Il est possible d'appeler AfxTermExtensionModule pour nettoyer la DLL d'extension chaque fois qu'un processus se détache de la DLL d'extension (ce qui se produit lors de la sortie du processus ou quand la DLL est déchargée à la suite d'un appel à AfxFreeLibrary).

Configuration requise

En-tête : afxdll_.h

Voir aussi

Référence

AfxTermExtensionModule

Concepts

macro MFC et Globals