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 |
---|---|
|
Operazione completata. |
|
Uno o più argomenti non sono validi. |
|
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.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | oaidl.h |