IMoniker::IsEqual 方法 (objidl.h)
确定此名字对象是否与指定的名字对象相同。
语法
HRESULT IsEqual(
[in] IMoniker *pmkOtherMoniker
);
参数
[in] pmkOtherMoniker
指向名字对象上 IMoniker 接口的指针,用于与此对象进行比较 () 调用此方法的接口。
返回值
此方法返回S_OK,指示两个名字对象相同,否则S_FALSE。
注解
运行对象表的先前实现 (ROT) 调用此方法。 ROT 的当前实现改用 IROTData 接口。
调用方备注
调用此方法可确定两个名字对象是否相同。 名字对象的简化形式与未引入的形式不同。 应在调用 IsEqual 之前调用 IMoniker::Reduce 方法,因为缩减的名字对象采用最具体的形式。 IsEqual 可能会在两个名字对象减少之前返回S_FALSE,在减少后S_OK。实施者说明
在执行比较之前,实现不应减少当前名字对象。 调用方负责调用 IMoniker::Reduce 来比较减少的名字对象。比较为相等的两个名字对象必须使用 IMoniker::Hash 对同一值进行哈希处理。
特定于实现的说明
实现 | 备注 |
---|---|
反名字对象 | 如果两者都是反名字对象,则此方法返回S_OK;否则,它将返回S_FALSE。 |
类名字对象 | 如果 pmkOther 是使用与自身相同的 CLSID 信息构造的类名字对象,则此方法返回S_OK。 否则,该方法返回S_FALSE。 如果 pmkOther 是无效指针,则可能会返回E_INVALIDARG。 |
文件名字对象 | 如果使用不区分大小写的比较) ,如果 *pmkOther 是文件名字对象且两个名字对象的路径相同 (,则此方法返回S_OK。 否则,该方法返回S_FALSE。 |
泛型复合名字对象 | 如果两个名字对象的分量在按从左到右的顺序进行比较时相等,则此方法返回S_OK。 |
项名字对象 | 如果使用不区分大小写的比较) ,此方法返回S_OK两个名字对象都是项名字对象,并且它们的显示名称相同 (;否则,该方法返回S_FALSE。 |
OBJREF 名字对象 | 如果使用不区分大小写的比较) ,如果 *pmkOther 是 OBJREF 名字对象且两个名字对象的路径相同, (则此方法返回S_OK。 否则,该方法返回S_FALSE。 |
指针名字对象 | 仅当两者都是指针名字对象和它们包装的接口指针相同时,此方法才返回S_OK。 |
URL 名字对象 | 如果其他名字对象 (pmkOtherMoniker) 不是 URL 名字对象,则返回S_FALSE,它使用 IPersist::GetClassID 检查 CLSID 是否CLSID_URLMoniker。 如果另一个名字对象是 URL 名字对象,它将比较名字对象的显示名称是否相等,如果它们相同,则返回S_OK,否则返回S_FALSE。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | objidl.h |