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 |
---|---|
|
La commande s'est correctement terminée. |
|
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. |
|
Le nom complet n’identifie pas un composant dans cet espace de noms. |
|
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 |