Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kontexty aktivace umožňují používat objekty MODELU COM, aniž by bylo nutné je zaregistrovat. Aplikace tak může mít více komponent s různými funkcemi na základě jejich verze, nikoli informací o registru. Více komponent může vystavit stejný objekt COM se stejným identifikátorem GUID, ale na základě verze mají různé funkce.
Když aplikace vyžádá GUID z CLSIDFromProgID, COM nejprve vyhledá mapování z progid na CLSID v aktivním aktivačním kontextu. Když aplikace používá CoCreateInstance k získání ukazatele rozhraní instance, COM vyhledá v aktivním aktivačním kontextu, která knihovna DLL bude hostovat CLSID. Pokud kontext aktivace neobsahuje požadované informace, com vyhledá informace v registru pomocí obvyklé metody.
Mějte na paměti, že vzhledem k tomu, že kontexty aktivace jsou přiřazeny ke každému vláknu, COM předá kontext aktivace vytvářejícího vlákna do hostitelského vlákna a aktivuje jej před tím, než v hostitelském vlákně zavolá LoadLibrary nebo DllGetClassObject. Tato funkce je již ve Windows přítomná, není nutné, aby klientský kód dělal cokoliv pro její implementaci.
Třídy MODELU COM lze exportovat hostovanými komponentami, aniž by prošly registrem. Pro různé objekty COM může vystavit stejný identifikátor ProgID více komponent a hostitelská aplikace by měla najít pouze správný kontext aktivace a pak použít CLSIDFromProgID a CoCreateInstance získat ukazatele rozhraní hostovaného objektu.