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 版或更新版本)