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) chaîne sans arrêt zéro contenant le délimiteur (généralement « ! ») utilisé pour séparer le nom complet de cet élément du nom complet de son objet contenant.

[in] lpszItem

Pointeur vers une chaîne à terminaison zéro indiquant le nom de l’objet contenant pour 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 mise en production. 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 moniker, qui met hors service les monikers pour identifier ses objets afin qu’ils soient accessibles à d’autres parties, appelle CreateItemMoniker pour identifier ses objets avec des monikers d’éléments. Les monikers d’élément sont basés sur une chaîne et identifient les objets contenus dans un autre objet et 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 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 permet de lier une sélection au sein d’un document, doivent utiliser des monikers d’éléments pour identifier les objets. Les applications conteneur qui permettent de lier des objets incorporés utilisent des monikers d’éléments 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 en isolation. Ils doivent également être composés d’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, l’élément moniker identifiant cet objet doit être composé avec le moniker de fichier identifiant ce document, ce qui entraîne un moniker composite qui est l’équivalent de « 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

   
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