Método IShellFolder::SetNameOf (shobjidl_core.h)
Establece el nombre para mostrar de un objeto de archivo o subcarpeta, cambiando el identificador del elemento en el proceso.
Sintaxis
HRESULT SetNameOf(
[in] HWND hwnd,
[in] PCUITEMID_CHILD pidl,
[in] LPCWSTR pszName,
[in] SHGDNF uFlags,
[out] PITEMID_CHILD *ppidlOut
);
Parámetros
[in] hwnd
Tipo: HWND
Identificador de la ventana de propietario de cualquier cuadro de diálogo o mensaje que muestre el cliente.
[in] pidl
Tipo: PCUITEMID_CHILD
Puntero a una estructura ITEMIDLIST que identifica de forma única el objeto de archivo o la subcarpeta en relación con la carpeta primaria. La estructura debe contener exactamente una estructura SHITEMID seguida de un cero de terminación.
[in] pszName
Tipo: LPCWSTR
Puntero a una cadena terminada en null que especifica el nuevo nombre para mostrar.
[in] uFlags
Tipo: SHGDNF
Marcas que indican el tipo de nombre especificado por el parámetro pszName . Para obtener una lista de posibles valores y combinaciones de valores, consulte SHGDNF.
[out] ppidlOut
Tipo: PITEMID_CHILD*
Opcional. Si se especifica, la dirección de un puntero a una estructura ITEMIDLIST que recibe itemIDLIST del elemento cuyo nombre ha cambiado. El autor de la llamada solicita este valor pasando un ppidlOut que no sea NULL. Las implementaciones de IShellFolder::SetNameOf deben devolver un puntero al nuevo ITEMIDLIST en el parámetro ppidlOut .
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Al cambiar el nombre para mostrar de un objeto del sistema de archivos o una carpeta dentro de él, se cambia el nombre del archivo o directorio.
Antes de llamar a este método, las aplicaciones deben llamar a IShellFolder::GetAttributesOf y comprobar que la marca SFGAO_CANRENAME está establecida. Tenga en cuenta que esta marca es básicamente una sugerencia para los clientes de espacio de nombres. No implica necesariamente que IShellFolder::SetNameOf se realice correctamente o no.
Los implementadores de IShellFolder::SetNameOf deben llamar a SHChangeNotify con los PIN absolutos antiguos y nuevos una vez completado el cambio de nombre de un objeto. En este ejemplo se muestra la llamada a SHChangeNotify después del cambio de nombre de un objeto de carpeta.
SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);
Esta llamada impide que los nombres antiguos y nuevos se muestren en la vista.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (include Shobjidl.h) |
Archivo DLL | Shell32.dll (versión 4.0 o posterior) |