次の方法で共有


IMetaDataEmit::DefineImportMember メソッド

更新 : 2007 年 11 月

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

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 のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

参照

参照

IMetaDataEmit

IMetaDataEmit2