Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met activeringscontexten kunnen COM-objecten worden gebruikt zonder dat ze hoeven te worden geregistreerd. Hierdoor kan uw toepassing meerdere onderdelen met verschillende functionaliteit hebben op basis van hun versie in plaats van de registergegevens. Meerdere onderdelen kunnen hetzelfde COM-object met dezelfde GUID beschikbaar maken, maar hebben verschillende functionaliteit op basis van de versie.
Wanneer een toepassing een GUID aanvraagt van CLSIDFromProgID, zoekt COM eerst naar de toewijzing van progid naar CLSID in de actieve activeringscontext. Wanneer een toepassing gebruikmaakt van CoCreateInstance- om een instantieinterfaceaanwijzer te verkrijgen, zoekt COM in de actieve activeringscontext naar welke DLL de CLSID host. Als de activeringscontext niet de vereiste informatie bevat, zoekt COM naar de informatie in het register met behulp van de gebruikelijke methode.
Omdat activeringscontexten per thread zijn, geeft COM de activeringscontext van de thread die het aanmaakt door aan de hostthread en activeert het deze voordat het LoadLibrary of DllGetClassObject op de hostthread aanroept. Deze functionaliteit is al aanwezig in Windows, clientcode is niet vereist om dit te implementeren.
COM-klassen kunnen worden geƫxporteerd door gehoste onderdelen zonder het register te doorlopen. Meerdere onderdelen kunnen dezelfde ProgID beschikbaar maken voor verschillende COM-objecten. Uw hostingtoepassing moet alleen de juiste activeringscontext vinden en vervolgens CLSIDFromProgID en CoCreateInstance gebruiken om de interfacepointers van het gehoste object op te halen.