AfxInitExtensionModule
Appelez cette fonction dans DllMain d'une DLL d'extension pour initialiser la DLL.
BOOL AFXAPI AfxInitExtensionModule(
AFX_EXTENSION_MODULE& state,
HMODULE hModule
);
Paramètres
state
Une référence à la structure d' AFX_EXTENSION_MODULE, structure qui contiendra l'état du module DLL d'extension après l'initialisation.Le rapport inclut une copie des objets de classe runtime qui sont initialisés par la DLL d'extension dans le cadre de la construction d'objet statique normale exécutée avant qu' DllMain soit entré.hModule
Un handle du module DLL d'extension.
Valeur de retour
TRUE si la DLL d'extension est correctement initialisé ; sinon, FALSE.
Notes
Par exemple :
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 effectue une copie de HMODULE de la DLL et capture des classes d'exécution de la DLL (structures d'CRuntimeClass ) ainsi que ses fabriques d'objet (objets d'COleObjectFactory ) pour l'utiliser ultérieurement lorsque l'objet de CDynLinkLibrary est créé.
Les DLL d'extension MFC doivent effectuer les deux actions dans leur fonction d' DllMain :
Appelez AfxInitExtensionModule et vérifiez la valeur de retour.
Créez un objet de CDynLinkLibrary si la DLL exportera des objets de CRuntimeClass, structure ou possède ses propres ressources personnalisées.
Vous pouvez appeler AfxTermExtensionModule pour nettoyer la DLL d'extension lorsque chaque processus se détache de la DLL d'extension (ce qui se produit lorsque la fin du processus, ou lorsque la DLL est déchargée de l'appel d' AfxFreeLibrary ).
Configuration requise
Header: afxdll_.h