Unterstützung für Aktivierungskontexte im MFC-Modulstatus
MFC erstellt einen Aktivierungskontext mit einer Manifestressource, die vom Benutzermodul bereitgestellt wird. Weitere Informationen dazu, wie Aktivierungskontexte erstellt werden, finden Sie unter:
Hinweise
Wenn Windows SDK Sie diese Themen lesen, beachten Sie, dass der MFC-Aktivierungskontextmechanismus dem Windows SDK Aktivierungskontext mit der Ausnahme ähnelt, dass MFC nicht die Windows SDK Aktivierungs-Kontext API verwendet.
Aktivierungskontext funktioniert in MFC-Anwendungen, Benutzer und in DLLs in Erweiterungs-DLLs folgendermaßen:
MFC-Anwendungsverwendungs-Ressourcen-ID 1 für die Manifestressource. In diesem Fall erstellt MFC nicht ihren eigenen Aktivierungskontext, verwendet jedoch den Standard-Anwendungskontext.
MFC-Benutzer DLLs verwenden Ressourcen-ID 2 für die Manifestressource. Hier erstellt MFC einen Benutzer Aktivierungskontext für jede DLL, sodass verschiedenen DLLs des Benutzers andere Versionen der gleichen Bibliotheken (beispielsweise, die Bibliothek zur allgemeinen Steuerelemente) verwenden.
MFC-Erweiterungs-DLLs beruhen auf den Hosting-Anwendungen oder Benutzer DLLs, ihren Aktivierungskontext einzurichten.
Obwohl der Aktivierungskontextzustand mithilfe der Prozesse geändert werden, die unter Using the Activation Context API beschrieben werden, mit dem MFC-Aktivierungskontextmechanismus kann nützlich sein, wenn DLL-basierte Plug-In-Datei Architekturen, Entwickeln, in denen es nicht einfach (oder) Aktivierungszustand vor und nach Einzelpersonenaufrufe zu externen Plug-Ins manuell wechseln nicht möglich ist.
Der Aktivierungskontext wird in AfxWinInit. Sie wird im AFX_MODULE_STATE Destruktor zerstört. Ein Aktivierungskontexthandle wird in AFX_MODULE_STATE gespeichert. (AFX_MODULE_STATE wird in AfxGetStaticModuleState beschrieben.)
Das Makro AFX_MANAGE_STATE aktiviert und deaktiviert den Aktivierungskontext. AFX_MANAGE_STATE wird für statischen MFC-Bibliotheken sowie MFC-DLLs ermöglicht, MFC-Code ermöglichen, im richtigen Aktivierungskontext auszuführen, der von der DLL Benutzer ausgewählt wird.