Delen via


Activeringscontexten

activeringscontexten zijn gegevensstructuren in het geheugen met informatie die het systeem kan gebruiken om een toepassing om te leiden om een bepaalde DLL-versie, COM-objectinstantie of aangepaste vensterversie te laden. Een gedeelte van de activeringscontext kan DLL-omleidingsgegevens bevatten die door het DLL-laadprogramma worden gebruikt; een andere sectie kan COM-servergegevens bevatten. De activeringscontextfuncties gebruiken, maken, activeren en deactiveren activeringscontexten. De activeringsfuncties kunnen de binding van een toepassing omleiden naar objecten met een versienaam die bepaalde DLL-versies, vensterklassen, COM-servers, typebibliotheken en interfaces opgeven. Zie de Referentie voor activeringscontextvoor meer informatie over de activeringscontextfuncties en -structuren.

Vanaf Windows XP kunnen activeringscontextfuncties Windows informatie gebruiken in manifesten om versie-benoemde objecten te maken. Als een toepassing een proces maakt door CreateProcess-aan te roepen, controleert Windows op het bestaan van een toepassingsmanifest. Als er een manifest bestaat, gebruikt Windows de informatie in het manifest om de activeringscontext te vullen. Omdat manifesten de afhankelijkheid van een toepassing beschrijven op assembly naast elkaar versies, worden objecten die zijn opgegeven zonder versies in het manifest toegewezen aan objecten met de naam van de versie. Het manifest kan bijvoorbeeld DLL's, bestanden, vensterklassen, COM-servers, typebibliotheken en interfaces beschrijven.

Wanneer een globaal object wordt gemaakt binnen de activeringscontext, geeft het systeem het object automatisch een versiespecifieke naam door het manifest te raadplegen. Wanneer de toepassing een benoemd object uitvoert en aanvraagt, wordt het object met de naam van de versie opgehaald. Hierdoor kunnen meerdere versies van een codemodule tegelijkertijd op het systeem worden uitgevoerd zonder elkaar te verstoren. Windows Shell bijvoorbeeld een manifest gebruikt om een afhankelijkheid van versie 6.0 van COMCTL32 te beschrijven en om versies van vensterklassen te maken.

Als een toepassing een resource maakt door CreateWindow-aan te roepen, geeft het proces een klassenaam aan die functie op. De aanroep van GetCurrentActCtx haalt de huidige activeringscontext op en controleert of er een toewijzing bestaat voor de opgegeven klassenaam. Als er een toewijzing bestaat, wordt die versie van het aanroepende proces gebruikt om de toewijzing op te lossen en de versiespecifieke klassenaam op te geven. Windows maakt een venster met de vensterprocedure, stijlen en andere kenmerken die zijn gekoppeld aan die klassenaam en versie.

De activeringscontext wordt in de meeste gevallen beheerd door het systeem. Toepassingsontwikkelaars en assemblyproviders hoeven vaak geen aanroepen naar de stack te maken. Toepassingen kunnen een activeringscontext beheren door de activeringscontext rechtstreeks aan te roepen. Zie De context-API voor activering gebruikenvoor meer informatie.