AfxInitExtensionModule
Appelez cette fonction dans le 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 structure d'AFX_EXTENSION_MODULE qui contient l'état du module DLL d'extension après l'initialisation. L'état inclut une copie les objets de classe runtime qui ont été initialisés par la DLL d'extension dans la construction d'objets statiques réguliers exécutés avant que DllMain soit entré.hModule
Un descripteur du module DLL d'extension.
Valeur de retour
TRUE si la DLL d'extension a été lancée ; 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 génère une copie du HMODULE de la DLL et capture les runtime-classes de la DLL (structures CRuntimeClass) ainsi que ses fabriques d'objets (objets COleObjectFactory) pour les utiliser lors de la création de l'objet CDynLinkLibrary.
Les DLL d'extension de MFC doivent avoir deux éléments dans leur fonction DllMain :
Appelez AfxInitExtensionModule et vérifiez la valeur de retour.
Créez un objet de CDynLinkLibrary si la DLL exporte les objets de CRuntimeClass, structure ou possède ses propres ressources personnalisées.
Il est possible d'appeler AfxTermExtensionModule pour nettoyer la DLL d'extension chaque fois qu'un processus se détache de la DLL d'extension (ce qui se produit lors de la sortie du processus ou quand la DLL est déchargée à la suite d'un appel à AfxFreeLibrary).
Configuration requise
En-tête : afxdll_.h