次の方法で共有


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 列挙で定義されている 1 つ以上のフラグ。 名前がメソッドまたはプロパティとして参照されたかどうかを指定します。 変数にバインドする場合は、フラグ INVOKE_PROPERTYGETを指定します。 任意の種類のメンバーにバインドするには、0 を指定します。

[out] ppTInfo

FUNCDESC または VARDESC が返された場合、 ppTInfo は、バインド先の項目を含む型の説明へのポインターを指します。

[out] pDescKind

にバインドされた名前が VARDESC、FUNCDESC、または TYPECOMP であるかどうかを示します。 一致するものがない場合は、DESCKIND_NONE。

[out] pBindPtr

VARDESC、FUNCDESC、または ITypeComp インターフェイスへのバインド。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_ok
正常終了しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するにはメモリが不足しています。

注釈

Bind は、型の変数とメソッドへのバインド、またはタイプ ライブラリ内のグローバル変数とメソッドへのバインドに使用します。 返される DESCKIND ポインター pDescKind は、名前が VARDESC、FUNCDESC、または ITypeComp インスタンスにバインドされたかどうかを示します。 返された pBindPtr は、VARDESC、FUNCDESC、または ITypeComp を指します。

データ メンバーまたはメソッドが にバインドされている場合、ppTInfo は、メソッドまたはデータ メンバーを含む型の説明をポイントします。

Bind は、名前を入れ子になったバインド コンテキストにバインドする場合、pBindPtrITypeComp インスタンスへのポインターと ppTInfo の null 型の説明ポインターを返します。 たとえば、モジュール (TKIND_MODULE)、列挙 (TKIND_ENUM)、またはコクラス (TKIND_COCLASS) に対して型の説明の名前が渡された場合、Bind はモジュール、列挙、またはコクラスの型の説明の ITypeComp インスタンスを返します。 この機能は、型の説明のメンバーへの参照を型の説明の名前で修飾できるようにする Visual Basic などの言語をサポートしています。 たとえば、モジュール内の関数は modulename で参照できます。functionname。

Application オブジェクトとしてマークされたTKIND_ENUM、TKIND_MODULE、TKIND_COCLASS型のメンバーは、モジュールの名前を指定せずに、 ITypeComp から直接にバインドできます。 コクラスの ITypeComp は、既定のインターフェイスの ITypeComp に遅延します。

ITypeComp、ITypeInfoおよび ITypeInfo の他のメソッドと同様に、呼び出し元のコードは、返されるオブジェクト インスタンスまたは構造体を解放する役割を担います。 VARDESC または FUNCDESC が返された場合、呼び出し元は、返された型の説明を使用して削除し、型の説明インスタンス自体を解放する必要があります。 それ以外の場合、 ITypeComp インスタンスが返された場合、呼び出し元はそれを解放する必要があります。

タイプ ライブラリの Bind メソッドを呼び出し、Application オブジェクト クラス (TYPEFLAG_FAPPOBJECT フラグが設定されているクラス) のメンバーの名前を渡す場合は、特別な規則が適用されます。 この場合、Bind は pDescKind のDESCKIND_IMPLICITAPPOBJ、pBindPtr の Application オブジェクトを記述する VARDESC、ppTInfo の Application オブジェクト クラスの ITypeInfo を返します。 オブジェクトにバインドするには、 ITypeInfo::GetTypeComp が Application オブジェクト クラスの ITypeComp を取得するための呼び出しを行い、その Bind メソッドをタイプ ライブラリの ITypeComp に最初に渡された名前で再び取り込む必要があります。

呼び出し元は、返された ITypeInfo ポインター (ppTInfo) を使用してメンバーのアドレスを取得する必要があります。

メモwflags パラメーターは、IDispatch::Invokewflags パラメーターと同じです。
 

要件

要件
対象プラットフォーム Windows
ヘッダー oaidl.h

こちらもご覧ください

ITypeComp