CreateItemMoniker, fonction (objbase.h)

Crée un moniker d’élément qui identifie un objet dans un objet contenant (généralement un document composé).

Syntaxe

HRESULT CreateItemMoniker(
  [in]  LPCOLESTR lpszDelim,
  [in]  LPCOLESTR lpszItem,
  [out] LPMONIKER *ppmk
);

Paramètres

[in] lpszDelim

Pointeur vers une chaîne de caractères large (deux octets par caractère) à terminaison zéro contenant le délimiteur (généralement « ! ») utilisé pour séparer le nom d’affichage de cet élément du nom d’affichage de son objet contenant.

[in] lpszItem

Pointeur vers une chaîne à terminaison zéro indiquant le nom de l’objet contenant l’objet identifié. Ce nom peut être utilisé ultérieurement pour récupérer un pointeur vers l’objet dans un appel à IOleItemContainer ::GetObject.

[out] ppmk

Adresse d’une variable de pointeur IMoniker* qui reçoit le pointeur d’interface vers le moniker d’élément. En cas de réussite, la fonction a appelé AddRef sur le moniker d’élément et l’appelant est responsable de l’appel de Release. Si une erreur se produit, le pointeur d’interface fourni a une valeur NULL .

Valeur retournée

Cette fonction peut retourner les valeurs de retour standard E_OUTOFMEMORY et S_OK.

Remarques

Un fournisseur de moniker, qui remet des monikers pour identifier ses objets afin qu’ils soient accessibles à d’autres parties, appelle CreateItemMoniker pour identifier ses objets avec des monikers d’élément. Les monikers d’élément sont basés sur une chaîne et identifient les objets contenus dans un autre objet et qui peuvent être identifiés individuellement à l’aide d’une chaîne. L’objet contenant doit également implémenter l’interface IOleContainer .

La plupart des fournisseurs de moniker sont des applications OLE qui prennent en charge la liaison. Les applications qui prennent en charge la liaison à des objets plus petits que les documents basés sur des fichiers, telles qu’une application serveur qui autorise la liaison à une sélection dans un document, doivent utiliser des monikers d’élément pour identifier les objets. Les applications conteneur qui permettent de lier à des objets incorporés utilisent des monikers d’élément pour identifier les objets incorporés.

Le paramètre lpszItem est le nom utilisé par le document pour identifier de manière unique l’objet. Par exemple, si l’objet identifié est une plage de cellules dans une feuille de calcul, un nom approprié peut être quelque chose comme « A1 :E7 ». Un nom approprié lorsque l’objet identifié est un objet incorporé peut être quelque chose comme « embedobj1 ». L’objet contenant doit fournir une implémentation de l’interface IOleItemContainer qui peut interpréter ce nom et localiser l’objet correspondant. Cela permet au moniker d’élément d’être lié à l’objet qu’il identifie.

Les monikers d’élément ne sont pas utilisés isolément. Ils doivent être composés avec un moniker qui identifie également l’objet contenant. Par exemple, si l’objet identifié est une plage de cellules contenue dans un document basé sur un fichier, le moniker d’élément identifiant cet objet doit être composé avec le moniker de fichier identifiant ce document, ce qui aboutit à un moniker composite équivalent à « C:\work\sales.xls ! A1 :E7. »

Les conteneurs imbriqués sont également autorisés, comme dans le cas où un objet est contenu dans un objet incorporé à l’intérieur d’un autre document. Le moniker complet d’un tel objet serait l’équivalent de « C:\work\report.doc !embedobj1 ! A1 :E7. » Dans ce cas, chaque objet contenant doit appeler CreateItemMoniker et fournir sa propre implémentation de l’interface IOleItemContainer .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objbase.h
Bibliothèque Ole32.lib
DLL Ole32.dll
Ensemble d’API ext-ms-win-com-ole32-l1-1-0 (introduit dans Windows 8)

Voir aussi

IMoniker

IMoniker ::ComposeWith

IOleContainer

IOleItemContainer