次の方法で共有


IMetaDataEmit::DefineImportMember メソッド

現在のスコープ外で定義されているモジュールまたは型の指定したメンバーへの参照を作成し、その参照のトークンを定義します。

HRESULT DefineImportMember ( 
    [in]  IMetaDataAssemblyImport  *pAssemImport, 
    [in]  const void               *pbHashValue, 
    [in]  ULONG                    cbHashValue,
    [in]  IMetaDataImport          *pImport, 
    [in]  mdToken                  mbMember, 
    [in]  IMetaDataAssemblyEmit    *pAssemEmit, 
    [in]  mdToken                  tkParent, 
    [out] mdMemberRef              *pmr 
);

パラメーター

  • pAssemImport
    [入力] 対象のメンバーのインポート元となるアセンブリを表す IMetaDataAssemblyImport インターフェイス。

  • pbHashValue
    [入力] pAssemImport で指定したアセンブリのハッシュが含まれた配列。

  • cbHashValue
    [入力] pbHashValue 配列のバイト数。

  • pImport
    [入力] 対象のメンバーのインポート元となるメタデータ スコープを表す IMetaDataImport インターフェイス。

  • mbMember
    [入力] 対象メンバーを指定するメタデータ トークン。 指定できるトークンは、mdMethodDef (メンバー メソッドの場合)、mdProperty (メンバー プロパティの場合)、mdFieldDef (メンバー フィールドの場合) のいずれかです。

  • pAssemEmit
    [入力] 対象のメンバーのインポート先となるアセンブリを表す IMetaDataAssemblyEmit インターフェイス。

  • tkParent
    [入力] 対象メンバーを所有する、型に対応する mdTypeRef トークンまたはモジュールに対応する mdModuleRef トークン。

  • pmr
    [出力] メンバー参照の現在のスコープに定義されている mdMemberRef トークン。

解説

DefineImportMember メソッドは、pImport で指定された別のスコープに定義されている、mbMember で指定されたメンバーを検索し、そのプロパティを取得します。 この情報を使用して現在のスコープの IMetaDataEmit::DefineMemberRef メソッドを呼び出し、メンバー参照を作成します。

通常、DefineImportMember メソッドを使用するには、対象メンバーの親クラス、インターフェイス、またはモジュール用の型参照またはモジュール参照を、現在のスコープ内に作成する必要があります。 次に、この参照のメタデータ トークンを tkParent 引数に渡します。 コンパイラまたはリンカーを使用して後で解決する場合は、対象メンバーへの参照を作成する必要はありません。 まとめると、次のようになります。

  • 対象メンバーがフィールドまたはメソッドの場合、IMetaDataEmit::DefineTypeRefByName メソッドまたは IMetaDataEmit::DefineImportType メソッドを使用して、メンバーの親クラスまたは親インターフェイスの型参照を現在のスコープ内に作成します。

  • 対象メンバーがグローバル変数またはグローバル関数の場合 (つまり、クラスまたはインターフェイスのメンバーでない場合)、IMetaDataEmit::DefineModuleRef メソッドを使用して、メンバーの親モジュールのモジュール参照を現在のスコープ内に作成します。

  • コンパイラまたはリンカーを使用して、対象メンバーの親を後で解決する場合、tkParent に mdTokenNil を渡します。 .obj ファイルからグローバル関数またはグローバル変数をインポートし、最終的にそのファイルが現在のモジュールおよびマージされたメタデータにリンクされる場合にのみ、この方法を使用できます。

必要条件

プラットフォーム : 「.NET Framework システム要件」を参照

ヘッダー : Cor.h

ライブラリ : MSCorEE.dll でリソースとして使用されていること

.NET Framework のバージョン : 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

参照

参照

IMetaDataEmit インターフェイス

IMetaDataEmit2 インターフェイス