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 |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Der Bindungsvorgang konnte nicht innerhalb des durch die BIND_OPTS-Struktur des Bindungskontexts angegebenen Frist abgeschlossen werden. |
|
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 |