Méthode IOleClientSite ::GetMoniker (oleidl.h)

Récupère un moniker pour le site client de l’objet. Un objet peut forcer l’attribution de son propre moniker ou de son conteneur en spécifiant une valeur pour dwAssign.

Syntaxe

HRESULT GetMoniker(
  [in]  DWORD    dwAssign,
  [in]  DWORD    dwWhichMoniker,
  [out] IMoniker **ppmk
);

Paramètres

[in] dwAssign

Spécifie s’il faut obtenir un moniker uniquement s’il en existe déjà un, forcer l’affectation d’un moniker, créer un moniker temporaire ou supprimer un moniker qui a été affecté. Dans la pratique, vous demandez généralement que le conteneur force l’affectation du moniker. Les valeurs possibles sont extraites de l’énumération OLEGETMONIKER .

[in] dwWhichMoniker

Spécifie s’il faut retourner le moniker du conteneur, le moniker de l’objet par rapport au conteneur ou le moniker complet de l’objet. Dans la pratique, vous allez généralement demander le moniker complet de l’objet. Les valeurs possibles sont extraites de l’énumération OLEWHICHMK .

[out] ppmk

Pointeur vers une variable de pointeur IMoniker qui reçoit le pointeur d’interface vers le moniker pour le site client de l’objet. Si une erreur se produit, l’implémentation doit définir ppmk sur NULL. Chaque fois qu’un conteneur reçoit un appel à IOleClientSite ::GetMoniker, il doit augmenter le nombre de références sur le pointeur ppmk qu’il retourne. Il incombe à l’appelant d’appeler Release lorsqu’il a terminé avec le pointeur.

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_NOTIMPL
Ce conteneur ne peut pas affecter de monikers à des objets. C’est le cas des conteneurs OLE 1.

Remarques

Les conteneurs implémentent GetMoniker comme un moyen de transmettre des monikers pour leurs objets incorporés aux clients qui doivent être liés à ces objets.

Lorsqu’un lien est créé vers un objet incorporé ou un pseudo-objet qu’il contient (une plage de cellules dans une feuille de calcul, par exemple), l’objet a besoin d’un moniker pour construire le moniker composite indiquant la source du lien. Si l’objet incorporé n’a pas encore de moniker, il peut appeler GetMoniker pour en demander un.

Chaque conteneur qui s’attend à contenir des liens vers des incorporations doit prendre en charge GetMoniker pour fournir des OLEWHICHMK_CONTAINER, ce qui permet le suivi des liens lorsque le client de lien et les fichiers sources de liaison se déplacent, mais conservent la même position relative.

Un objet ne doit pas stocker de manière permanente son moniker complet ou le moniker de son conteneur, car ceux-ci peuvent changer lorsque l’objet n’est pas chargé. Par exemple, le conteneur ou l’objet peut être renommé, auquel cas, en stockant le moniker du conteneur ou le moniker complet de l’objet, il serait impossible pour un client de suivre un lien vers l’objet.

Dans certains cas très spécialisés, un objet peut ne plus avoir besoin d’un moniker qui lui a été précédemment affecté et peut souhaiter le faire supprimer en tant qu’optimisation. Dans ce cas, l’objet peut appeler GetMoniker avec OLEGETMONIKER_UNASSIGN pour que le moniker soit supprimé.

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

IOleClientSite

IOleClientSite ::GetMoniker

IOleObject ::SetMoniker