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.
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) |