Método ITypeComp::Bind (oaidl.h)

Mapeia um nome de um membro de um tipo ou associa variáveis globais e funções contidas em uma biblioteca de tipos.

Sintaxe

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

Parâmetros

[in] szName

O nome a ser associado.

[in] lHashVal

O valor de hash para o nome calculado por LHashValOfNameSys.

[in] wFlags

Um ou mais dos sinalizadores definidos na enumeração INVOKEKIND. Especifica se o nome foi referenciado como um método ou uma propriedade. Ao associar a uma variável, especifique o sinalizador INVOKE_PROPERTYGET. Especifique zero para associar a qualquer tipo de membro.

[out] ppTInfo

Se um FUNCDESC ou VARDESC foi retornado, ppTInfo aponta para um ponteiro para a descrição do tipo que contém o item ao qual ele está associado.

[out] pDescKind

Indica se o nome associado a é VARDESC, FUNCDESC ou TYPECOMP. Se não houve correspondência, DESCKIND_NONE.

[out] pBindPtr

A interface VARDESC, FUNCDESC ou ITypeComp associada a.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK
Êxito.
E_INVALIDARG
Um ou mais dos argumentos não são válidos.
E_OUTOFMEMORY
Memória insuficiente para concluir a operação.

Comentários

Use Bind para associar às variáveis e métodos de um tipo ou para associar às variáveis globais e aos métodos em uma biblioteca de tipos. O ponteiro DESCKIND retornado pDescKind indica se o nome estava associado a um VARDESC, um FUNCDESC ou a uma instância ITypeComp . O pBindPtr retornado aponta para VARDESC, FUNCDESC ou ITypeComp.

Se um membro de dados ou método estiver associado a, ppTInfopoints para a descrição do tipo que contém o método ou membro de dados.

Se Bind associar o nome a um contexto de associação aninhada, ele retornará um ponteiro para uma instância ITypeComp em pBindPtr e um ponteiro de descrição de tipo nulo em ppTInfo. Por exemplo, se o nome de uma descrição de tipo for passado para um módulo (TKIND_MODULE), enumeração (TKIND_ENUM) ou coclass (TKIND_COCLASS), Bind retornará a instância ITypeComp da descrição do tipo para o módulo, enumeração ou coclass. Esse recurso dá suporte a linguagens como o Visual Basic que permitem que referências a membros de uma descrição de tipo sejam qualificadas pelo nome da descrição do tipo. Por exemplo, uma função em um módulo pode ser referenciada por modulename. Functionname.

Os membros dos tipos TKIND_ENUM, TKIND_MODULE e TKIND_COCLASS marcados como objetos Application podem ser associados diretamente de ITypeComp, sem especificar o nome do módulo. O ITypeComp de uma coclass adia para o ITypeComp de sua interface padrão.

Assim como acontece com outros métodos de ITypeComp, ITypeInfo e ITypeInfo, o código de chamada é responsável por liberar as instâncias ou estruturas de objeto retornadas. Se um VARDESC ou FUNCDESC for retornado, o chamador será responsável por excluí-lo com a descrição de tipo retornada e liberar a própria instância de descrição de tipo. Caso contrário, se uma instância ITypeComp for retornada, o chamador deverá liberá-la.

As regras especiais se aplicam se você chamar o método Bind de uma biblioteca de tipos, passando-lhe o nome de um membro de uma classe de objeto Application (uma classe que tem o sinalizador TYPEFLAG_FAPPOBJECT definido). Nesse caso, Bind retorna DESCKIND_IMPLICITAPPOBJ no pDescKind, um VARDESC que descreve o objeto Application em pBindPtr e o ITypeInfo da classe de objeto Application em ppTInfo. Para associar ao objeto, ITypeInfo::GetTypeComp deve fazer uma chamada para obter o ITypeComp da classe de objeto Application e, em seguida, reinvoar seu método Bind com o nome inicialmente passado para iTypeComp da biblioteca de tipos.

O chamador deve usar o ponteiro ITypeInfo retornado (ppTInfo) para obter o endereço do membro.

Nota O parâmetro wflags é o mesmo que o parâmetro wflags em IDispatch::Invoke.
 

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho oaidl.h

Confira também

Itypecomp