La estructura AFX_EXTENSION_MODULE tiene el siguiente formulario:
struct AFX_EXTE&NSION_MODULE
{
nbsp; BOOL bInitialized;
HMODULE hModule;
HMODULE hResource;
CRuntimeClass * pFirstSharedClass;
COleObjectFactory * pFirstSharedFactory;
}
El AFX_EXTENSION_MODULE se utiliza durante la inicialización de DLL de extensión de MFC para mantener el estado del módulo de DLL de extensión.
Miembros
bInitialized
TRUE si se ha inicializado el módulo DLL con AfxInitExtensionModule.
hModule
Especifica el identificador del módulo DLL.
hResource
Especifica el identificador del módulo DLL recursos personalizados.
pFirstSharedClass
Un puntero a la información (la estructura CRuntimeClass ) acerca de la primera clase de ejecución del módulo DLL. Utilizado para proporcionar el inicio de la lista de clase de tiempo de ejecución.
pFirstSharedFactory
Un puntero a la primera fábrica objeto del módulo DLL (un objeto COleObjectFactory ). Utilizado para proporcionar el inicio de la lista de fábrica de clase.
Comentarios
Archivos DLL de extensión MFC que hacer dos cosas en su función DllMain:
La estructura AFX_EXTENSION_MODULE se utiliza para contener una copia de la extensión del Estado de módulo DLL, incluida una copia de los objetos de clase de tiempo de ejecución se han inicializado por el archivo DLL de extensión como parte de la construcción del objeto estático normal ejecutado antes de que se introduce la función DllMain . Por ejemplo:
extensionDLL AFX_EXTE&NSION_MODULE estático;
extern "C" int APIENTRY
DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
nbsp; / / inicializar el módulo de extensión de esta DLL
VERIFICAR (AfxInitExtensionModule (extensionDLL, hInstance))
La información del módulo almacenada en la estructura AFX_EXTENSION_MODULE puede copiarse en el objeto CDynLinkLibrary . Por ejemplo:
/ / CDynLinkLibrary clase
IMPLEMENT_DYN&AMIC (CDynLinkLibrary, CCmdTarget.)
/ / Constructor
CDynLinkLibrary::CDynLinkLibrary (AFX_EXTENSION_MODULEamp; Estado, BOOL bSystem)
{
#ifndef _AFX_NO_OLE_SUPPORT
m_factoryList.Construct (offsetof (COleObjectFactory, m_pNextFactory));
# endif
m_classList.Construct (offsetof (CRuntimeClass, m_pNextClass));
/ / copiar información de estructura AFX_EXTENSION_MODULE
ASSERT (state.hModule! = NULL);
m_hModule = state.hModule;
m_hResource = state.hResource;
m_classList.m_pHead = state.pFirstSharedClass;
#ifndef _AFX_NO_OLE_SUPPORT
m_factoryList.m_pHead = state.pFirstSharedFactory;
# endif
m_bSystem = bSystem
Vea tambié&nnbsp;AfxInitExtensionModule, AfxTermExtensionModule