Поделиться через


Метод 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.
Моникер класса Этот метод возвращает S_OK, если pmkOther является моникером класса, созданным с теми же данными CLSID, что и сам. В противном случае метод возвращает S_FALSE. Может возвращать E_INVALIDARG, если pmkOther является недопустимым указателем.
Моникер файла Этот метод возвращает S_OK, если *pmkOther является моникером файла и пути для обоих моникеров идентичны (при сравнении без учета регистра). В противном случае метод возвращает S_FALSE.
Универсальный составной моникер Этот метод возвращает S_OK, если компоненты обоих моникеров равны при сравнении слева направо.
Моникер элемента Этот метод возвращает S_OK, если оба моникера являются моникерами элементов и их отображаемые имена идентичны (при сравнении без учета регистра); В противном случае метод возвращает S_FALSE.
Моникер OBJREF Этот метод возвращает S_OK, если *pmkOther является моникером OBJREF и пути для обоих моникеров идентичны (при сравнении без учета регистра). В противном случае метод возвращает S_FALSE.
Моникер указателя Этот метод возвращает S_OK только в том случае, если оба являются моникерами указателей и указатели интерфейса, которые они упаковывают, идентичны.
Моникер URL-адреса Возвращает S_FALSE, если другой моникер (pmkOtherMoniker) не является моникером URL-адреса, который проверяется с помощью IPersist::GetClassID , чтобы узнать, является ли CLSID CLSID_URLMoniker. Если другой моникер является моникером URL-адреса, он сравнивает отображаемые имена моникеров на равенство, возвращая S_OK, если они идентичны, или S_FALSE в противном случае.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

См. также раздел

IMoniker

IROTData