Partager via


IRunningObjectTable ::GetObject, méthode (objidl.h)

Détermine si l’objet identifié par le moniker spécifié est en cours d’exécution et, le cas échéant, récupère un pointeur vers cet objet.

Syntaxe

HRESULT GetObject(
  [in]  IMoniker *pmkObjectName,
  [out] IUnknown **ppunkObject
);

Paramètres

[in] pmkObjectName

Pointeur vers l’interface IMoniker sur le moniker.

[out] ppunkObject

Pointeur vers une variable de pointeur IUnknown qui reçoit le pointeur d’interface vers l’objet en cours d’exécution. En cas de réussite, l’implémentation appelle AddRef sur l’objet ; il incombe à l’appelant d’appeler Release. Si l’objet n’est pas en cours d’exécution ou si une erreur se produit, l’implémentation affecte à *ppunkObject la valeur NULL.

Valeur retournée

Cette méthode peut retourner les valeurs suivantes.

Code de retour Description
S_OK
Indique que pmkObjectName a été trouvé dans le ROT et qu’un pointeur a été récupéré.
S_FALSE
Il n’existe aucune entrée pour pmkObjectName dans le ROT, ou que l’objet qu’il identifie n’est plus en cours d’exécution (auquel cas, l’entrée est révoquée).

Remarques

Cette méthode vérifie la valeur ROT pour le moniker spécifié par pmkObjectName. Si ce moniker avait déjà été inscrit avec un appel à IRunningObjectTable ::Register, cette méthode retourne le pointeur qui a été inscrit à ce moment-là.

Remarques aux appelants

En règle générale, vous appelez la méthode IRunningObjectTable ::GetObject uniquement si vous écrivez votre propre classe moniker (c’est-à-dire, implémentant l’interface IMoniker ). Vous appelez généralement cette méthode à partir de votre implémentation de IMoniker ::BindToObject.

Toutefois, notez que toutes les implémentations de IMoniker ::BindToObject ne doivent pas appeler cette méthode. Si vous vous attendez à ce que votre moniker ait un préfixe (indiqué par un paramètre pmkToLeft non NULL pour IMoniker ::BindToObject), vous ne devez pas case activée le ROT. La raison en est que seuls les monikers complets sont enregistrés avec le ROT, et si votre moniker a un préfixe, votre moniker fait partie d’un composite et n’est donc pas complet. Au lieu de cela, votre moniker doit demander des services à partir de l’objet identifié par le préfixe (par exemple, le conteneur de l’objet identifié par votre moniker).

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 objidl.h

Voir aussi

IMoniker ::BindToObject

IRunningObjectTable