IShellFolder::SetNameOf-Methode (shobjidl_core.h)
Legt den Anzeigenamen eines Dateiobjekts oder Unterordners fest und ändert den Elementbezeichner im Prozess.
Syntax
HRESULT SetNameOf(
[in] HWND hwnd,
[in] PCUITEMID_CHILD pidl,
[in] LPCWSTR pszName,
[in] SHGDNF uFlags,
[out] PITEMID_CHILD *ppidlOut
);
Parameter
[in] hwnd
Typ: HWND
Ein Handle für das Besitzerfenster eines beliebigen Dialogfelds oder Meldungsfelds, das vom Client angezeigt wird.
[in] pidl
Typ: PCUITEMID_CHILD
Ein Zeiger auf eine ITEMIDLIST-Struktur , die das Dateiobjekt oder den Unterordner relativ zum übergeordneten Ordner eindeutig identifiziert. Die -Struktur muss genau eine SHITEMID-Struktur gefolgt von einer endenden Null enthalten.
[in] pszName
Typ: LPCWSTR
Ein Zeiger auf eine NULL-endende Zeichenfolge, die den neuen Anzeigenamen angibt.
[in] uFlags
Typ: SHGDNF
Flags, die den Typ des Namens angeben, der durch den pszName-Parameter angegeben wird. Eine Liste der möglichen Werte und Kombinationen von Werten finden Sie unter SHGDNF.
[out] ppidlOut
Typ: PITEMID_CHILD*
Optional. Wenn angegeben, die Adresse eines Zeigers auf eine ITEMIDLIST-Struktur , die die ITEMIDLIST des umbenannten Elements empfängt. Der Aufrufer fordert diesen Wert an, indem er ppidlOut ungleich NULL übergibt. Implementierungen von IShellFolder::SetNameOf müssen einen Zeiger auf die neue ITEMIDLIST im ppidlOut-Parameter zurückgeben.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Wenn Sie den Anzeigenamen eines Dateisystemobjekts oder eines darin enthaltenen Ordners ändern, wird die Datei oder das Verzeichnis umbenannt.
Vor dem Aufrufen dieser Methode sollten Anwendungen IShellFolder::GetAttributesOf aufrufen und überprüfen, ob das flag SFGAO_CANRENAME festgelegt ist. Beachten Sie, dass dieses Flag im Wesentlichen ein Hinweis für Namespaceclients ist. Dies bedeutet nicht unbedingt, dass IShellFolder::SetNameOf erfolgreich ist oder fehlschlägt.
Implementierer von IShellFolder::SetNameOf müssen SHChangeNotify sowohl mit den alten als auch mit den neuen absoluten PIDLs aufrufen, sobald die Umbenennung eines Objekts abgeschlossen ist. Das folgende Beispiel zeigt den Aufruf von SHChangeNotify nach dem Umbenennen eines Ordnerobjekts.
SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);
Durch diesen Aufruf wird verhindert, dass sowohl der alte als auch der neue Name in der Ansicht angezeigt werden.
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 (shobjidl.h einschließen) |
DLL | Shell32.dll (Version 4.0 oder höher) |