Share via


IParseDisplayName::P arseDisplayName 方法 (oleidl.h)

剖析指定的顯示名稱,並建立對應的Moniker。

語法

HRESULT ParseDisplayName(
  [in]  IBindCtx *pbc,
  [in]  LPOLESTR pszDisplayName,
  [out] ULONG    *pchEaten,
  [out] IMoniker **ppmkOut
);

參數

[in] pbc

要用於這個系結作業之系結內容的指標。 請參閱 IBindCtx

[in] pszDisplayName

要剖析的顯示名稱。

[out] pchEaten

變數的指標,該變數會接收對應至 ppmkOut Moniker 之顯示名稱中的字元數。

[out] ppmkOut

IMoniker 指標變數的指標,可接收所產生Moniker的介面指標。 如果發生錯誤,實作會將 *ppmkOut 設定為 NULL。 如果 *ppmkOut 不是 NULL,則實作必須呼叫 AddRef;呼叫者必須負責呼叫 Release

傳回值

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

傳回碼 描述
S_OK
已成功完成命令。
MK_E_SYNTAX
顯示名稱中有語法錯誤。 剖析失敗,因為 pszDisplayName 只能部分解析成 Moniker。 在此情況下,*pch以 成功剖析成Moniker前置詞的字元數。 ppmkOut 參數應該是 NULL
MK_E_NOOBJECT
顯示名稱不會識別此命名空間中的元件。
E_INVALIDARG
一或多個參數無效。

備註

一般而言, 語法有效的 pszDisplayName 前置詞上限,而且表示對象應該由這個方法取用,並轉換成 Moniker。

一般而言,這個方法是由 MkParseDisplayNameMkParseDisplayNameEx 呼叫。 在剖析作業的初始步驟中,這些函式可以直接從使用 「@ProgID」 或 「ProgID」 表示法識別的類別實例擷取 IParseDisplayName 介面。 後續剖析步驟可以查詢中繼物件上的 介面。

MkParseDisplayName 和 MkParseDisplayNameEx 的主要循環會呼叫 IMoniker 介面中的對等方法,也就是 IMoniker::P arseDisplayName,在目前保存的 Moniker 上尋找下一個 Moniker 片段。 在此 IMoniker::P arseDisplayName 的呼叫中,MkParseDisplayNameMkParseDisplayNameEx 函式會在 pmkToLeft 參數中傳遞 NULL。 如果目前持有的Moniker是泛型複合, 則IMoniker::P arseDisplayName 的呼叫會由該複合轉送至其最後一個片段,並將複合的前置詞傳遞至 pmkToLeft 的左邊。

某些Moniker類別可以在內部處理此剖析,因為它們的設計目的是只指定特定種類的物件。 其他人必須系結至他們指定的物件,才能完成剖析程式。 如同往常,IMoniker::P arseDisplayName 不應該釋放這些物件,而是應該透過 IBindCtx::RegisterObjectBound 或 IBindCtx::GetRunningObjectTable 傳送至系結內容,後面接著 IRunningObjectTable::Register 以供稍後發行。

規格需求

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

另請參閱

IMoniker::P arseDisplayName

IParseDisplayName

MkParseDisplayName

MkParseDisplayNameEx