IShellFolder::SetNameOf

[Now Supported on Windows NT]

Changes the name of a file object or subfolder, changing its item identifier in the process.

HRESULT SetNameOf(

HWND hwndOwner, // Handle of owner window
LPCITEMIDLIST pidl, // Pointer to an ITEMIDLIST structure
LPCOLESTR lpszName, // Pointer to string specifying new display name
DWORD uFlags, // Type of name specified in lpszName
LPITEMIDLIST *ppidlOut // Pointer to new ITEMIDLIST
);  

Parameters

hwndOwner

Handle of the owner window that the client should specify if it displays a dialog box or message box.

pidl

Pointer to an ITEMIDLIST structure that uniquely identifies the file object or subfolder relative to the parent folder.

lpszName

Pointer to a null-terminated string that specifies the new display name.

uFlags

Value indicating the type of name specified by the lpszName parameter. For a list of possible values, see the description of the SHCONTF enumerated type.

ppidlOut

Address in which the method returns a pointer to the new ITEMIDLIST structure. This parameter can be NULL, and in that case, the method does not return the new ITEMIDLIST for the object.

If this parameter is not NULL, this method frees the specified ITEMIDLIST structure and allocates a new one using the task allocator. The calling application is responsible for freeing the new ITEMIDLIST structure. If an error occurs, the method returns NULL in this address.

Return Values

Returns NOERROR if successful or an OLE-defined error value otherwise.

Remarks

SetNameOf sets the display name of the specified object. If it also changes the item identifier, then it returns the new item identifier ( a pidl), which is allocated by the task allocator. Changing the display name of a file system object or folder within renames the file or directory.

See Also

IShellFolder, ITEMIDLIST