Prise en charge des contextes d'activation dans l'état du module MFC
MFC crée un contexte d'activation en utilisant une ressource manifeste spécifiée par le module utilisateur. Pour plus d'informations sur la façon dont les contextes d'activation sont créés, consultez les rubriques suivantes :
Remarques
En lisant les rubriques Kit de développement logiciel Windows, notez que le mécanisme de contexte d'activation de MFC ressemble au contexte d'activation de Kit de développement logiciel Windows sauf que MFC n'utilise pas l'API de contexte d'activation de Kit de développement logiciel Windows.
Le contexte d'activation s'exécute dans des applications MFC, des DLL d'utilisateur, et des DLL d'extension des manières suivantes :
Les applications MFC utilisent l'ID de ressource 1 pour leur ressource manifeste. Dans ce cas, le MFC ne crée pas son propre contexte d'activation, mais utilise le contexte d'application par défaut.
Les DLL MFC utilisent l'ID de ressource 2 comme ressource de manifeste. Ici, MFC crée un contexte d'activation pour chaque DLL utilisateur, de sorte que les DLL utilisateur peuvent utiliser des versions différentes des mêmes bibliothèques (par exemple, la bibliothèque de contrôles communs).
Les DLL d'extension de MFC reposent sur leurs applications d'hébergement ou DLL utilisateur pour générer leur contexte d'activation.
Bien que l'état de contexte d'activation peut être modifié à l'aide de les processus décrits dans Using the Activation Context API, l'utilisation du mécanisme de contexte d'activation de MFC peut être utile lors du développement des architectures de plug-in basés sur des DLL de où il n'est pas simple (ou impossible) de basculer manuellement l'état d'activation avant et après les appels individuels aux connexions externes.
Le contexte d'activation est créé dans AfxWinInit. Il est détruit dans le destructeur AFX_MODULE_STATE. Un descripteur de contexte d'activation est conservé dans AFX_MODULE_STATE. (AFX_MODULE_STATE est décrit dans AfxGetStaticModuleState.)
La macro AFX_MANAGE_STATE active ou désactive le contexte d'activation. AFX_MANAGE_STATE est activé pour les bibliothèques MFC statiques, ainsi que les DLL MFC, pour permettre au code de MFC de s'exécuter dans le contexte d'activation approprié sélectionné par la DLL utilisateur.