Podpora kontextů aktivace ve stavu modulu MFC
MFC vytvoří kontext aktivace pomocí prostředku manifestu poskytnutého modulem uživatele. Další informace o vytváření kontextů aktivace najdete v následujících tématech:
Poznámky
Při čtení těchto témat sady Windows SDK si všimněte, že mechanismus aktivačního kontextu MFC se podobá aktivačnímu kontextu sady Windows SDK s tím rozdílem, že mfc nepoužívá rozhraní API aktivačního kontextu sady Windows SDK.
Kontext aktivace funguje v aplikacích MFC, uživatelských knihovnách DLL a knihovnách DLL rozšíření MFC následujícími způsoby:
Aplikace MFC používají pro prostředek manifestu ID 1. V tomto případě mfc nevytvoří vlastní kontext aktivace, ale používá výchozí kontext aplikace.
Knihovny DLL uživatelů MFC používají pro prostředek manifestu ID 2 prostředku. Mfc zde vytvoří kontext aktivace pro každou uživatelskou knihovnu DLL, takže různé uživatelské knihovny můžou používat různé verze stejných knihoven (například knihovnu Běžných ovládacích prvků).
Knihovny DLL rozšíření MFC využívají své hostitelské aplikace nebo knihovny DLL uživatelů k navázání kontextu aktivace.
Přestože stav kontextu aktivace lze upravit pomocí procesů popsaných v části Použití rozhraní API aktivačního kontextu, použití mechanismu kontextu aktivace MFC může být užitečné při vývoji architektur modulů plug-in založených na knihovně DLL, kde není snadné (nebo není možné) ručně přepnout stav aktivace před a po jednotlivých voláních externích modulů plug-in.
Kontext aktivace se vytvoří v AfxWinInit. Je zničen v AFX_MODULE_STATE
destruktoru. Kontextový popisovač aktivace se uchovává v objektu AFX_MODULE_STATE
. (AFX_MODULE_STATE
je popsáno v AfxGetStaticModuleState.)
Makro AFX_MANAGE_STATE aktivuje a deaktivuje kontext aktivace. AFX_MANAGE_STATE
je povolena pro statické knihovny MFC a knihovny MFC DLL, aby se kód MFC spustil ve správném kontextu aktivace vybraném knihovnou DLL uživatele.
Viz také
Kontexty aktivace
Manifesty aplikací
Manifesty sestavení
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE