Méthode IShellFolder ::SetNameOf (shobjidl_core.h)

Définit le nom d’affichage d’un objet de fichier ou d’un sous-dossier, en modifiant l’identificateur d’élément dans le processus.

Syntaxe

HRESULT SetNameOf(
  [in]  HWND            hwnd,
  [in]  PCUITEMID_CHILD pidl,
  [in]  LPCWSTR         pszName,
  [in]  SHGDNF          uFlags,
  [out] PITEMID_CHILD   *ppidlOut
);

Paramètres

[in] hwnd

Type : HWND

Handle de la fenêtre propriétaire d’une boîte de dialogue ou d’une boîte de message affichée par le client.

[in] pidl

Type : PCUITEMID_CHILD

Pointeur vers une structure ITEMIDLIST qui identifie de manière unique l’objet de fichier ou le sous-dossier relatif au dossier parent. La structure doit contenir exactement une structure SHITEMID suivie d’un zéro de fin.

[in] pszName

Type : LPCWSTR

Pointeur vers une chaîne terminée par null qui spécifie le nouveau nom d’affichage.

[in] uFlags

Type : SHGDNF

Indicateurs qui indiquent le type de nom spécifié par le paramètre pszName . Pour obtenir la liste des valeurs possibles et des combinaisons de valeurs, consultez SHGDNF.

[out] ppidlOut

Type : PITEMID_CHILD*

facultatif. Si elle est spécifiée, adresse d’un pointeur vers une structure ITEMIDLIST qui reçoit l’ITEMIDLIST de l’élément renommé. L’appelant demande cette valeur en transmettant un ppidlOut non null. Les implémentations de IShellFolder ::SetNameOf doivent retourner un pointeur vers le nouveau ITEMIDLIST dans le paramètre ppidlOut .

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

La modification du nom d’affichage d’un objet de système de fichiers ou d’un dossier qu’il contient renomme le fichier ou le répertoire.

Avant d’appeler cette méthode, les applications doivent appeler IShellFolder ::GetAttributesOf et case activée que l’indicateur SFGAO_CANRENAME est défini. Notez que cet indicateur est essentiellement un indicateur pour les clients d’espace de noms. Cela n’implique pas nécessairement que IShellFolder ::SetNameOf réussit ou échoue.

Les implémenteurs de IShellFolder ::SetNameOf doivent appeler SHChangeNotify avec les anciennes et les nouvelles LISTES PIDL absolues une fois le renommage d’un objet terminé. Cet exemple montre comment appeler SHChangeNotify après le changement de nom d’un objet de dossier.

SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);

Cet appel empêche l’affichage des anciens et nouveaux noms.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (inclure Shobjidl.h)
DLL Shell32.dll (version 4.0 ou ultérieure)