Partager via


ITypeComp ::Bind, méthode (oaidl.h)

Mappe un nom à un membre d'un type, ou lie des variables et des fonctions globales contenues dans une bibliothèque de types.

Syntaxe

HRESULT Bind(
  [in]  LPOLESTR  szName,
  [in]  ULONG     lHashVal,
  [in]  WORD      wFlags,
  [out] ITypeInfo **ppTInfo,
  [out] DESCKIND  *pDescKind,
  [out] BINDPTR   *pBindPtr
);

Paramètres

[in] szName

Nom à lier.

[in] lHashVal

Valeur de hachage pour le nom calculé par LHashValOfNameSys.

[in] wFlags

Un ou plusieurs des indicateurs définis dans l’énumération INVOKEKIND. Spécifie si le nom a été référencé en tant que méthode ou propriété. Lors de la liaison à une variable, spécifiez l’indicateur INVOKE_PROPERTYGET. Spécifiez zéro à lier à n’importe quel type de membre.

[out] ppTInfo

Si un FUNCDESC ou VARDESC a été retourné, ppTInfo pointe vers un pointeur vers la description de type qui contient l’élément auquel il est lié.

[out] pDescKind

Indique si le nom lié à est VARDESC, FUNCDESC ou TYPECOMP. S’il n’y avait pas de correspondance, DESCKIND_NONE.

[out] pBindPtr

Interface VARDESC, FUNCDESC ou ITypeComp liée.

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
Réussite.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_OUTOFMEMORY
Mémoire insuffisante pour terminer l’opération.

Remarques

Utilisez Bind pour la liaison aux variables et méthodes d’un type, ou pour la liaison aux variables et méthodes globales dans une bibliothèque de types. Le pointeur DESCKIND renvoyé pDescKind indique si le nom était lié à un VARDESC, un FUNCDESC ou à un instance ITypeComp. Le pBindPtr retourné pointe vers VARDESC, FUNCDESC ou ITypeComp.

Si un membre de données ou une méthode est lié à, ppTInfopoints vers la description de type qui contient la méthode ou le membre de données.

Si Bind lie le nom à un contexte de liaison imbriqué, elle retourne un pointeur vers une instance ITypeComp dans pBindPtr et un pointeur de description de type Null dans ppTInfo. Par exemple, si le nom d’une description de type est transmis pour un module (TKIND_MODULE), une énumération (TKIND_ENUM) ou une coclasse (TKIND_COCLASS), Bind retourne la instance ITypeComp de la description du type pour le module, l’énumération ou la coclasse. Cette fonctionnalité prend en charge des langages tels que Visual Basic qui permettent aux références aux membres d’une description de type d’être qualifiées par le nom de la description du type. Par exemple, une fonction dans un module peut être référencée par modulename. Functionname.

Les membres des types TKIND_ENUM, TKIND_MODULE et TKIND_COCLASS marqués comme objets Application peuvent être liés directement à partir d’ITypeComp, sans spécifier le nom du module. L’ITypeComp d’une coclasse se reporte à l’ITypeComp de son interface par défaut.

Comme pour les autres méthodes de ITypeComp, ITypeInfo et ITypeInfo, le code appelant est chargé de libérer les instances ou structures d’objet retournées. Si un VARDESC ou FUNCDESC est retourné, l’appelant est chargé de le supprimer avec la description du type retourné et de libérer la description du type instance lui-même. Sinon, si une instance ITypeComp est retournée, l’appelant doit la libérer.

Des règles spéciales s’appliquent si vous appelez la méthode Bind d’une bibliothèque de types, en lui transmettant le nom d’un membre d’une classe d’objet Application (classe dont l’indicateur TYPEFLAG_FAPPOBJECT est défini). Dans ce cas, Bind retourne DESCKIND_IMPLICITAPPOBJ dans pDescKind, un VARDESC qui décrit l’objet Application dans pBindPtr et l’ITypeInfo de la classe d’objet Application dans ppTInfo. Pour établir une liaison à l’objet, ITypeInfo ::GetTypeComp doit effectuer un appel pour obtenir l’ITypeComp de la classe d’objet Application, puis réinvoquer sa méthode Bind avec le nom initialement transmis au ITypeComp de la bibliothèque de types.

L’appelant doit utiliser le pointeur ITypeInfo retourné (ppTInfo) pour obtenir l’adresse du membre.

Note Le paramètre wflags est identique au paramètre wflags dans IDispatch ::Invoke.
 

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête oaidl.h

Voir aussi

ITypeComp