IShellFolder::SetNameOf 方法 (shobjidl_core.h)
設定檔案物件或子資料夾的顯示名稱,變更程式中的項目識別元。
語法
HRESULT SetNameOf(
[in] HWND hwnd,
[in] PCUITEMID_CHILD pidl,
[in] LPCWSTR pszName,
[in] SHGDNF uFlags,
[out] PITEMID_CHILD *ppidlOut
);
參數
[in] hwnd
類型: HWND
客戶端顯示之任何對話框或消息框的擁有者視窗句柄。
[in] pidl
類型: PCUITEMID_CHILD
ITEMIDLIST 結構的指標,可唯一識別相對於父資料夾的檔案物件或子資料夾。 結構必須只包含一個 SHITEMID 結構,後面接著終止零。
[in] pszName
類型: LPCWSTR
指定新顯示名稱之 Null 終止字串的指標。
[in] uFlags
類型: SHGDNF
指出 pszName 參數所指定名稱類型的旗標。 如需可能的值和值組合的清單,請參閱 SHGDNF。
[out] ppidlOut
類型: PITEMID_CHILD*
選擇性。 如果指定,則會接收已重新命名專案的 ITEMIDLIST 結構的指標位址。 呼叫端會傳遞非 Null 的 ppidlOut 來要求此值。 IShellFolder::SetNameOf 的實作必須傳回 ppidlOut 參數中新 ITEMIDLIST 的指標。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
變更檔案系統對象的顯示名稱,或其中的資料夾會重新命名檔案或目錄。
呼叫此方法之前,應用程式應該呼叫 IShellFolder::GetAttributesOf ,並檢查是否已設定SFGAO_CANRENAME旗標。 請注意,此旗標基本上是命名空間用戶端的提示。 不一定表示 IShellFolder::SetNameOf 將會成功或失敗。
IShellFolder::SetNameOf 的實作者必須在物件重新命名完成之後,使用舊和新的絕對 PIDL 呼叫 SHChangeNotify。 下列範例示範在重新命名資料夾對象之後呼叫 SHChangeNotify 。
SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_IDLIST, pidlFullOld, pidlFullNew);
此呼叫可防止檢視中顯示的舊名稱和新名稱。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |
Dll | Shell32.dll (4.0 版或更新版本) |