IMoniker::GetDisplayName-Methode (objidl.h)

Ruft den Anzeigenamen für den Moniker ab.

Syntax

HRESULT GetDisplayName(
  [in]  IBindCtx *pbc,
  [in]  IMoniker *pmkToLeft,
  [out] LPOLESTR *ppszDisplayName
);

Parameter

[in] pbc

Ein Zeiger auf die IBindCtx-Schnittstelle im Bindungskontext, der in diesem Vorgang verwendet werden soll. Der Bindungskontext speichert Objekte, die während des Bindungsprozesses gebunden sind, enthält Parameter, die für alle Vorgänge mit dem Bindungskontext gelten, und stellt die Mittel bereit, mit denen die Monikerimplementierung Informationen zu ihrer Umgebung abrufen soll.

[in] pmkToLeft

Wenn der Moniker Teil eines zusammengesetzten Monikers ist, zeiger auf den Moniker links neben diesem Moniker. Dieser Parameter wird hauptsächlich von Monikerimplementierern verwendet, um die Zusammenarbeit zwischen den verschiedenen Komponenten eines zusammengesetzten Monikers zu ermöglichen. Moniker-Clients sollten NULL übergeben.

[out] ppszDisplayName

Die Adresse einer Zeigervariable, die einen Zeiger auf die Anzeigenamenzeichenfolge für den Moniker empfängt. Die Implementierung muss IMalloc::Alloc verwenden, um die in ppszDisplayName zurückgegebene Zeichenfolge zuzuordnen, und der Aufrufer ist für den Aufruf von IMalloc::Free verantwortlich, um sie freizugeben. Sowohl der Aufrufer als auch die Implementierung dieser Methode verwenden die COM-Aufgabenzuweisung, die von CoGetMalloc zurückgegeben wird. Wenn ein Fehler auftritt, muss die Implementierung *ppszDisplayName auf NULL festlegen.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_OUTOFMEMORY sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
MK_E_EXCEEDEDDEADLINE
Der Bindungsvorgang konnte nicht innerhalb des durch die BIND_OPTS-Struktur des Bindungskontexts angegebenen Frist abgeschlossen werden.
E_NOTIMPL
Es gibt keinen Anzeigenamen.

Hinweise

GetDisplayName stellt eine Zeichenfolge bereit, die eine anzeigbare Darstellung des Monikers darstellt. Ein Anzeigename ist keine vollständige Darstellung des internen Zustands eines Monikers. es ist einfach ein Formular, das von Benutzern gelesen werden kann. Daher ist es möglich (wenn auch selten), dass zwei verschiedene Moniker denselben Anzeigenamen haben. Es gibt zwar keine Garantie dafür, dass der Anzeigename eines Monikers in diesen Moniker zurückgezeigt werden kann, wenn die MkParseDisplayName-Funktion damit aufgerufen wird, aber ein Fehler ist selten.

Hinweise für Anrufer

Es ist möglich, dass das Abrufen des Anzeigenamens eines Monikers ein teurer Vorgang ist. Aus Effizienzgründen sollten Sie die Ergebnisse des ersten erfolgreichen Aufrufs von GetDisplayName zwischenspeichern, anstatt wiederholte Aufrufe auszuführen.

Hinweise für Implementierer

Wenn Sie eine Monikerklasse schreiben, in der sich der Anzeigename nicht ändert, speichern Sie einfach den Anzeigenamen zwischen, und geben Sie bei Bedarf den zwischengespeicherten Namen an. Wenn sich der Anzeigename im Laufe der Zeit ändern kann, kann das Abrufen des aktuellen Anzeigenamens bedeuten, dass der Moniker auf den Speicher des Objekts zugreifen oder an das Objekt binden muss. Wenn dies der Fall ist, sollte Ihre Implementierung von GetDisplayName MK_E_EXCEEDEDDEADLINE zurückgeben, wenn der Name nicht zu dem in der BIND_OPTS-Struktur des Bindungskontexts angegebenen Zeitpunkt abgerufen werden kann.

Ein Moniker, der Teil eines generischen zusammengesetzten Monikers sein soll, sollte jedes vorangehende Trennzeichen (z. B. "") als Teil seines Anzeigenamens enthalten. Der von einem Elementmoniker zurückgegebene Anzeigename enthält beispielsweise das Trennzeichen, das bei der Erstellung mit der CreateItemMoniker-Funktion angegeben wurde. Der Anzeigename für einen Dateimoniker enthält kein Trennzeichen, da Dateimoniker immer die am weitesten links stehende Komponente eines Zusammengesetzten sein sollen.

Implementierungsspezifische Hinweise

Implementierung Notizen
Anti-Moniker Für jeden in diesem Moniker enthaltenen Antimoniker gibt diese Methode eine instance von "\.." zurück.
Moniker der Klasse Der Anzeigename für Klassenmoniker hat die folgende Form: clsid:string-clsid-no-curly-braces *[";" clsid-param=value]:. Beispiel: clsid:a7b90590-36fd-11cf-857d-00aa006d2ea4:.
Dateimoniker Diese Methode gibt den Pfad zurück, den der Moniker darstellt.
Generischer zusammengesetzter Moniker Diese Methode gibt die Verkettung der Anzeigenamen zurück, die von jedem Komponentenmoniker der Zusammengesetzten zurückgegeben werden.
Elementmoniker Diese Methode gibt die Verkettung des Trennzeichens und des Elementnamens zurück, die beim Erstellen des Elementmonikers angegeben wurden.
OBJREF-Moniker Diese Methode ruft den Anzeigenamen für den OBJREF-Moniker ab. Der Anzeigename ist eine 64-Bit-Codierung, die den Computerstandort, den Prozessendpunkt und die Schnittstellenzeiger-ID (IPID) des ausgeführten Objekts kapselt. Aus Gründen der zukünftigen Kompatibilität ist der Anzeigename auf Zeichen beschränkt, die als Teil einer URL angegeben werden können.
Zeigermoniker Diese Methode gibt E_NOTIMPL zurück.
URL-Moniker Der URL-Moniker versucht, seine vollständige URL-Zeichenfolge zurückzugeben. Wenn der Moniker mit einer partiellen URL-Zeichenfolge erstellt wurde (siehe CreateURLMonikerEx), versucht er zunächst, einen URL-Moniker im Bindungskontext unter SZ_URLCONTEXT zu finden, und sucht dann links nach kontextbezogenen Informationen. Wenn die vollständige URL-Zeichenfolge nicht zurückgegeben werden kann, wird die partielle URL-Zeichenfolge zurückgegeben.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

Imoniker

MkParseDisplayName