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
[in] 対象のメンバーのインポート元のアセンブリを表す IMetaDataAssemblyImport インターフェイス。
pbHashValue
[in] pAssemImport
によって指定されたアセンブリのハッシュを格納している配列。
cbHashValue
[in] pbHashValue
配列のバイト数。
pImport
[in] 対象のメンバーのインポート元のメタデータ スコープを表す IMetaDataImport インターフェイス。
mbMember
[in] ターゲット メンバーを指定するメタデータ トークン。 トークンは、mdMethodDef
(メンバー メソッドの場合)、mdProperty
(メンバー プロパティの場合)、または mdFieldDef
(メンバー フィールドの場合) の場合があります。
pAssemEmit
[in] 対象のメンバーのインポート元のアセンブリを表す IMetaDataAssemblyEmit インターフェイス。
tkParent
[in] ターゲット メンバーを所有する型またはモジュールそれぞれの mdTypeRef
または mdModuleRef
トークン。
pmr
[out] メンバー参照の現在のスコープで定義されている mdMemberRef
トークン。
解説
DefineImportMember
メソッドにより、mbMember
で指定されたメンバーが検索されます。このメンバーは、pImport
で指定された別のスコープで定義され、そのプロパティを取得します。 この情報を使用して、現在のスコープで IMetaDataEmit::DefineMemberRef メソッドが呼び出され、メンバー参照が作成されます。
一般に、DefineImportMember
メソッドを使用する前に、ターゲット メンバーの親クラス、インターフェイス、またはモジュールの型参照またはモジュール参照を、現在のスコープで作成する必要があります。 その後、この参照のメタデータ トークンが tkParent
引数で渡されます。 後でコンパイラまたはリンカーによって解決される場合は、ターゲット メンバーの親への参照を作成する必要はありません。 まとめ
ターゲット メンバーがフィールドまたはメソッドの場合は、IMetaDataEmit::DefineTypeRefByName または IMetaDataEmit::DefineImportType メソッドを使用して、メンバーの親クラスまたは親インターフェイスの型参照を現在のスコープ内に作成します。
ターゲット メンバーがグローバル変数またはグローバル関数 (つまり、クラスまたはインターフェイスのメンバーではない) の場合は、IMetaDataEmit::DefineModuleRef メソッドを使用して、メンバーの親モジュールに対して、現在のスコープでモジュール参照を作成します。
ターゲット メンバーの親が、後でコンパイラまたはリンカーによって解決される場合は
tkParent
でmdTokenNil
を渡します。 これが適用される唯一のシナリオは、グローバル関数またはグローバル変数が、最終的に現在のモジュールおよびマージされたメタデータにリンクされる .obj ファイルからインポートされる場合です。
必要条件
:「システム要件」を参照してください。
ヘッダー: Cor.h
ライブラリ: MSCorEE.dll でリソースとして使用されます
.NET Framework のバージョン: 1.0 以降で使用可能
関連項目
.NET