Compartilhar via


AfxInitExtensionModule

Chamar essa função em DllMain de uma DLL de extensão para inicializar a DLL.

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

Parâmetros

  • state
    Uma referência à estrutura de Estrutura AFX_EXTENSION_MODULE que conterá o estado do módulo DLL de extensão depois da inicialização. O estado inclui uma cópia dos objetos da classe de tempo de execução que foram inicializados pela DLL de extensão como parte da compilação normal de objeto estático executada antes que DllMain está conectado.

  • hModule
    Um identificador de módulo DLL da extensão.

Valor de retorno

Verdadeiro se a DLL de extensão é inicializado com êxito; caso contrário, Falso.

Comentários

Por exemplo:

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 faz uma cópia de HMODULE DLL e captura as classes em tempo de compilação da DLL (estruturas deCRuntimeClass ) bem como suas fábricas de objeto (objetos deCOleObjectFactory ) para uso posterior quando o objeto de CDynLinkLibrary é criado.

Dlls de extensão MFC precisam fazer duas coisas na função de DllMain :

  • Chame AfxInitExtensionModule e verifique o valor de retorno.

  • Crie um objeto de CDynLinkLibrary se a DLL estiver exportando objetos de Estrutura CRuntimeClass ou tem seus próprios recursos personalizados.

Você pode chamar AfxTermExtensionModule para limpar a DLL de extensão quando cada processo desanexar da DLL de extensão (que acontece quando o processo é encerrado, ou quando a DLL é descarregado no resultado de uma chamada de AfxFreeLibrary ).

Requisitos

Header: afxdll_.h

Consulte também

Referência

AfxTermExtensionModule

Conceitos

Macros e globais MFC