IMoniker::IsEqual 方法 (objidl.h)

判斷這個Moniker是否與指定的Moniker相同。

語法

HRESULT IsEqual(
  [in] IMoniker *pmkOtherMoniker
);

參數

[in] pmkOtherMoniker

要用於與這個介面比較的 Moniker上IMoniker 介面的指標, (呼叫此方法的來源) 。

傳回值

這個方法會傳回S_OK,表示兩個Moniker相同,否則S_FALSE。

備註

執行中對象數據表的先前實作 (ROT) 稱為此方法。 ROT 目前的實作會改用 IROTData 介面。

來電者附註

呼叫這個方法來判斷兩個Moniker是否相同。 Moniker 的縮減形式會被視為與未引發的窗體不同。 您應該先呼叫 IMoniker::Reduce 方法,再呼叫 IsEqual,因為縮減的 Moniker 格式最具體。 IsEqual 可能會在兩個 Moniker 減少之前傳回S_FALSE,並在減少之後S_OK。

實作者的注意事項

執行比較之前,您的實作不應該減少目前的Moniker。 呼叫 IMoniker::Reduce 以比較縮減的 Moniker 是呼叫者的責任。

比較為相等的兩個 Moniker必須使用IMoniker::Hash來哈希為相同的值。

實作特定附注

實作 備註
反Moniker 如果兩者都是反Moniker,這個方法會傳回S_OK;否則會傳回S_FALSE。
類別Moniker 如果 pmkOther 是使用與本身相同的 CLSID 資訊建構的類別 Moniker,這個方法會傳回S_OK。 否則,方法會傳回S_FALSE。 如果 pmkOther 是無效的指標,可能會傳回E_INVALIDARG。
檔案Moniker 如果 *pmkOther 是檔案 Moniker,而且這兩個 Moniker 的路徑都相同, (使用不區分大小寫的比較) ,這個方法會傳回S_OK。 否則,方法會傳回S_FALSE。
泛型複合Moniker 如果兩個Moniker的元件在從左至右的順序進行比較時相等,這個方法會傳回S_OK。
專案Moniker 如果兩個Moniker都是專案Moniker,而且其顯示名稱都與使用不區分大小寫的比較) (相同,則這個方法會傳回S_OK;否則,方法會傳回S_FALSE。
OBJREF Moniker 如果 *pmkOther 是 OBJREF Moniker,而且這兩個 Moniker 的路徑都相同 (,則此方法會傳回S_OK使用不區分大小寫的比較) 。 否則,方法會傳回S_FALSE。
指標 Moniker 只有當兩者都是指標Moniker和它們所包裝的介面指標相同時,這個方法才會傳回S_OK。
URL Moniker 如果其他 moniker (pmkOtherMoniker) 不是 URL Moniker,則會傳回S_FALSE,它會使用 IPersist::GetClassID 檢查 CLSID 是否CLSID_URLMoniker。 如果另一個Moniker是URL Moniker,它會比較Moniker的顯示名稱是否相等,如果相同或S_FALSE則傳回S_OK。

規格需求

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

另請參閱

IMoniker

IROTData