Freigeben über


IShellFolder::GetDisplayNameOf-Methode (shobjidl_core.h)

Ruft den Anzeigenamen für das angegebene Dateiobjekt oder unterordner ab.

Syntax

HRESULT GetDisplayNameOf(
  [in]  PCUITEMID_CHILD pidl,
  [in]  SHGDNF          uFlags,
  [out] STRRET          *pName
);

Parameter

[in] pidl

Typ: PCUITEMID_CHILD

PIDL, die das Dateiobjekt oder unterordner relativ zum übergeordneten Ordner eindeutig identifiziert.

[in] uFlags

Typ: SHGDNF

Flags, die verwendet werden, um den Typ des zurückzugebenden Anzeigenamens anzufordern. Eine Liste der möglichen Werte finden Sie im aufgezählten SHGDNF-Typ .

[out] pName

Typ: STRRET*

Wenn diese Methode zurückgibt, enthält einen Zeiger auf eine STRRET-Struktur , in der der Anzeigename zurückgegeben werden soll. Der typ des in dieser Struktur zurückgegebenen Namens kann der angeforderte Typ sein, aber der Shellordner gibt möglicherweise einen anderen Typ zurück.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Es liegt in der Verantwortung des Aufrufers, die von dieser Funktion zugewiesenen Ressourcen freizugeben.

Normalerweise kann pidl nur auf Elemente verweisen, die im übergeordneten Ordner enthalten sind. Die PIDL muss eine Ebene sein und genau eine SHITEMID-Struktur gefolgt von einer endenden Null enthalten. Wenn Sie den Anzeigenamen eines Elements abrufen möchten, das sich tiefer als eine Ebene vom übergeordneten Ordner entfernt befindet, verwenden Sie SHBindToParent , um an den unmittelbar übergeordneten Ordner des Elements zu binden, und übergeben Sie dann die PIDL des Elements auf einer einzelnen Ebene an IShellFolder:GetDisplayNameOf.

Wenn das SHGDN_FORPARSING-Flag in uFlags festgelegt ist und das SHGDN_INFOLDER-Flag nicht festgelegt ist, kann pidl auf ein Objekt auf einer beliebigen Ebene unterhalb des übergeordneten Ordners in der Namespacehierarchie verweisen. Gleichzeitig kann pidl relativ zum übergeordneten Ordner eine PIDL mit mehreren Ebenen sein und mehrere SHITEMID-Strukturen enthalten. Dies wird jedoch nicht mehr unterstützt, und pidl sollte sich jetzt nur auf ein einzelnes untergeordnetes Element beziehen.

Die einfachste Möglichkeit, den Anzeigenamen aus der Struktur abzurufen, auf die pName verweist, besteht darin, ihn entweder an StrRetToBuf oder StrRetToStr zu übergeben. Diese Funktionen verwenden eine STRRET-Struktur und geben den Namen zurück. Sie können auch das uType-Element der Struktur untersuchen und den Namen aus dem entsprechenden Member abrufen.

Die in uFlags angegebenen Flags sind Hinweise auf die beabsichtigte Verwendung des Namens. Sie garantieren nicht, dass IShellFolder das angeforderte Formular des Namens zurückgibt. Wenn dieses Formular nicht verfügbar ist, wird möglicherweise ein anderes Formular zurückgegeben. Insbesondere gibt es keine Garantie dafür, dass der vom SHGDN_FORPARSING-Flag zurückgegebene Name erfolgreich von IShellFolder::P arseDisplayName analysiert wird. Es gibt auch einige Kombinationen von Flags, die dazu führen können, dass der Roundtrip GetDisplayNameOf/ParseDisplayName die ursprüngliche Bezeichnerliste nicht zurückgibt. Dieses Vorkommen ist außergewöhnlich, aber Sie sollten überprüfen, um sicher zu sein.

Hinweis Der Analysename, der zurückgegeben wird, wenn uFlags das SHGDN_FORPARSING-Flag festgelegt hat, ist nicht unbedingt eine normale Textzeichenfolge. Virtuelle Ordner wie "Mein Computer" geben möglicherweise eine Zeichenfolge zurück, die die GUID des Ordnerobjekts im Format "::{GUID}" enthält. Entwickler, die IShellFolder::GetDisplayNameOf implementieren, werden empfohlen, Analysenamen zurückzugeben, die den Anzeigenamen so nahe wie möglich sind, da der Endbenutzer diese Namen häufig eingeben oder bearbeiten muss.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (einschließlich Shobjidl.h)
DLL Shell32.dll (Version 4.0 oder höher)

Weitere Informationen

IShellFolder

IShellFolder2