Método ITypeComp::Bind (oaidl.h)
Asigna un nombre a un miembro de un tipo o enlaza variables y funciones globales de una biblioteca de tipos.
Sintaxis
HRESULT Bind(
[in] LPOLESTR szName,
[in] ULONG lHashVal,
[in] WORD wFlags,
[out] ITypeInfo **ppTInfo,
[out] DESCKIND *pDescKind,
[out] BINDPTR *pBindPtr
);
Parámetros
[in] szName
Nombre que se va a enlazar.
[in] lHashVal
Valor hash del nombre calculado por LHashValOfNameSys.
[in] wFlags
Una o varias de las marcas definidas en la enumeración INVOKEKIND. Especifica si se hizo referencia al nombre como un método o una propiedad. Al enlazar a una variable, especifique la marca INVOKE_PROPERTYGET. Especifique cero para enlazar a cualquier tipo de miembro.
[out] ppTInfo
Si se devolvió un FUNCDESC o VARDESC, ppTInfo apunta a un puntero a la descripción de tipo que contiene el elemento al que está enlazado.
[out] pDescKind
Indica si el nombre enlazado a es VARDESC, FUNCDESC o TYPECOMP. Si no había coincidencia, DESCKIND_NONE.
[out] pBindPtr
Interfaz enlazada a VARDESC, FUNCDESC o ITypeComp .
Valor devuelto
Este método puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
Uno o varios de los argumentos no son válidos. |
|
Memoria insuficiente para completar la operación. |
Comentarios
Use Bind para enlazar a las variables y métodos de un tipo, o para enlazar a las variables y métodos globales de una biblioteca de tipos. El puntero de DESCKIND devuelto pDescKind indica si el nombre estaba enlazado a un VARDESC, un FUNCDESC o a una instancia de ITypeComp . El elemento pBindPtr devuelto apunta a VARDESC, FUNCDESC o ITypeComp.
Si un miembro de datos o un método está enlazado, ppTInfopoints a la descripción del tipo que contiene el método o el miembro de datos.
Si Bind enlaza el nombre a un contexto de enlace anidado, devuelve un puntero a una instancia de ITypeComp en pBindPtr y un puntero de descripción de tipo null en ppTInfo. Por ejemplo, si se pasa el nombre de una descripción de tipo para un módulo (TKIND_MODULE), enumeración (TKIND_ENUM) o coclase (TKIND_COCLASS), Bind devuelve la instancia de ITypeComp de la descripción de tipo del módulo, enumeración o coclase. Esta característica admite lenguajes como Visual Basic que permiten que las referencias a miembros de una descripción de tipo se califiquen por el nombre de la descripción del tipo. Por ejemplo, se puede hacer referencia a una función de un módulo mediante modulename. Nombrefunción.
Los miembros de TKIND_ENUM, TKIND_MODULE y tipos de TKIND_COCLASS marcados como objetos Application se pueden enlazar directamente desde ITypeComp, sin especificar el nombre del módulo. ITypeComp de una coclase aplaza a ITypeComp de su interfaz predeterminada.
Al igual que con otros métodos de ITypeComp, ITypeInfo e ITypeInfo, el código de llamada es responsable de liberar las estructuras o instancias de objeto devueltas. Si se devuelve un VARDESC o FUNCDESC, el autor de la llamada es responsable de eliminarlo con la descripción del tipo devuelto y liberar la propia instancia de descripción del tipo. De lo contrario, si se devuelve una instancia de ITypeComp , el autor de la llamada debe liberarla.
Se aplican reglas especiales si se llama al método Bind de una biblioteca de tipos, pasando el nombre de un miembro de una clase de objeto Application (una clase que tiene establecido la marca TYPEFLAG_FAPPOBJECT). En este caso, Bind devuelve DESCKIND_IMPLICITAPPOBJ en pDescKind, un VARDESC que describe el objeto Application en pBindPtr y el ITypeInfo de la clase de objeto Application en ppTInfo. Para enlazar al objeto, ITypeInfo::GetTypeComp debe realizar una llamada para obtener el ITypeComp de la clase de objeto Application y, a continuación, volver a invocar su método Bind con el nombre que se pasó inicialmente al ITypeComp de la biblioteca de tipos.
El llamador debe usar el puntero ITypeInfo devuelto (ppTInfo) para obtener la dirección del miembro.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | oaidl.h |