Obsługa kontekstów aktywacji w stanie modułu MFC
MFC tworzy kontekst aktywacji przy użyciu zasobu manifestu dostarczonego przez moduł użytkownika. Aby uzyskać więcej informacji na temat tworzenia kontekstów aktywacji, zobacz następujące tematy:
Uwagi
Podczas czytania tych tematów zestawu Windows SDK należy pamiętać, że mechanizm kontekstu aktywacji MFC przypomina kontekst aktywacji zestawu Windows SDK, z wyjątkiem tego, że MFC nie używa interfejsu API kontekstu aktywacji zestawu Windows SDK.
Kontekst aktywacji działa w aplikacjach MFC, bibliotekach DLL użytkowników i bibliotekach DLL rozszerzeń MFC w następujący sposób:
Aplikacje MFC używają identyfikatora zasobu 1 dla swojego zasobu manifestu. W takim przypadku MFC nie tworzy własnego kontekstu aktywacji, ale używa domyślnego kontekstu aplikacji.
Biblioteki DLL użytkowników MFC używają identyfikatora zasobu 2 dla zasobu manifestu. W tym miejscu MFC tworzy kontekst aktywacji dla każdej biblioteki DLL użytkownika, więc różne biblioteki DLL użytkowników mogą używać różnych wersji tych samych bibliotek (na przykład biblioteki Common Controls).
Biblioteki DLL rozszerzeń MFC polegają na aplikacjach hostingowych lub bibliotekach DLL użytkowników w celu ustalenia kontekstu aktywacji.
Chociaż stan kontekstu aktywacji można modyfikować przy użyciu procesów opisanych w sekcji Korzystanie z interfejsu API kontekstu aktywacji, użycie mechanizmu kontekstu aktywacji MFC może być przydatne podczas opracowywania architektur wtyczek opartych na bibliotekach DLL, w których nie jest łatwe (lub nie jest możliwe) ręczne przełączenie stanu aktywacji przed i po poszczególnych wywołaniach do wtyczek zewnętrznych.
Kontekst aktywacji jest tworzony w narzędziu AfxWinInit. Jest niszczony w AFX_MODULE_STATE
destruktora. Dojście kontekstu aktywacji jest przechowywane w programie AFX_MODULE_STATE
. (AFX_MODULE_STATE
jest opisany w AfxGetStaticModuleState.
Makro AFX_MANAGE_STATE aktywuje i dezaktywuje kontekst aktywacji. AFX_MANAGE_STATE
Jest włączona dla statycznych bibliotek MFC, a także bibliotek MFC DLL, aby umożliwić wykonywanie kodu MFC w odpowiednim kontekście aktywacji wybranym przez bibliotekę DLL użytkownika.
Zobacz też
Konteksty aktywacji
Manifesty aplikacji
Manifesty zestawów
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE