Condividi tramite


Metodo ITypeComp::Bind (oaidl.h)

Esegue il mapping di un nome a un membro di un tipo o associa le variabili e le funzioni globali presenti in una libreria dei tipi.

Sintassi

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

Parametri

[in] szName

Nome da associare.

[in] lHashVal

Valore hash per il nome calcolato da LHashValOfNameSys.

[in] wFlags

Uno o più flag definiti nell'enumerazione INVOKEKIND. Specifica se il nome è stato fatto riferimento come metodo o proprietà. Quando si esegue l'associazione a una variabile, specificare il flag INVOKE_PROPERTYGET. Specificare zero da associare a qualsiasi tipo di membro.

[out] ppTInfo

Se è stato restituito un FUNCDESC o VARDESC, ppTInfo punta a un puntatore alla descrizione del tipo contenente l'elemento a cui è associato.

[out] pDescKind

Indica se il nome associato è un VARDESC, FUNCDESC o TYPECOMP. Se non esiste alcuna corrispondenza, DESCKIND_NONE.

[out] pBindPtr

Interfaccia associata a VARDESC, FUNCDESC o ITypeComp .

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK
Operazione completata.
E_INVALIDARG
Uno o più argomenti non sono validi.
E_OUTOFMEMORY
Memoria insufficiente per completare l'operazione.

Commenti

Usare Bind per l'associazione alle variabili e ai metodi di un tipo oppure per l'associazione alle variabili e ai metodi globali in una libreria dei tipi. Il puntatore DESCKIND restituito pDescKind indica se il nome è stato associato a un VARDESC, un FUNCDESC o a un'istanza ITypeComp . Il valore pBindPtr restituito punta a VARDESC, FUNCDESC o ITypeComp.

Se un membro dati o un metodo è associato, ppTInfopoints alla descrizione del tipo che contiene il metodo o il membro dati.

Se Bind associa il nome a un contesto di associazione annidato, restituisce un puntatore a un'istanza ITypeComp in pBindPtr e un puntatore di descrizione del tipo Null in ppTInfo. Ad esempio, se il nome di una descrizione di tipo viene passato per un modulo (TKIND_MODULE), enumerazione (TKIND_ENUM) o coclasse (TKIND_COCLASS), Bind restituisce l'istanza ITypeComp della descrizione del tipo per il modulo, l'enumerazione o la coclasse. Questa funzionalità supporta linguaggi come Visual Basic che consentono di qualificare i riferimenti ai membri di una descrizione di tipo in base al nome della descrizione del tipo. Ad esempio, è possibile fare riferimento a una funzione in un modulo tramite modulename. Functionname.

I membri dei tipi TKIND_ENUM, TKIND_MODULE e TKIND_COCLASS contrassegnati come oggetti Application possono essere associati direttamente da ITypeComp, senza specificare il nome del modulo. ITypeComp di una coclasse rinvia all'interfaccia ITypeComp dell'interfaccia predefinita.

Come con altri metodi di ITypeComp, ITypeInfo e ITypeInfo, il codice chiamante è responsabile del rilascio delle istanze o delle strutture dell'oggetto restituite. Se viene restituito un VARDESC o FUNCDESC, il chiamante è responsabile dell'eliminazione con la descrizione del tipo restituito e il rilascio dell'istanza di descrizione del tipo stesso. In caso contrario, se viene restituita un'istanza ITypeComp , il chiamante deve rilasciarlo.

Le regole speciali si applicano se si chiama il metodo Bind di una libreria dei tipi, passandolo il nome di un membro di una classe oggetto Application (una classe con il flag TYPEFLAG_FAPPOBJECT impostato). In questo caso, Bind restituisce DESCKIND_IMPLICITAPPOBJ in pDescKind, un VARDESC che descrive l'oggetto Application in pBindPtr e l'ITypeInfo della classe oggetto Application in ppTInfo. Per eseguire l'associazione all'oggetto, ITypeInfo::GetTypeComp deve effettuare una chiamata per ottenere ITypeComp della classe dell'oggetto Application e quindi richiamare il metodo Bind con il nome passato inizialmente all'ITypeComp della libreria dei tipi.

Il chiamante deve usare il puntatore ITypeInfo (ppTInfo) restituito per ottenere l'indirizzo del membro.

Nota Il parametro wflags corrisponde al parametro wflags in IDispatch::Invoke.
 

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione oaidl.h

Vedi anche

Itypecomp