Metodo IShellFolder::SetNameOf (shobjidl_core.h)

Imposta il nome visualizzato di un oggetto file o di una sottocartella, modificando l'identificatore dell'elemento nel processo.

Sintassi

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

Parametri

[in] hwnd

Tipo: HWND

Handle alla finestra proprietario di qualsiasi finestra di dialogo o di messaggio visualizzata dal client.

[in] pidl

Tipo: PCUITEMID_CHILD

Puntatore a una struttura ITEMIDLIST che identifica in modo univoco l'oggetto file o la sottocartella relativa alla cartella padre. La struttura deve contenere esattamente una struttura SHITEMID seguita da uno zero terminante.

[in] pszName

Tipo: LPCWSTR

Puntatore a una stringa con terminazione null che specifica il nuovo nome visualizzato.

[in] uFlags

Tipo: SHGDNF

Flag che indicano il tipo di nome specificato dal parametro pszName . Per un elenco di valori e combinazioni possibili, vedere SHGDNF.

[out] ppidlOut

Tipo: PITEMID_CHILD*

facoltativo. Se specificato, l'indirizzo di un puntatore a una struttura ITEMIDLIST che riceve l'ELEMENTO ITEMIDLIST dell'elemento rinominato. Il chiamante richiede questo valore passando un ppidlOut non null. Le implementazioni di IShellFolder::SetNameOf devono restituire un puntatore al nuovo ITEMIDLIST nel parametro ppidlOut .

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Modifica del nome visualizzato di un oggetto file system o di una cartella all'interno di esso, rinomina il file o la directory.

Prima di chiamare questo metodo, le applicazioni devono chiamare IShellFolder::GetAttributesOf e verificare che il flag di SFGAO_CANRENAME sia impostato. Si noti che questo flag è essenzialmente un hint per i client dello spazio dei nomi. Non implica necessariamente che IShellFolder::SetNameOf avrà esito positivo o negativo.

Gli implementatori di IShellFolder::SetNameOf devono chiamare SHChangeNotify con i PID precedenti e nuovi assoluti una volta completata la ridenominazione di un oggetto. Questo esempio seguente mostra la chiamata a SHChangeNotify seguendo la ridenominazione di un oggetto cartella.

SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);

Questa chiamata impedisce la visualizzazione dei nomi precedenti e nuovi.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)
DLL Shell32.dll (versione 4.0 o successiva)