CreateItemMoniker-Funktion (objbase.h)

Erstellt einen Elementmoniker, der ein Objekt in einem enthaltenden Objekt (in der Regel ein zusammengesetztes Dokument) identifiziert.

Syntax

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

Parameter

[in] lpszDelim

Ein Zeiger auf eine breite Zeichenfolge (zwei Byte pro Zeichen), die das Trennzeichen (in der Regel "!") enthält, die verwendet wird, um den Anzeigenamen dieses Elements vom Anzeigenamen des enthaltenden Objekts zu trennen.

[in] lpszItem

Ein Zeiger auf eine null beendete Zeichenfolge, die den Namen des enthaltenden Objekts für das zu identifizierende Objekt angibt. Dieser Name kann später verwendet werden, um einen Zeiger auf das Objekt in einem Aufruf von IOleItemContainer::GetObject abzurufen.

[out] ppmk

Die Adresse einer IMoniker*-Zeigervariable, die den Schnittstellenzeiger auf den Elementmoniker empfängt. Bei erfolgreicher Ausführung hat die Funktion AddRef für den Elementmoniker aufgerufen, und der Aufrufer ist für den Aufruf von Release verantwortlich. Wenn ein Fehler auftritt, weist der angegebene Schnittstellenzeiger den NULL-Wert auf.

Rückgabewert

Diese Funktion kann die Standardrückgabewerte E_OUTOFMEMORY und S_OK zurückgeben.

Hinweise

Ein Monikeranbieter, der Moniker verteilt, um seine Objekte zu identifizieren, damit sie für andere Parteien zugänglich sind, ruft CreateItemMoniker auf, um seine Objekte mit Elementmonikern zu identifizieren. Elementmoniker basieren auf einer Zeichenfolge und identifizieren Objekte, die in einem anderen Objekt enthalten sind und mithilfe einer Zeichenfolge einzeln identifiziert werden können. Das enthaltende Objekt muss auch die IOleContainer-Schnittstelle implementieren.

Die meisten Monikeranbieter sind OLE-Anwendungen, die Verknüpfungen unterstützen. Anwendungen, die das Verknüpfen von Objekten unterstützen, die kleiner als dateibasierte Dokumente sind, z. B. eine Serveranwendung, die das Verknüpfen mit einer Auswahl innerhalb eines Dokuments ermöglicht, sollten Elementmoniker verwenden, um die Objekte zu identifizieren. Containeranwendungen, die das Verknüpfen mit eingebetteten Objekten ermöglichen, verwenden Elementmoniker, um die eingebetteten Objekte zu identifizieren.

Der lpszItem-Parameter ist der Name, der vom Dokument verwendet wird, um das Objekt eindeutig zu identifizieren. Wenn das zu identifizierende Objekt beispielsweise ein Zellbereich in einer Kalkulationstabelle ist, kann ein entsprechender Name etwa "A1:E7" sein. Ein geeigneter Name, wenn es sich bei dem zu identifizierenden Objekt um ein eingebettetes Objekt handelt, kann etwa "embedobj1" sein. Das enthaltende Objekt muss eine Implementierung der IOleItemContainer-Schnittstelle bereitstellen, die diesen Namen interpretieren und das entsprechende Objekt suchen kann. Dadurch kann der Elementmoniker an das objekt gebunden werden, das er identifiziert.

Elementmoniker werden nicht isoliert verwendet. Sie müssen mit einem Moniker zusammengesetzt sein, der auch das enthaltende Objekt identifiziert. Wenn es sich bei dem zu identifizierenden Objekt beispielsweise um einen Zellbereich handelt, der in einem dateibasierten Dokument enthalten ist, muss der Elementmoniker, der dieses Objekt identifiziert, mit dem Dateimoniker, der dieses Dokument identifiziert, zusammengesetzt sein, was zu einem zusammengesetzten Moniker führt, der das Äquivalent zu "C:\work\sales.xls! A1:E7."

Geschachtelte Container sind ebenfalls zulässig, wie in dem Fall, in dem ein Objekt in einem eingebetteten Objekt in einem anderen Dokument enthalten ist. Der vollständige Moniker eines solchen Objekts wäre das Äquivalent zu "C:\work\report.doc!embedobj1! A1:E7." In diesem Fall muss jedes enthaltende Objekt CreateItemMoniker aufrufen und eine eigene Implementierung der IOleItemContainer-Schnittstelle bereitstellen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objbase.h
Bibliothek Ole32.lib
DLL Ole32.dll
APIs ext-ms-win-com-ole32-l1-1-0 (eingeführt in Windows 8)

Weitere Informationen

Imoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer