Partager via


AfxInitExtensionModule

Appelez cette fonction dans 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 d' AFX_EXTENSION_MODULE, structure qui contiendra l'état du module DLL d'extension après l'initialisation.Le rapport inclut une copie des objets de classe runtime qui sont initialisés par la DLL d'extension dans le cadre de la construction d'objet statique normale exécutée avant qu' DllMain soit entré.

  • hModule
    Un handle du module DLL d'extension.

Valeur de retour

TRUE si la DLL d'extension est correctement initialisé ; 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 effectue une copie de HMODULE de la DLL et capture des classes d'exécution de la DLL (structures d'CRuntimeClass ) ainsi que ses fabriques d'objet (objets d'COleObjectFactory ) pour l'utiliser ultérieurement lorsque l'objet de CDynLinkLibrary est créé.

Les DLL d'extension MFC doivent effectuer les deux actions dans leur fonction d' DllMain :

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

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

Vous pouvez appeler AfxTermExtensionModule pour nettoyer la DLL d'extension lorsque chaque processus se détache de la DLL d'extension (ce qui se produit lorsque la fin du processus, ou lorsque la DLL est déchargée de l'appel d' AfxFreeLibrary ).

Configuration requise

Header: afxdll_.h

Voir aussi

Référence

AfxTermExtensionModule

Concepts

Macro MFC et Globals