Partager via


Méthode IHolder ::TrackResource (comsvcs.h)

Effectue le suivi de la ressource.

Syntaxe

HRESULT TrackResource(
  [in] const RESID __MIDL__IHolder0003
);

Paramètres

[in] __MIDL__IHolder0003

Handle de la ressource à suivre. Le distributeur de ressources a déjà créé cette ressource avant d’appeler TrackResource.

Valeur retournée

Cette méthode peut retourner les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.
E_INVALIDARG
ResId n’est pas un handle de ressource valide.
E_FAIL
La méthode a échoué. La ressource n’a pas été suivie. La cause probable est que la transaction de l’appelant est en cours d’abandon.

Remarques

Certaines ressources ne sont pas conservées en inventaire ; ils sont toujours fabriqués à la demande. Le titulaire est utilisé uniquement comme mécanisme pour libérer automatiquement les ressources restantes à la fin de la durée de vie d’un objet.

TrackResource indique au titulaire qu’une ressource doit être suivie jusqu’à ce qu’elle soit libérée en appelant IHolder ::UntrackResource, ou jusqu’à ce que l’objet appelé TrackResource soit libéré, à ce moment-là, le Gestionnaire de distribution libère automatiquement la ressource.

Si TrackResource est appelé à partir d’un objet transactionnel, il rappelle la méthode IDispenserDriver ::EnlistResource du générateur de ressources . La méthode EnlistResource peut inscrire la ressource dans la transaction, ou elle peut retourner S_FALSE, indiquant que la ressource n’est pas compatible avec la transaction et n’a pas été inscrite.

Cette ressource est finalement détruite une fois que les deux éléments suivants sont vrais :

  • Le distributeur de ressources appelle IHolder ::UntrackResource (probablement à la demande du composant), ou la durée de vie de l’objet se termine.
  • La transaction dans laquelle la ressource a été inscrite (le cas échéant) est effectuée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête comsvcs.h

Voir aussi

IDispenserDriver

IDispenserManager

IHolder