AfxInitExtensionModule

Chiamare la funzione in DllMain di una DLL di estensione per inizializzare la DLL.

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

Parametri

  • state
    Un riferimento alla struttura di Struttura AFX_EXTENSION_MODULE che conterrà lo stato del modulo DLL di estensione dopo l'inizializzazione.Lo stato include una copia degli oggetti della classe di runtime che sono stati inizializzati dalla DLL di estensione durante la costruzione di un oggetto statico normale eseguita prima di DllMain venga inserito.

  • hModule
    Gli handle del modulo DLL di estensione.

Valore restituito

TRUE se la DLL di estensione correttamente viene inizializzato; in caso contrario, FALSE.

Note

Di seguito è riportato un esempio:

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 crea una copia di HMODULE della DLL e acquisisce le classi di runtime della DLL (strutture diCRuntimeClass ) nonché le object factory (oggetti diCOleObjectFactory ) da utilizzare in un secondo momento dell'oggetto di CDynLinkLibrary viene creato.

Le DLL di estensione MFC devono fare due elementi nella funzione di DllMain :

  • Chiamare AfxInitExtensionModule e controllare il valore restituito.

  • Creare un oggetto di CDynLinkLibrary se la DLL esporterà gli oggetti di Struttura CRuntimeClass o non dispone di propri metodi personalizzati.

È possibile chiamare AfxTermExtensionModule per pulire la DLL di estensione durante ogni processo si disconnette dalla DLL di estensione (che si verifica quando il processo, o quando la DLL viene scaricata in seguito a una chiamata di AfxFreeLibrary ).

Requisiti

Header: afxdll_.h

Vedere anche

Riferimenti

AfxTermExtensionModule

Concetti

Macro MFC e Globals