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,以及下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
顯示名稱中有語法錯誤。 剖析失敗,因為 pszDisplayName 只能部分解析成 Moniker。 在此情況下,*pch以 成功剖析成Moniker前置詞的字元數。 ppmkOut 參數應該是 NULL。 |
|
顯示名稱不會識別此命名空間中的元件。 |
|
一或多個參數無效。 |
備註
一般而言, 語法有效的 pszDisplayName 前置詞上限,而且表示對象應該由這個方法取用,並轉換成 Moniker。
一般而言,這個方法是由 MkParseDisplayName 或 MkParseDisplayNameEx 呼叫。 在剖析作業的初始步驟中,這些函式可以直接從使用 「@ProgID」 或 「ProgID」 表示法識別的類別實例擷取 IParseDisplayName 介面。 後續剖析步驟可以查詢中繼物件上的 介面。
MkParseDisplayName 和 MkParseDisplayNameEx 的主要循環會呼叫 IMoniker 介面中的對等方法,也就是 IMoniker::P arseDisplayName,在目前保存的 Moniker 上尋找下一個 Moniker 片段。 在此 IMoniker::P arseDisplayName 的呼叫中,MkParseDisplayName 或 MkParseDisplayNameEx 函式會在 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 |