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 |