Partager via


Méthode IMoniker ::IsEqual (objidl.h)

Détermine si ce moniker est identique au moniker spécifié.

Syntaxe

HRESULT IsEqual(
  [in] IMoniker *pmkOtherMoniker
);

Paramètres

[in] pmkOtherMoniker

Pointeur vers l’interface IMoniker sur le moniker à utiliser pour la comparaison avec celui-ci (celui à partir duquel cette méthode est appelée).

Valeur retournée

Cette méthode retourne S_OK pour indiquer que les deux monikers sont identiques, et S_FALSE autrement.

Remarques

Les implémentations précédentes de la table d’objets en cours d’exécution (ROT) appelaient cette méthode. L’implémentation actuelle du ROT utilise l’interface IROTData à la place.

Remarques aux appelants

Appelez cette méthode pour déterminer si deux monikers sont identiques. La forme réduite d’un moniker est considérée comme différente de la forme non réduite. Vous devez appeler la méthode IMoniker ::Reduce avant d’appeler IsEqual, car un moniker réduit est dans sa forme la plus spécifique. IsEqual peut retourner S_FALSE sur deux monikers avant qu’ils ne soient réduits, et S_OK après leur réduction.

Remarques aux implémenteurs

Votre implémentation ne doit pas réduire le moniker actuel avant d’effectuer la comparaison. Il est de la responsabilité de l’appelant d’appeler IMoniker ::Reduce pour comparer les monikers réduits.

Deux monikers qui se comparent comme étant égaux doivent hacher à la même valeur à l’aide de IMoniker ::Hash.

Notes spécifiques à l’implémentation

Implémentation Notes
Anti-moniker Cette méthode retourne S_OK si les deux sont des anti-monikers ; sinon, elle retourne S_FALSE.
Moniker de classe Cette méthode retourne S_OK si pmkOther est un moniker de classe construit avec les mêmes informations CLSID que lui-même. Sinon, la méthode retourne S_FALSE. Peut retourner E_INVALIDARG si pmkOther est un pointeur non valide.
Moniker de fichier Cette méthode retourne S_OK si *pmkOther est un moniker de fichier et que les chemins des deux monikers sont identiques (à l’aide d’une comparaison qui ne respecte pas la casse). Sinon, la méthode retourne S_FALSE.
Moniker composite générique Cette méthode retourne S_OK si les composants des deux monikers sont égaux lorsqu’ils sont comparés dans l’ordre de gauche à droite.
Moniker d’élément Cette méthode retourne S_OK si les deux monikers sont des monikers d’élément et que leurs noms d’affichage sont identiques (à l’aide d’une comparaison ne respectant pas la casse) ; sinon, la méthode retourne S_FALSE.
MONIKER OBJREF Cette méthode retourne S_OK si *pmkOther est un moniker OBJREF et que les chemins des deux monikers sont identiques (à l’aide d’une comparaison qui ne respecte pas la casse). Sinon, la méthode retourne S_FALSE.
Moniker de pointeur Cette méthode retourne S_OK uniquement si les deux sont des monikers de pointeur et que les pointeurs d’interface qu’ils encapsulent sont identiques.
Moniker d’URL Retourne S_FALSE si l’autre moniker (pmkOtherMoniker) n’est pas un moniker d’URL, qu’il vérifie à l’aide de IPersist ::GetClassID pour voir si le CLSID est CLSID_URLMoniker. Si l’autre moniker est un moniker d’URL, il compare les noms d’affichage des monikers à des fins d’égalité, en retournant S_OK s’ils sont identiques ou S_FALSE sinon.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidl.h

Voir aussi

IMoniker

IROTData