_SHGDNF列舉 (shobjidl_core.h)

定義與 IShellFolder::GetDisplayNameOfIShellFolder::SetNameOf 方法搭配使用的值,以指定這些方法所使用的檔案或資料夾名稱類型。

注意 在 Windows 7 之前,這些值會封裝為 SHGNO 列舉。
 

Syntax

typedef enum _SHGDNF {
  SHGDN_NORMAL = 0,
  SHGDN_INFOLDER = 0x1,
  SHGDN_FOREDITING = 0x1000,
  SHGDN_FORADDRESSBAR = 0x4000,
  SHGDN_FORPARSING = 0x8000
} ;

常數

 
SHGDN_NORMAL
值: 0
未與另一個旗標結合時,傳回可識別專案的父相對名稱,適合向用戶顯示。 此名稱通常不包含額外的資訊,例如擴展名,而且不需要是唯一的。 此名稱可能包含可識別包含專案之資料夾的資訊。 例如,此旗標可能會導致特定使用者資料夾的 IShellFolder::GetDisplayNameOf 傳回字串 “username (on Machine) ”。
SHGDN_INFOLDER
值: 0x1
名稱相對於提出要求的資料夾。 這是在資料夾內容中使用時向用戶顯示的名稱。 例如,它會用於檢視和資料夾的網址列路徑區段中。 此名稱不應包含明確的資訊,例如「用戶名稱」,而不是特定用戶資料夾的「電腦) 的使用者名稱 (」。

將此旗標與 SHGDN_FORPARSINGSHGDN_FOREDITING搭配使用。
SHGDN_FOREDITING
值: 0x1000
當使用者重新命名專案時,名稱會用於就地編輯。
SHGDN_FORADDRESSBAR
值: 0x4000
名稱會顯示在網址列下拉式方塊中。
SHGDN_FORPARSING
值: 0x8000
名稱用於剖析。 也就是說,它可以傳遞至 IShellFolder::P arseDisplayName 來復原物件的 PIDL。 這個名稱的格式取決於特定物件。 單獨使用SHGDN_FORPARSING時,名稱會相對於桌面。 與SHGDN_INFOLDER結合時,名稱會相對於提出要求的資料夾。

備註

SHGDNF 類型定義於 Shobjidl.h 中,如下所示。

typedef DWORD SHGDNF;

這個列舉是由兩組值所組成。 第一個群組SHGDN_NORMAL和SHGDN_INFOLDER指定名稱的類型。 第二個群組SHGDN_FOREDITING、SHGDN_FORADDRESSBAR和SHGDN_FORPARSING,是由指定名稱擷取選項的第一個群組修飾詞所組成。

如果已設定SHGDN_FORPARSING且未設定 SHGDN_INFOLDER,IShellFolder::GetDisplayNameOf 可以接受包含超過 SHITEMID 結構的 PIDL。 否則,只能傳遞單一層級 PIDL。

注意 雖然檔案系統物件所傳回的剖析名稱是物件的完整路徑,但虛擬資料夾可能會使用完全不同的名稱。 例如,某些虛擬資料夾使用 GUID 做為剖析名稱,並傳回格式為 “::{GUID}” 的字串。 若要檢查物件是否為文件系統的一部分,請呼叫 IShellFolder::GetAttributesOf ,並查看是否已設定 SFGAO_FILESYSTEM 旗標。 建議實作 IShellFolder::GetDisplayNameOf 的開發人員傳回盡可能接近顯示名稱的剖析名稱,因為使用者通常需要輸入或編輯這些名稱。

SHGDN_NORMAL的數值為零,因此您無法測試此位是否存在。 請考慮SHGDN_NORMAL如果未設定該群組中的其他旗標,則會使用的預設設定。

範例

下表說明五個不同旗標選項和三種不同項目類型的可能傳回值範例。

這些是旗標選項。

數字 Flags 描述
1 SHGDN_FORPARSING 傳回完整剖析名稱。
2 SHGDN_INFOLDER |SHGDN_FORPARSING 傳回相對於父資料夾的剖析名稱。
3 SHGDN_INFOLDER |SHGDN_FOREDITING 傳回相對於父資料夾的編輯名稱。
4 SHGDN_INFOLDER 傳回相對於父資料夾的顯示名稱。
5 SHGDN_NORMAL 傳回相對於桌面而非特定資料夾的顯示名稱。
 

這些是範例項目類型。

Letter 描述
A 本機電腦上的 C: 磁碟驅動器,其磁碟區標籤C_DRIVE。
B 在名為Mailroom的電腦上名為 Laser 的印表機。
C 當擴展名隱藏) 時,檔案 C:\Directory\File.txt (。
 

下表描述傳回的顯示名稱。

A B C
1 C:\ \\Mailroom\Laser C:\Directory\File.txt
2 C:\ 鐳射 File.txt
3 C_DRIVE 鐳射 檔案
4 C_DRIVE (C:) 鐳射 檔案
5 C_DRIVE (C:) 在郵件室上雷射 檔案
 

範例的備註

  • A3:C: 磁碟驅動器會呈現其磁碟區名稱以供編輯,而不是整個字串 “C_DRIVE (C:) ”。
  • B1-B5:遠端印表機的顯示名稱會根據是否相對於其父代顯示而變更。 相對於其父代顯示時,它只需要其印表機名稱,但在父代之外顯示時,它會顯示其印表機名稱和其電腦名稱。
  • C3:File.txt 只呈現其基底名稱以供編輯,而不是其完整名稱。
如需 IShellFolder 介面的進一步討論,請參閱 取得資料夾內容的相關信息

規格需求

需求
最低支援的用戶端 Windows XP、Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 shobjidl_core.h (包括 Shobjidl.h)