次の方法で共有


IMetaDataEmit

更新 : 2007 年 11 月

現在定義されているスコープ内のアセンブリについてのメタデータを作成、変更、および保存するメソッドを提供します。メタデータは、メモリ内に格納されるか、ディスクに保存されるかのいずれかです。

interface IMetaDataEmit : IUnknown {
        
    HRESULT ApplyEditAndContinue ( 
        [in]  IUnknown    *pImport
    );
        
    HRESULT DefineCustomAttribute ( 
        [in]  mdToken     tkObj, 
        [in]  mdToken     tkType, 
        [in]  void const  *pCustomAttribute, 
        [in]  ULONG       cbCustomAttribute, 
        [out] mdCustomAttribute *pcv 
    );
        
    HRESULT DefineEvent (    
        [in]  mdTypeDef   td, 
                [in]  LPCWSTR     szEvent, 
        [in]  DWORD       dwEventFlags, 
                [in]  mdToken     tkEventType, 
        [in]  mdMethodDef mdAddOn, 
        [in]  mdMethodDef mdRemoveOn, 
        [in]  mdMethodDef mdFire, 
        [in]  mdMethodDef rmdOtherMethods[], 
        [out] mdEvent     *pmdEvent 
    );
        
    HRESULT DefineField ( 
        [in]  mdTypeDef   td, 
                [in]  LPCWSTR     szName, 
        [in]  DWORD       dwFieldFlags, 
                [in]  PCCOR_SIGNATURE pvSigBlob, 
        [in]  ULONG       cbSigBlob, 
        [in]  DWORD       dwCPlusTypeFlag, 
        [in]  void const  *pValue, 
        [in]  ULONG       cchValue, 
        [out] mdFieldDef  *pmd 
    );
        
    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 
    );
        
    HRESULT DefineImportType ( 
        [in]  IMetaDataAssemblyImport *pAssemImport, 
        [in]  const void  *pbHashValue, 
        [in]  ULONG       cbHashValue,  
        [in]  IMetaDataImport *pImport, 
        [in]  mdTypeDef   tdImport, 
        [in]  IMetaDataAssemblyEmit *pAssemEmit, 
        [out] mdTypeRef   *ptr
    );
        
    HRESULT DefineMemberRef ( 
        [in]  mdToken     tkImport, 
        [in]  LPCWSTR     szName, 
        [in]  PCCOR_SIGNATURE pvSigBlob, 
        [in]  ULONG       cbSigBlob, 
        [out] mdMemberRef *pmr 
    );
        
    HRESULT DefineMethod (    
        [in]  mdTypeDef   td, 
        [in]  LPCWSTR     szName, 
        [in]  DWORD       dwMethodFlags, 
        [in]  PCCOR_SIGNATURE pvSigBlob, 
        [in]  ULONG       cbSigBlob, 
        [in]  ULONG       ulCodeRVA, 
        [in]  DWORD       dwImplFlags, 
        [out] mdMethodDef *pmd
    );
        
    HRESULT DefineMethodImpl ( 
        [in]  mdTypeDef   td, 
        [in]  mdToken     tkBody, 
        [in]  mdToken     tkDecl
    );
        
    HRESULT DefineModuleRef (   
        [in]  LPCWSTR     szName, 
        [out] mdModuleRef *pmur 
    );
        
    HRESULT DefineNestedType ( 
        [in]  LPCWSTR     szTypeDef,
        [in]  DWORD       dwTypeDefFlags, 
        [in]  mdToken     tkExtends, 
        [in]  mdToken     rtkImplements[], 
        [in]  mdTypeDef   tdEncloser, 
        [out] mdTypeDef   *ptd
    );
        
    HRESULT DefineParam (
        [in]  mdMethodDef md, 
        [in]  ULONG       ulParamSeq, 
        [in]  LPCWSTR     szName, 
                [in]  DWORD       dwParamFlags, 
        [in]  DWORD       dwCPlusTypeFlag, 
                [in]  void const  *pValue,
        [in]  ULONG       cchValue, 
        [out] mdParamDef  *ppd 
    );
        
    HRESULT DefinePermissionSet (    
        [in]  mdToken     tk, 
        [in]  DWORD       dwAction, 
        [in]  void const  *pvPermission, 
        [in]  ULONG       cbPermission, 
        [out] mdPermission *ppm 
    );
        
    HRESULT DefinePinvokeMap ( 
        [in]  mdToken     tk, 
        [in]  DWORD       dwMappingFlags, 
        [in]  LPCWSTR     szImportName, 
        [in]  mdModuleRef mrImportDLL 
    );
        
    HRESULT DefineProperty ( 
        [in]  mdTypeDef   td, 
        [in]  LPCWSTR     szProperty, 
                [in]  DWORD       dwPropFlags, 
        [in]  PCCOR_SIGNATURE pvSig, 
        [in]  ULONG       cbSig, 
        [in]  DWORD       dwCPlusTypeFlag, 
                [in]  void const  *pValue, 
        [in]  ULONG       cchValue, 
        [in]  mdMethodDef mdSetter, 
        [in]  mdMethodDef mdGetter, 
        [in]  mdMethodDef rmdOtherMethods[], 
        [out] mdProperty  *pmdProp 
    );
        
    HRESULT DefineSecurityAttributeSet ( 
        [in]  mdToken     tkObj, 
        [in]  COR_SECATTR rSecAttrs[], 
        [in]  ULONG       cSecAttrs, 
        [out] ULONG       *pulErrorAttr 
    );
        
    HRESULT DefineTypeDef ( 
                [in]  LPCWSTR     szTypeDef, 
        [in]  DWORD       dwTypeDefFlags, 
                [in]  mdToken     tkExtends, 
        [in]  mdToken     rtkImplements[], 
        [out] mdTypeDef   *ptd
    );
        
    HRESULT DefineTypeRefByName ( 
        [in]  mdToken     tkResolutionScope, 
        [in]  LPCWSTR     szName, 
        [out] mdTypeRef   *ptr 
    );
        
    HRESULT DefineUserString ( 
        [in]  LPCWSTR szString, 
        [in]  ULONG       cchString, 
        [out] mdString    *pstk 
    );
        
    HRESULT DeleteClassLayout (
        [in]  mdTypeDef   td
    );
        
    HRESULT DeleteFieldMarshal (
        [in]  mdToken     tk
    );
        
    HRESULT DeletePinvokeMap ( 
        [in]  mdToken     tk 
    );
        
    HRESULT DeleteToken ( 
        [in]  mdToken     tkObj 
    );
        
    HRESULT GetSaveSize (    
        [in]  CorSaveSize fSave,
        [out] DWORD       *pdwSaveSize
    );
        
    HRESULT GetTokenFromSig (   
        [in]  PCCOR_SIGNATURE pvSig, 
        [in]  ULONG       cbSig, 
        [out] mdSignature *pmsig 
    );
        
    HRESULT GetTokenFromTypeSpec ( 
        [in]  PCCOR_SIGNATURE pvSig, 
        [in]  ULONG       cbSig, 
        [out] mdTypeSpec *ptypespec 
    ); 
        
    HRESULT Merge ( 
        [in]  IMetaDataImport *pImport, 
        [in]  IMapToken   *pHostMapToken, 
        [in]  IUnknown    *pHandler 
    );
        
    HRESULT MergeEnd ();
        
    HRESULT Save ( 
        [in]  LPCWSTR     szFile, 
        [in]  DWORD       dwSaveFlags
    );
        
    HRESULT SaveToMemory (   
        [in]  void        *pbData, 
        [in]  ULONG       cbData 
    );
        
    HRESULT SaveToStream (   
        [in]  IStream     *pIStream,
        [in]  DWORD       dwSaveFlags
    );
        
    HRESULT SetClassLayout (   
        [in]  mdTypeDef   td, 
        [in]  DWORD       dwPackSize, 
        [in]  COR_FIELD_OFFSET rFieldOffsets[], 
        [in]  ULONG       ulClassSize 
    );
        
    HRESULT SetCustomAttributeValue ( 
        [in]  mdCustomAttribute pcv, 
        [in]  void const  *pCustomAttribute,  
        [in]  ULONG       cbCustomAttribute 
    );
        
    HRESULT SetEventProps (  
        [in]  mdEvent     ev, 
        [in]  DWORD       dwEventFlags, 
        [in]  mdToken     tkEventType, 
        [in]  mdMethodDef mdAddOn, 
        [in]  mdMethodDef mdRemoveOn, 
        [in]  mdMethodDef mdFire, 
        [in]  mdMethodDef rmdOtherMethods[] 
    );
        
    HRESULT SetFieldMarshal (    
        [in]  mdToken     tk, 
        [in]  PCCOR_SIGNATURE pvNativeType, 
        [in]  ULONG       cbNativeType 
    );
        
    HRESULT SetFieldProps (  
                [in]  mdFieldDef  fd, 
        [in]  DWORD       dwFieldFlags, 
        [in]  DWORD       dwCPlusTypeFlag, 
                [in]  void const  *pValue, 
        [in]  ULONG       cchValue 
    );
        
    HRESULT SetFieldRVA ( 
        [in]  mdFieldDef  fd, 
        [in]  ULONG       ulRVA 
    );
        
    HRESULT SetHandler ( 
        [in]  IUnknown    *pUnk
    );
        
    HRESULT SetMethodProps ( 
        [in]  mdMethodDef md, 
        [in]  DWORD       dwMethodFlags,
        [in]  ULONG       ulCodeRVA, 
        [in]  DWORD       dwImplFlags 
    );
        
    HRESULT SetMethodImplFlags ( 
                [in]  mdMethodDef md, 
        [in]  DWORD       dwImplFlags 
        );
        
    HRESULT SetModuleProps ( 
        [in]  LPCWSTR     szName
    ); 
        
    HRESULT SetParamProps ( 
        [in]  mdParamDef  pd, 
        [in]  LPCWSTR     szName, 
        [in]  DWORD       dwParamFlags, 
        [in]  DWORD       dwCPlusTypeFlag, 
        [in]  void const  *pValue, 
        [in]  ULONG       cchValue 
    );
        
    HRESULT SetParent ( 
        [in]  mdMemberRef mr, 
        [in]  mdToken     tk 
    );
        
    HRESULT SetPermissionSetProps ( 
        [in]  mdToken     tk, 
        [in]  DWORD       dwAction, 
        [in]  void const  *pvPermission, 
        [in]  ULONG       cbPermission, 
        [out] mdPermission *ppm 
    );
        
    HRESULT SetPinvokeMap ( 
        [in]  mdToken     tk, 
        [in]  DWORD       dwMappingFlags,
        [in]  LPCWSTR     szImportName, 
        [in]  mdModuleRef mrImportDLL 
    );
        
    HRESULT SetPropertyProps ( 
        [in]  mdProperty  pr, 
                [in]  DWORD       dwPropFlags, 
        [in]  DWORD       dwCPlusTypeFlag, 
                [in]  void const  *pValue, 
        [in]  ULONG       cchValue, 
        [in]  mdMethodDef mdSetter, 
        [in]  mdMethodDef mdGetter, 
        [in]  mdMethodDef rmdOtherMethods[] 
    );
        
    HRESULT SetRVA ( 
        [in]  mdMethodDef md, 
        [in]  ULONG       ulRVA 
    );
        
    HRESULT SetTypeDefProps (
        [in]  mdTypeDef   td, 
                [in]  DWORD       dwTypeDefFlags, 
        [in]  mdToken     tkExtends, 
                [in]  mdToken     rtkImplements[] 
    );
        
    HRESULT TranslateSigWithScope ( 
        [in]  IMetaDataAssemblyImport *pAssemImport, 
        [in]  const void  *pbHashValue, 
        [in]  ULONG       cbHashValue, 
        [in]  IMetaDataImport *import, 
        [in]  PCCOR_SIGNATURE pbSigBlob, 
        [in]  ULONG       cbSigBlob,
        [in]  IMetaDataAssemblyEmit *pAssemEmit, 
        [in]  IMetaDataEmit *emit, 
        [out] PCOR_SIGNATURE pvTranslatedSig, 
        [in]  ULONG       cbTranslatedSigMax, 
        [out] ULONG       *pcbTranslatedSig 
    );
        
};

メソッド

メソッド

説明

IMetaDataEmit::ApplyEditAndContinue メソッド

指定した pImport で行われた変更で、現在のアセンブリ スコープを更新します。

IMetaDataEmit::DefineCustomAttribute メソッド

指定したメタデータ シグネチャを持つカスタム属性の定義を、指定したオブジェクトにアタッチされるように作成し、そのカスタム属性定義へのトークンを取得します。

IMetaDataEmit::DefineEvent メソッド

指定したメタデータ シグネチャを持つイベントの定義を作成し、そのイベント定義のトークンを取得します。

IMetaDataEmit::DefineField メソッド

指定したメタデータ シグネチャを持つフィールドの定義を作成し、そのフィールド定義のトークンを取得します。

IMetaDataEmit::DefineImportMember メソッド

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

IMetaDataEmit::DefineImportType メソッド

現在のスコープ外にあるモジュールで定義されている型への参照についての定義を作成し、その参照定義のトークンを取得します。

IMetaDataEmit::DefineMemberRef メソッド

現在のスコープ外にあるモジュールのメンバへの参照についての定義を作成し、その参照定義のトークンを取得します。

IMetaDataEmit::DefineMethod メソッド

指定したシグネチャでメソッドの定義を作成し、そのメソッド定義にトークンを返します。

IMetaDataEmit::DefineMethodImpl メソッド

インターフェイスから継承されるメソッドの実装定義を作成し、作成したメソッド実装定義にトークンを返します。

IMetaDataEmit::DefineModuleRef メソッド

指定した名前のモジュールのメタデータ シグネチャを作成します。

IMetaDataEmit::DefineNestedType メソッド

型定義のメタデータ シグネチャを作成し、その型の mdTypeDef トークンを返します。また、定義した型が tdEncloser によって参照される型のメンバであることも指定します。

IMetaDataEmit::DefineParam メソッド

指定したトークンが参照するメソッドに対する指定した署名を持つパラメータの定義を作成し、そのパラメータ定義のトークンを取得します。

IMetaDataEmit::DefinePermissionSet メソッド

指定したメタデータ シグネチャを持つアクセス許可セットの定義を作成し、そのアクセス許可セット定義のトークンを取得します。

IMetaDataEmit::DefinePinvokeMap メソッド

指定したトークンによって参照されるメソッドの PInvoke シグネチャの機能を設定します。

IMetaDataEmit::DefineProperty メソッド

指定した型に対するプロパティ定義を、get メソッド アクセサおよび set メソッド アクセサを指定して作成し、そのプロパティ定義のトークンを取得します。

IMetaDataEmit::DefineSecurityAttributeSet メソッド

指定したトークンによって参照されるオブジェクトに割り当てるセキュリティ アクセス許可のセットを作成します。

IMetaDataEmit::DefineTypeDef メソッド

共通言語ランタイムの型の型定義を作成し、その型定義のメタデータ トークンを取得します。

IMetaDataEmit::DefineTypeRefByName メソッド

現在のスコープ外にある別のモジュールで定義されている型のメタデータ トークンを取得します。

IMetaDataEmit::DefineUserString メソッド

指定したリテラル文字列のメタデータ トークンを取得します。

IMetaDataEmit::DeleteClassLayout メソッド

指定したトークンによって参照される型のクラス レイアウト メタデータ シグネチャを破棄します。

IMetaDataEmit::DeleteFieldMarshal メソッド

指定したトークンによって参照されるオブジェクトの PInvoke マーシャリング メタデータ シグネチャを破棄します。

IMetaDataEmit::DeletePinvokeMap メソッド

指定したトークンによって参照されるオブジェクトの PInvoke マップ メタデータを破棄します。

IMetaDataEmit::DeleteToken メソッド

指定したトークンを現在のメタデータ スコープから削除します。

IMetaDataEmit::GetSaveSize メソッド

現在のスコープ内のアセンブリの推定バイナリ サイズを取得します。

IMetaDataEmit::GetTokenFromSig メソッド

指定したメタデータ シグネチャのトークンを取得します。

IMetaDataEmit::GetTokenFromTypeSpec メソッド

指定したメタデータ シグネチャを持つ型のメタデータ トークンを取得します。

IMetaDataEmit::Merge メソッド

指定したインポート済みのスコープを、マージされるスコープの一覧に追加します。

IMetaDataEmit::MergeEnd メソッド

前の 1 つ以上の IMetaDataEmit::Merge 呼び出しで指定されたすべてのメタデータ スコープを現在のスコープにマージします。

IMetaDataEmit::Save メソッド

現在のスコープ内のすべてのメタデータを、指定したアドレスにあるファイルに保存します。

IMetaDataEmit::SaveToMemory メソッド

現在のスコープ内のすべてのメタデータを、指定されたメモリ領域に保存します。

IMetaDataEmit::SaveToStream メソッド

現在のスコープ内のすべてのメタデータを、指定された IStream に保存します。

IMetaDataEmit::SetClassLayout メソッド

前の IMetaDataEmit::DefineTypeDef 呼び出しで定義された型のクラス レイアウトのシグネチャを設定または更新します。

IMetaDataEmit::SetCustomAttributeValue メソッド

前の IMetaDataEmit::DefineCustomAttribute 呼び出しで定義されたカスタム属性の値を設定または更新します。

IMetaDataEmit::SetEventProps メソッド

前の IMetaDataEmit::DefineEvent 呼び出しで定義されたイベントについて、指定した機能を設定または更新します。

IMetaDataEmit::SetFieldMarshal メソッド

指定したトークンによって参照されるフィールド、メソッドの戻り値、またはメソッドのパラメータに関する PInvoke マーシャリング情報を設定します。

IMetaDataEmit::SetFieldProps メソッド

指定したフィールド トークンによって参照されるフィールドの既定値を設定または更新します。

IMetaDataEmit::SetFieldRVA メソッド

指定したトークンによって参照されるフィールドの相対仮想アドレスのグローバル変数値を設定します。

IMetaDataEmit::SetHandler メソッド

指定した IUnknown ポインタが参照するメソッドを、トークンを再マップするための通知コールバックとして設定します。

IMetaDataEmit::SetMethodImplFlags メソッド

指定したトークンによって参照される、継承されたメソッド実装のメタデータ シグネチャを設定または更新します。

IMetaDataEmit::SetMethodProps メソッド

前の IMetaDataEmit::DefineMethod 呼び出しで定義されたメソッドの機能 (指定した相対仮想アドレスに格納されている) を設定または更新します。

IMetaDataEmit::SetModuleProps メソッド

前の IMetaDataEmit::DefineModuleRef 呼び出しで定義されたモジュールへの参照を更新します。

IMetaDataEmit::SetParamProps メソッド

前の IMetaDataEmit::DefineParam への呼び出しで定義されたメソッド パラメータの機能を設定または変更します。

IMetaDataEmit::SetParent メソッド

前の IMetaDataEmit::DefineMemberRef 呼び出しで定義されている指定メンバが、前の IMetaDataEmit::DefineTypeDef 呼び出しで定義されている指定型のメンバであることを確立します。

IMetaDataEmit::SetPermissionSetProps メソッド

前の IMetaDataEmit::DefinePermissionSet 呼び出しで定義されたアクセス許可セットのメタデータ シグネチャの機能を設定または更新します。

IMetaDataEmit::SetPinvokeMap メソッド

前の IMetaDataEmit::DefinePinvokeMap への呼び出しで定義されたとおりに、メソッドの PInvoke 署名の機能を設定または変更します。

IMetaDataEmit::SetPropertyProps メソッド

前の IMetaDataEmit::DefineProperty 呼び出しで定義されたプロパティについて、メタデータに格納されている機能を設定します。

IMetaDataEmit::SetRVA メソッド

指定したメソッドの相対仮想アドレスを設定します。

IMetaDataEmit::SetTypeDefProps メソッド

前の IMetaDataEmit::DefineTypeDef 呼び出しで定義された型の機能を設定します。

IMetaDataEmit::TranslateSigWithScope メソッド

アセンブリを現在のスコープにインポートし、マージしたスコープの新しいメタデータ シグネチャを取得します。

必要条件

プラットフォーム : 「.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

参照

参照

IMetaDataEmit2

その他の技術情報

メタデータ インターフェイス