Partager via


Nombre de références

COM lui-même n’essaie pas automatiquement de supprimer un objet de la mémoire lorsqu’il pense que l’objet n’est plus utilisé. Au lieu de cela, le programmeur d’objets doit supprimer l’objet inutilisé. Le programmeur détermine si un objet peut être supprimé en fonction d’un nombre de références.

COM utilise les IUnknown méthodes, AddRef et Release, pour gérer le nombre d’interfaces sur un objet. Les règles générales d’appel de ces méthodes sont les suivantes :

  • Chaque fois qu’un client reçoit un pointeur d’interface, AddRef il doit être appelé sur l’interface.

  • Chaque fois que le client a terminé d’utiliser le pointeur d’interface, il doit appeler Release.

Dans une implémentation simple, chaque AddRef appel incrémente et chaque Release appel décrémente une variable de compteur à l’intérieur de l’objet. Lorsque le nombre revient à zéro, l’interface n’a plus d’utilisateurs et est libre de se supprimer de la mémoire.

Le comptage de références peut également être implémenté afin que chaque référence à l’objet (pas à une interface individuelle) soit comptabilisée. Dans ce cas, chaque AddRef délégué et Release appelle une implémentation centrale sur l’objet et Release libère l’objet entier lorsque son nombre de références atteint zéro.

Remarque

Lorsqu’un CComObjectobjet dérivé est construit à l’aide de l’opérateur new , le nombre de références est 0. Par conséquent, un appel doit AddRef être effectué après la création de l’objet CComObjectdérivé.

Voir aussi

Introduction à COM
Gestion des durées de vie des objets via le comptage de références