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