Partager via


IOleObject ::SetMoniker, méthode (oleidl.h)

Notifie un objet du moniker de son conteneur, de son propre moniker par rapport au conteneur ou du moniker complet de l’objet.

Syntaxe

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

Paramètres

[in] dwWhichMoniker

Le moniker est passé dans pmk. Les valeurs possibles proviennent de l’énumération OLEWHICHMK.

[in] pmk

Pointeur vers l’emplacement où retourner le moniker.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
E_FAIL
L'opération a échoué.

Remarques

Un conteneur qui prend en charge les liens vers des objets incorporés doit être en mesure d’informer un objet incorporé lorsque son moniker a changé. Sinon, les tentatives suivantes effectuées par les clients de liaison pour établir une liaison à l’objet échoueront. La méthode IOleObject ::SetMoniker permet à un conteneur de communiquer ces informations.

Le conteneur peut passer son propre moniker, le moniker d’un objet relatif au conteneur ou le moniker complet d’un objet. Dans la pratique, si un conteneur passe autre chose que le moniker complet d’un objet, chaque objet appelle à nouveau le conteneur pour demander l’affectation du moniker complet, dont l’objet a besoin pour s’inscrire dans la table d’objets en cours d’exécution.

Le moniker d’un objet relatif à son conteneur est stocké par le gestionnaire d’objets dans le cadre de l’état persistant de l’objet. Toutefois, le moniker du conteneur de l’objet ne doit pas être stocké de manière persistante à l’intérieur de l’objet, car le conteneur peut être renommé à tout moment.

Remarques aux appelants

Un conteneur appelle IOleObject ::SetMoniker lorsque le conteneur a été renommé, et que les objets incorporés du conteneur peuvent actuellement ou potentiellement servir de sources de liens. Les conteneurs appellent SetMoniker principalement dans le contexte de la liaison, car un objet incorporé connaît déjà son moniker. Même dans le contexte de la liaison, l’appel de cette méthode est facultatif, car les objets peuvent appeler IOleClientSite ::GetMoniker pour forcer l’affectation d’un nouveau moniker.

Remarques aux implémenteurs

Lors de la réception d’un appel à IOleObject ::SetMoniker, un objet doit inscrire son moniker complet dans la table d’objets en cours d’exécution et envoyer une notification IAdviseSink ::OnRename à tous les récepteurs qui existent pour l’objet.

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

Voir aussi

CreateItemMoniker

IAdviseSink ::OnRename

IOleClientSite ::GetMoniker

IOleObject

IOleObject ::GetMoniker