IMoniker::Inverse 方法 (objidl.h)

建立這個Moniker的反轉Moniker。 當撰寫到這個Moniker或其中一個類似的結構右邊時,Moniker將撰寫為 nothing。

語法

HRESULT Inverse(
  [out] IMoniker **ppmk
);

參數

[out] ppmk

IMoniker 指標變數的位址,該變數會接收這個Moniker反轉的Moniker介面指標。 成功時,實作必須在新的反向Moniker上呼叫 AddRef 。 呼叫者必須負責呼叫 Release。 如果發生錯誤,實作應該將 *ppmk 設定為 NULL

傳回值

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

傳回碼 描述
S_OK
反向Moniker已成功傳回。
MK_E_NOINVERSE
Moniker 類別沒有反轉。

備註

Moniker 的反向類似於 MS-DOS 檔案系統中的 “..” 目錄;“..” 目錄會做為任何其他目錄名稱的反轉,因為將 “..” 附加至目錄名稱會導致空路徑。 同樣地,Moniker 的反轉通常也是相同類別中所有Moniker的反轉。 不過,它不一定是不同類別的Moniker反轉。

複合Moniker的反函數是由原始Moniker元件的反轉所組成,以反向順序排列。 例如,如果 A 的反函數是 Inv ( A ) ,而 A、B 和 C 的複合則為 Comp ( A、B、C ) ,則

Inv ( Comp ( A、B、C ) ) 等於 Comp ( Inv ( C ) 、Inv ( B ) 、Inv ( A ) ) 。

並非所有Moniker都有反轉。 大部分本身為反轉的Moniker,例如反Moniker,則沒有反向。 沒有反轉的Moniker不能從其識別給外部其他物件的物件內形成相對Moniker。

來電者附註

使用Moniker尋找另一個物件的物件通常不知道它所使用的Moniker類別。 若要取得Moniker的反函數,您應該一律呼叫 IMoniker::Inverse 而不是 CreateAntiMoniker 函式,因為您無法確定您使用的Moniker會將反Moniker視為其反向。

Inverse 方法也會由 IMoniker::RelativePathTo 方法的實作呼叫,以協助建構相對 Moniker。

實作者的注意事項

如果您的Moniker沒有內部結構,您可以在 中呼叫 CreateAntiMoniker 函式,以取得 IMoniker::Inverse 實作中的反 Moniker。 在 IMoniker::ComposeWith 的實作中,您必須檢查 您在反向實作中提供的反轉。

實作特定附注

實作 備註
反Moniker 此方法會傳回MK_E_NOINVERSE,並將 *ppmk 設定為 NULL
類別Moniker 這個方法會傳回反Moniker (,也就是呼叫 CreateAntiMoniker) 的結果。
檔案Moniker 這個方法會傳回反Moniker (,也就是呼叫 CreateAntiMoniker) 的結果。
泛型複合Moniker 這個方法會傳回復合Moniker,其中包含原始複合的每個元件反轉,以反向順序儲存。 例如,如果 A 的反函數是 Inv ( A ) ,則 A、B 和 C 的複合為 Comp (Inv ( C ) 、Inv ( B ) 、Inv ( A ) ) 。
專案Moniker 這個方法會傳回反Moniker (,也就是呼叫 CreateAntiMoniker) 的結果。
OBJREF Moniker 這個方法會傳回反Moniker (,也就是呼叫 CreateAntiMoniker) 的結果。
指標 Moniker 這個方法會傳回反Moniker (,也就是呼叫 CreateAntiMoniker) 的結果。
URL Moniker 此方法會傳回MK_E_NOINVERSE,並將 *ppmk 設定為 NULL

規格需求

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

另請參閱

CreateAntiMoniker

IMoniker