Share via


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 メソッドを使用して、メンバーの親モジュールに対して、現在のスコープでモジュール参照を作成します。

  • ターゲット メンバーの親が、後でコンパイラまたはリンカーによって解決される場合は tkParentmdTokenNil を渡します。 これが適用される唯一のシナリオは、グローバル関数またはグローバル変数が、最終的に現在のモジュールおよびマージされたメタデータにリンクされる .obj ファイルからインポートされる場合です。

必要条件

:システム要件」を参照してください。

ヘッダー: Cor.h

ライブラリ: MSCorEE.dll でリソースとして使用されます

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目