Freigeben über


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)