Méthode IParseDisplayName ::P arseDisplayName (oleidl.h)

Analyse le nom d’affichage spécifié et crée un moniker correspondant.

Syntaxe

HRESULT ParseDisplayName(
  [in]  IBindCtx *pbc,
  [in]  LPOLESTR pszDisplayName,
  [out] ULONG    *pchEaten,
  [out] IMoniker **ppmkOut
);

Paramètres

[in] pbc

Pointeur vers le contexte de liaison à utiliser dans cette opération de liaison. Consultez IBindCtx.

[in] pszDisplayName

Nom complet à analyser.

[out] pchEaten

Pointeur vers une variable qui reçoit le nombre de caractères dans le nom d’affichage correspondant au moniker ppmkOut .

[out] ppmkOut

Pointeur vers une variable pointeur IMoniker qui reçoit le pointeur d’interface vers le moniker résultant. Si une erreur se produit, l’implémentation définit *ppmkOut sur NULL. Si *ppmkOut n’a pas la valeur NULL, l’implémentation doit appeler AddRef ; il incombe à l’appelant d’appeler Release.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.
MK_E_SYNTAX
Il existe une erreur de syntaxe dans le nom d’affichage. L’analyse a échoué, car pszDisplayName ne pouvait être que partiellement résolu en moniker. Dans ce cas, *pchEaten a le nombre de caractères qui ont été correctement analysés dans un préfixe moniker. Le paramètre ppmkOut doit être NULL.
MK_E_NOOBJECT
Le nom complet n’identifie pas un composant dans cet espace de noms.
E_INVALIDARG
Un ou plusieurs paramètres ne sont pas valides.

Remarques

En général, le préfixe maximal de pszDisplayName qui est syntaxiquement valide et qui représente un objet doit être consommé par cette méthode et converti en moniker.

En règle générale, cette méthode est appelée par MkParseDisplayName ou MkParseDisplayNameEx. À l’étape initiale de l’opération d’analyse, ces fonctions peuvent récupérer l’interface IParseDisplayName directement à partir d’un instance d’une classe identifiée avec la notation « @ProgID » ou « ProgID ». Les étapes d’analyse suivantes peuvent interroger l’interface sur un objet intermédiaire.

Les boucles main de MkParseDisplayName et MkParseDisplayNameEx recherchent la pièce de moniker suivante en appelant la méthode équivalente dans l’interface IMoniker, c’est-à-dire, IMoniker ::P arseDisplayName, sur le moniker qu’il contient actuellement. Dans cet appel à IMoniker ::P arseDisplayName, la fonction MkParseDisplayName ou MkParseDisplayNameEx transmet NULL dans le paramètre pmkToLeft . Si le moniker actuellement détenu est un composite générique, l’appel à IMoniker ::P arseDisplayName est transféré par ce composite à sa dernière pièce, en passant le préfixe du composite à gauche de la pièce dans pmkToLeft.

Certaines classes moniker seront en mesure de gérer cette analyse en interne, car elles sont conçues pour désigner uniquement certains types d’objets. D’autres doivent se lier à l’objet qu’ils désignent pour accomplir le processus d’analyse. Comme d’habitude, ces objets ne doivent pas être libérés par IMoniker ::P arseDisplayName , mais doivent être transférés vers le contexte de liaison via IBindCtx ::RegisterObjectBound ou IBindCtx ::GetRunningObjectTable suivi de IRunningObjectTable ::Register pour publication ultérieurement.

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 oleidl.h

Voir aussi

IMoniker ::P arseDisplayName

IParseDisplayName

MkParseDisplayName

MkParseDisplayNameEx