다음을 통해 공유


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 메서드

지정된 getset 메서드 접근자를 사용하여 특정 형식에 대한 속성 정의를 만들고 이 속성 정의에 대한 토큰을 가져옵니다.

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 메서드

이전에 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

기타 리소스

메타데이터 인터페이스