Поделиться через


Метод ITypeComp::Bind (oaidl.h)

Сопоставляет имя с типом элемента или связывает глобальные переменные и функции, содержащиеся в библиотеке типов.

Синтаксис

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

Параметры

[in] szName

Имя для привязки.

[in] lHashVal

Хэш-значение для имени, вычисленного LHashValOfNameSys.

[in] wFlags

Один или несколько флагов, определенных в перечислении INVOKEKIND. Указывает, указывалось ли имя как на метод или свойство. При привязке к переменной укажите флаг INVOKE_PROPERTYGET. Укажите ноль для привязки к любому типу элемента.

[out] ppTInfo

Если была возвращена функция FUNCDESC или VARDESC, ppTInfo указывает на указатель на описание типа, содержащее элемент, к которому он привязан.

[out] pDescKind

Указывает, является ли имя, привязанное к , VARDESC, FUNCDESC или TYPECOMP. Если совпадения не было, DESCKIND_NONE.

[out] pBindPtr

Привязанный к интерфейсу VARDESC, FUNCDESC или ITypeComp .

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Один или несколько аргументов недопустимы.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.

Комментарии

Используйте привязку для привязки к переменным и методам типа или для привязки к глобальным переменным и методам в библиотеке типов. Возвращенный указатель DESCKIND pDescKind указывает, было ли имя привязано к VARDESC, FUNCDESC или экземпляру ITypeComp . Возвращенный pBindPtr указывает на VARDESC, FUNCDESC или ITypeComp.

Если элемент данных или метод привязан к , то ppTInfopoints к описанию типа, которое содержит метод или элемент данных.

Если Bind привязывает имя к контексту вложенной привязки, он возвращает указатель на экземпляр ITypeComp в pBindPtr и пустой указатель описания типа в ppTInfo. Например, если имя описания типа передается для модуля (TKIND_MODULE), перечисления (TKIND_ENUM) или coclass (TKIND_COCLASS), Bind возвращает экземпляр ITypeComp описания типа для модуля, перечисления или кокласса. Эта функция поддерживает такие языки, как Visual Basic, которые позволяют квалифицировать ссылки на элементы описания типа по имени описания типа. Например, на функцию в модуле можно ссылаться по имени модуля. functionname.

Члены типов TKIND_ENUM, TKIND_MODULE и TKIND_COCLASS, помеченные как объекты Application, могут быть привязаны непосредственно из ITypeComp без указания имени модуля. ITypeComp сокласса откладывается на ITypeComp своего интерфейса по умолчанию.

Как и в случае с другими методами ITypeComp, ITypeInfo и ITypeInfo, вызывающий код отвечает за освобождение возвращаемых экземпляров или структур объекта. Если возвращается VARDESC или FUNCDESC, вызывающий объект отвечает за его удаление с возвращенным описанием типа и освобождение самого экземпляра описания типа. В противном случае, если возвращается экземпляр ITypeComp , вызывающий объект должен освободить его.

Особые правила применяются при вызове метода Bind библиотеки типов, передав ему имя члена класса объекта Application (класса, для которого установлен флаг TYPEFLAG_FAPPOBJECT). В этом случае Bind возвращает DESCKIND_IMPLICITAPPOBJ в pDescKind, VARDESC, описывающий объект Application в pBindPtr, и ITypeInfo класса объектов Application в ppTInfo. Чтобы выполнить привязку к объекту, ITypeInfo::GetTypeComp должен выполнить вызов, чтобы получить ITypeComp класса объектов Application, а затем повторно вызвать его метод Bind с именем, изначально переданным ITypeComp библиотеки типов.

Вызывающий объект должен использовать возвращенный указатель ITypeInfo (ppTInfo), чтобы получить адрес члена.

Примечание Параметр wflags совпадает с параметром wflags в IDispatch::Invoke.
 

Требования

Требование Значение
Целевая платформа Windows
Header oaidl.h

См. также раздел

ITypeComp