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,以及下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
系結作業無法在系結內容 BIND_OPTS 結構所指定的時間限制內完成。 |
|
沒有顯示名稱。 |
備註
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 |