Unterstützung für Aktivierungskontexte im MFC-Modulstatus
MFC erstellt einen Aktivierungskontext mithilfe einer Manifestressource, die vom Benutzermodul bereitgestellt wird. Weitere Informationen zur Erstellung von Aktivierungskontexten finden Sie in den folgenden Themen:
Hinweise
Beachten Sie beim Lesen dieser Windows SDK-Themen, dass der MFC-Aktivierungskontext dem Windows SDK-Aktivierungskontext ähnelt, außer dass MFC die Windows SDK-Aktivierungskontext-API nicht verwendet.
Der Aktivierungskontext funktioniert in MFC-Anwendungen, Benutzer-DLLs und MFC-Erweiterungs-DLLs wie folgt:
MFC-Anwendungen verwenden die Ressourcen-ID 1 für ihre Manifestressource. In diesem Fall erstellt der MFC keinen eigenen Aktivierungskontext, verwendet jedoch den Standardanwendungskontext.
MFC-Benutzer-DLLs verwenden die Ressourcen-ID 2 für ihre Manifestressource. Hier erstellt MFC einen Aktivierungskontext für jede Benutzer-DLL, sodass unterschiedliche Benutzer-DLLs unterschiedliche Versionen derselben Bibliotheken verwenden können (z. B. die Bibliothek für allgemeine Steuerelemente).
MFC-Erweiterungs-DLLs basieren auf ihren Hostinganwendungen oder Benutzer-DLLs, um ihren Aktivierungskontext einzurichten.
Obwohl der Aktivierungskontextstatus mithilfe der unter Verwendung der Aktivierungskontext-API beschriebenen Prozesse geändert werden kann, kann die Verwendung des MFC-Aktivierungskontextmechanismus hilfreich sein, wenn dll-basierte Plug-In-Architekturen entwickelt werden, bei denen es nicht einfach (oder nicht möglich) ist, den Aktivierungszustand vor und nach einzelnen Aufrufen externer Plug-Ins manuell zu wechseln.
Der Aktivierungskontext wird in AfxWinInit erstellt. Es wird im AFX_MODULE_STATE
Destruktor zerstört. Ein Aktivierungskontexthandle wird in AFX_MODULE_STATE
beibehalten. (AFX_MODULE_STATE
wird in AfxGetStaticModuleState beschrieben.)
Das AFX_MANAGE_STATE Makro aktiviert und deaktiviert den Aktivierungskontext. AFX_MANAGE_STATE
ist für statische MFC-Bibliotheken sowie MFC-DLLs aktiviert, damit MFC-Code im richtigen Aktivierungskontext ausgeführt werden kann, der von der Benutzer-DLL ausgewählt wird.
Siehe auch
Aktivierungskontexte
Anwendungsmanifeste
Assemblymanifeste
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE