Sdílet prostřednictvím


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