IMoniker::GetDisplayName 方法 (objidl.h)

擷取 Moniker 的顯示名稱。

語法

HRESULT GetDisplayName(
  [in]  IBindCtx *pbc,
  [in]  IMoniker *pmkToLeft,
  [out] LPOLESTR *ppszDisplayName
);

參數

[in] pbc

系結內容上要用於此作業之 IBindCtx 介面的指標。 系結內容會在系結程式期間快取系結的物件、包含使用系結內容套用至所有作業的參數,並提供 Moniker 實作應該擷取其環境相關資訊的方法。

[in] pmkToLeft

如果 Moniker 是複合 Moniker 的一部分,則指向這個 Moniker 左邊的 Moniker 指標。 此參數主要是由 Moniker 實作者用來啟用複合 Moniker 的各種元件之間的合作。 Moniker 用戶端應該傳遞 Null

[out] ppszDisplayName

指標變數的位址,接收 Moniker 之顯示名稱字串的指標。 實作必須使用 IMalloc::Alloc 來配置 ppszDisplayName中傳回的字串,而呼叫端負責呼叫 IMalloc::Free 以釋放它。 呼叫端和這個方法的實作都會使用 CoGetMalloc傳回的 COM 工作配置器。 如果發生錯誤,實作必須將 *ppszDisplayName 設定為 Null

傳回值

這個方法可以傳回標準傳回值E_OUTOFMEMORY,以及下列值。

傳回碼 描述
S_OK
已成功完成命令。
MK_E_EXCEEDEDDEADLINE
系結作業無法在系結內容 BIND_OPTS 結構所指定的時間限制內完成。
E_NOTIMPL
沒有顯示名稱。

備註

GetDisplayName 提供字串,這是 Moniker 的可顯示表示。 顯示名稱不是 Moniker 內部狀態的完整標記法;它只是使用者可讀取的表單。 因此,雖然兩個不同的 Moniker 有相同的顯示名稱,但罕見) 還是可能 (。 雖然不保證當呼叫 MkParseDisplayName 函式時,Moniker 的顯示名稱可以剖析回該 Moniker,但無法這麼做很罕見。

來電者附注

擷取 Moniker 的顯示名稱可能是昂貴的作業。 為了提高效率,您可能會想要快取第一次成功呼叫 GetDisplayName的結果,而不是進行重複呼叫。

實作者的注意事項

如果您要撰寫 Moniker 類別,其中顯示名稱不會變更,只要快取顯示名稱,並在要求時提供快取的名稱即可。 如果顯示名稱可以隨著時間變更,取得目前的顯示名稱可能表示 Moniker 必須存取物件的儲存空間或系結至物件,其中一個可能是昂貴的作業。 如果是這種情況,如果系結內容BIND_OPTS結構中指定的時間無法擷取名稱, GetDisplayName 的實作應該會傳回 MK_E_EXCEEDEDDEADLINE

要成為泛型複合 Moniker 一部分的 Moniker 應該包含任何先前的分隔符號 (,例如 '') 做為其顯示名稱的一部分。 例如,專案 Moniker 所傳回的顯示名稱包含使用 CreateItemMoniker 函式建立時所指定的分隔符號。 檔案 Moniker 的顯示名稱不包含分隔符號,因為檔案 Moniker 一律是複合的最左邊元件。

實作特定附注

實作 備註
反 Moniker 針對這個 Moniker 中包含的每個反 Moniker,這個方法會傳回一個 「\..」 實例。
類別 Moniker 類別 Monikers 的顯示名稱的格式如下:clsid:string-clsid-no-curly-braces *[「;」clsid-param=value]:。 例如,clsid:a7b90590-36fd-11cf-857d-00aa006d2ea4:。
檔案 Moniker 這個方法會傳回 Moniker 代表的路徑。
泛型複合 Moniker 這個方法會傳回復合的每個元件 Moniker 所傳回之顯示名稱的串連。
專案 Moniker 這個方法會傳回分隔符號的串連,以及建立專案 Moniker 時所指定的專案名稱。
OBJREF Moniker 這個方法會取得 OBJREF Moniker 的顯示名稱。 顯示名稱是 64 位編碼,封裝執行中物件的機器位置、進程端點和介面指標識別碼 (IPID) 。 為了在未來的相容性,顯示名稱受限於可指定為 URL 一部分的字元。
指標 Moniker 這個方法會傳回E_NOTIMPL。
URL Moniker URL Moniker 會嘗試傳回其完整 URL 字串。 如果 Moniker 是以部分 URL 字串建立, (請參閱 CreateURLMonikerEx) ,它會先嘗試在系結內容中尋找SZ_URLCONTEXT下的 URL Moniker,接著會查看其左側的 Moniker 以取得內容資訊。 如果無法傳回其完整 URL 字串,則會傳回其部分 URL 字串。

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 objidl.h

另請參閱

IMoniker

MkParseDisplayName