Die AFX_EXTENSION_MODULE Struktur hat folgende form:
struktur AFX_EXTE&NSION_MODULE
{
Nbsp; BOOL bInitialized;
HMODULE hModule;
HMODULE hResource;
CRuntimeClass * pFirstSharedClass;
COleObjectFactory * pFirstSharedFactory;
}
Die AFX_EXTENSION_MODULE wird während der Initialisierung des MFC-Erweiterungs-DLLs verwendet, um den Zustand der Erweiterungs-DLL-Modul.
Mitglieder
bInitialized
TRUE , wenn das DLL-Modul mit AfxInitExtensionModule initialisiert wurde.
hModule
Gibt das Handle des DLL-Moduls.
hResource
Gibt das Handle der benutzerdefinierte Ressourcen-DLL-Modul.
pFirstSharedClass
Ein Zeiger auf Informationen (die Struktur CRuntimeClass ) über das DLL-Modul erste Runtime-Klasse. Zu Beginn der Liste der Common Language Runtime-Klasse verwendet.
pFirstSharedFactory
Ein Zeiger auf das DLL-Modul erste Objektfactory (ein COleObjectFactory -Objekt). Verwendet, um den Anfang der Klasse Fabrik Liste.
Kommentare
MFC-Erweiterungs-DLLs müssen zwei Dinge in ihrer DllMain -Funktion:
Die AFX_EXTENSION_MODULE Struktur wird verwendet, um halten Sie eine Kopie der Erweiterung DLL Modulzustand, einschließlich einer Kopie der Common Language Runtime-Klassenobjekte, die von der Erweiterungs-DLL als Teil der normalen statischen Objektkonstruktion ausgeführt, bevor DllMain eingegeben wird initialisiert wurde. Zum Beispiel:
statische AFX_EXTE&NSION_MODULE ExtensionDLL;
Extern "C" Int APIENTRY
DllMain (HINSTANCE hInstance, DWORD DwReason, LPVOID kombiniert werden)
{
Nbsp; / / initialisieren diese DLL-Erweiterungsmodul
ÜBERPRÜFEN (AfxInitExtensionModule ExtensionDLL (hInstance))
Die Modulinformationen in der Struktur AFX_EXTENSION_MODULE gespeichert kann in das CDynLinkLibrary -Objekt kopiert werden. Zum Beispiel:
/ / CDynLinkLibrary-Klasse
IMPLEMENT_DYN&AMIC (CDynLinkLibrary, CCmdTarget)
/ / Konstruktor
CDynLinkLibrary::CDynLinkLibrary (AFX_EXTENSION_MODULEamp; BOOL bSystem Zustand)
{
# ifndef _AFX_NO_OLE_SUPPORT
m_factoryList.Construct (Offsetof (COleObjectFactory, M_pNextFactory));
# endif
m_classList.Construct (Offsetof (CRuntimeClass, M_pNextClass));
/ / Info von AFX_EXTENSION_MODULE Struktur kopieren
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
Siehe auch&Nbsp;AfxInitExtensionModule, AfxTermExtensionModule