Een actieve EXE-server registreren
Wanneer een uitvoerbare (EXE)-server wordt gestart, moet deze CoRegisterClassObjectaanroepen, waarmee de CLSID voor de server wordt geregistreerd in de klassetabel (een andere tabel dan de actieve objecttabel). Wanneer een server is geregistreerd in de klassetabel, kan de Service Control Manager (SCM) bepalen dat het niet nodig is om de klasse opnieuw te starten, omdat de server al wordt uitgevoerd. Alleen als de server niet wordt vermeld in de klassetabel, controleert de SCM het register op de juiste waarden en start de server die is gekoppeld aan de opgegeven CLSID.
U geeft CoRegisterClassObject de CLSID voor de klasse en een aanwijzer door naar de IUnknown interface. Clients die vervolgens CoGetClassObject aanroepen met deze CLSID, halen een aanwijzer op naar hun aangevraagde interface, zolang de beveiliging dit niet verbiedt. (Zie Hulpfuncties voor het maken van instanties voor een beschrijving van verschillende functies voor het creƫren en activeren van instanties.)
De server voor een klasseobject moet CoRevokeClassObject aanroepen om het klasseobject in te trekken (verwijder de registratie) wanneer alle volgende waar zijn:
- Er zijn geen bestaande exemplaren van de objectdefinitie.
- Er zijn geen vergrendelingen op het klasseobject.
- De toepassing die services aan het klasseobject levert, valt niet onder gebruikersbeheer (niet zichtbaar voor de gebruiker op de weergave).
Verwante onderwerpen