AFX_EXTENSION_MODULE Struktur

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

Index