Kontexty aktivace
kontexty aktivace jsou datové struktury v paměti obsahující informace, které systém může použít k přesměrování aplikace pro načtení konkrétní verze knihovny DLL, instance objektu COM nebo vlastní verze okna. Jedna část aktivačního kontextu může obsahovat informace o přesměrování knihovny DLL, které používá zavaděč knihovny DLL; další část může obsahovat informace o serveru COM. Funkce kontextu aktivace používají, vytvářejí, aktivují a deaktivují aktivační kontexty. Aktivační funkce mohou přesměrovat vazbu aplikace na objekty pojmenované verze, které určují konkrétní verze knihovny DLL, třídy oken, servery COM, knihovny typů a rozhraní. Další informace o aktivačních kontextových funkcích a strukturách naleznete v kontext aktivační kontext referenční.
Počínaje systémem Windows XP funkce kontextu aktivace umožňují systému Windows používat informace v manifestech k vytvoření objektů pojmenovaných verzí. Pokud aplikace vytvoří proces voláním CreateProcess, Systém Windows zkontroluje existenci manifestu aplikace. Pokud manifest existuje, systém Windows použije informace v manifestu k naplnění aktivačního kontextu. Vzhledem k tomu, že manifesty popisují závislost aplikace na souběžné sestavení verze, objekty zadané bez verzí v manifestu jsou mapovány na objekty pojmenované verze. Manifest může například popisovat knihovny DLL, soubory, třídy oken, servery COM, knihovny typů a rozhraní.
Při vytvoření globálního objektu v rámci aktivačního kontextu systém automaticky poskytne objektu název specifický pro verzi pomocí konzultace s manifestem. Když aplikace spustí a vyžádá pojmenovaný objekt, získá objekt s názvem verze. To umožňuje spuštění více verzí modulu kódu v systému najednou, aniž by se vzájemně zasahovaly. Například prostředí Windows Shell používá manifest k popisu závislosti na verzi 6.0 COMCTL32 a k vytvoření verzí tříd oken.
Pokud aplikace vytvoří prostředek voláním CreateWindow, proces určuje název třídy této funkce. Volání GetCurrentActCtx získá aktuální kontext aktivace a zkontroluje, jestli pro daný název třídy existuje mapování. Pokud mapování existuje, použije tuto verzi volajícího procesu k překladu mapování a zadání názvu třídy specifické pro verzi. Systém Windows vytvoří okno s procedurou okna, styly a dalšími atributy přidruženými k názvu a verzi této třídy.
Kontext aktivace spravuje systém ve většině případů. Vývojáři aplikací a poskytovatelé sestavení obvykle nemusí volat zásobník. Aplikace můžou spravovat kontext aktivace přímým voláním aktivačního kontextu. Další informace najdete v tématu Použití rozhraní API aktivačního kontextu.