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.
COM zelf probeert een object niet automatisch uit het geheugen te verwijderen wanneer het denkt dat het object niet meer wordt gebruikt. In plaats daarvan moet de objectprogrammeur het ongebruikte object verwijderen. De programmeur bepaalt of een object kan worden verwijderd op basis van een verwijzingsaantal.
COM gebruikt de IUnknown methoden AddRef en Release om het aantal referentie-interfaces op een object te beheren. De algemene regels voor het aanroepen van deze methoden zijn:
Wanneer een client een interfaceaanwijzer ontvangt,
AddRefmoet deze worden aangeroepen op de interface.Wanneer de client klaar is met het gebruik van de interfacepointer, moet deze
Releaseaanroepen.
In een eenvoudige implementatie verhoogt elke AddRef-aanroep en verlaagt elke Release-aanroep een tellervariabele binnen het object. Wanneer het aantal teruggaat naar nul, heeft de interface geen gebruikers meer en is het vrij om zichzelf uit het geheugen te verwijderen.
Verwijzing tellen kan ook worden geïmplementeerd, zodat elke verwijzing naar het object (niet naar een afzonderlijke interface) wordt geteld. In dit geval roept elke AddRef- en Release-aanroep een centrale implementatie op van het object, en Release verwijdert het hele object wanneer het aantal referenties nul bereikt.
Opmerking
Wanneer een CComObject-afgeleide object wordt samengesteld met behulp van de new operator, is het aantal verwijzingen 0. Daarom moet een aanroep naar AddRef gedaan worden nadat het CComObject-afgeleide object met succes is gemaakt.
Zie ook
Inleiding tot COM-
Levensduur van objecten beheren via referentietelling