업데이트: 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
);
};
메서드
메서드 |
설명 |
|---|---|
지정한 pImport의 변경 내용으로 현재 어셈블리 범위를 업데이트합니다. |
|
지정한 메타데이터 시그니처가 있으며 특정 개체에 연결할 사용자 지정 특성의 정의를 만들고 이 사용자 지정 특성 정의에 대한 토큰을 가져옵니다. |
|
지정한 메타데이터 시그니처를 사용하여 이벤트 정의를 만들고 해당 이벤트 정의에 대한 토큰을 가져옵니다. |
|
지정한 메타데이터 시그니처를 가진 필드의 정의를 만들고 이 필드 정의에 대한 토큰을 가져옵니다. |
|
현재 범위 외부의 모듈에 정의된 형식의 멤버에 대한 정의를 만들고 해당 참조 정의에 대한 토큰을 가져옵니다. |
|
현재 범위 외부에 있는 모듈에 정의된 형식에 대한 참조 정의를 만들고 이 참조 정의에 대한 토큰을 가져옵니다. |
|
현재 범위 외부에 있는 모듈 멤버에 대한 참조 정의를 만들고 이 참조 정의에 대한 토큰을 가져옵니다. |
|
지정한 시그니처를 가진 메서드의 정의를 만들고 이 메서드 정의에 대한 토큰을 반환합니다. |
|
인터페이스에서 상속된 메서드 구현에 대한 정의를 만들고 이 메서드 구현 정의에 토큰을 반환합니다. |
|
지정한 이름을 사용하여 모듈의 메타데이터 시그니처를 만듭니다. |
|
형식 정의의 메타데이터 시그니처를 만들어 이 형식에 대한 mdTypeDef 토큰을 반환하고 정의된 형식이 tdEncloser에서 참조하는 형식의 멤버임을 지정합니다. |
|
지정한 토큰이 참조하는 메서드의 지정한 시그니처를 사용하여 매개 변수 정의를 만들고 해당 매개 변수 정의에 대한 토큰을 가져옵니다. |
|
지정한 메타데이터 시그니처를 가진 권한 집합에 대한 정의를 만들고 이 권한 집합 정의에 대한 토큰을 가져옵니다. |
|
지정한 토큰에서 참조하는 메서드의 PInvoke 시그니처 기능을 설정합니다. |
|
지정된 get 및 set 메서드 접근자를 사용하여 특정 형식에 대한 속성 정의를 만들고 이 속성 정의에 대한 토큰을 가져옵니다. |
|
지정한 토큰에서 참조하는 개체에 연결할 보안 권한 집합을 만듭니다. |
|
공용 언어 런타임 형식에 대한 형식 정의를 만들고 이 형식 정의에 대한 메타데이터 토큰을 가져옵니다. |
|
현재 범위 외부의 다른 모듈에 정의된 형식에 대한 메타데이터 토큰을 가져옵니다. |
|
지정한 리터럴 문자열에 대한 메타데이터 토큰을 가져옵니다. |
|
지정한 토큰에서 참조하는 형식에 대한 클래스 레이아웃 메타데이터 시그니처를 소멸시킵니다. |
|
지정한 토큰에서 참조하는 개체의 PInvoke 마샬링 메타데이터 시그니처를 소멸시킵니다. |
|
지정한 토큰에서 참조하는 개체의 PInvoke 매핑 메타데이터를 소멸시킵니다. |
|
현재 메타데이터 범위에서 지정한 토큰을 삭제합니다. |
|
현재 범위에서 어셈블리에 대해 예상되는 이진 크기를 가져옵니다. |
|
지정한 메타데이터 시그니처에 대한 토큰을 가져옵니다. |
|
지정한 메타데이터 시그니처를 가진 형식에 대한 메타데이터 토큰을 가져옵니다. |
|
병합할 범위 목록에 지정된 가져오기 범위를 추가합니다. |
|
이전에 IMetaDataEmit::Merge를 한 번 이상 호출하여 지정된 모든 메타데이터 범위를 현재 범위에 병합합니다. |
|
현재 범위의 모든 메타데이터를 지정한 주소의 파일에 저장합니다. |
|
현재 범위의 모든 메타데이터를 지정한 메모리 영역에 저장합니다. |
|
현재 범위의 모든 메타데이터를 지정한 IStream에 저장합니다. |
|
IMetaDataEmit::DefineTypeDef의 이전 호출에 정의된 형식의 클래스 레이아웃 시그니처를 설정하거나 업데이트합니다. |
|
IMetaDataEmit::DefineCustomAttribute의 이전 호출에 정의된 사용자 지정 특성 값을 설정하거나 업데이트합니다. |
|
IMetaDataEmit::DefineEvent의 이전 호출에 정의된 이벤트의 지정된 기능을 설정하거나 업데이트합니다. |
|
지정된 토큰에서 참조하는 필드, 메서드 반환 또는 메서드 매개 변수의 PInvoke 마샬링 정보를 설정합니다. |
|
지정한 필드 토큰에서 참조하는 필드의 기본값을 설정하거나 업데이트합니다. |
|
지정한 토큰에서 참조하는 필드의 상대 가상 주소에 대한 전역 변수 값을 설정합니다. |
|
지정한 IUnknown 포인터에서 참조하는 메서드를 토큰 다시 매핑에 대한 알림 콜백으로 설정합니다. |
|
지정한 토큰에서 참조하는 상속된 메서드 구현의 메타데이터 시그니처를 설정하거나 업데이트합니다. |
|
지정한 상대 가상 주소에 저장되어 있고 IMetaDataEmit::DefineMethod의 이전 호출에 정의된 메서드의 기능을 설정하거나 업데이트합니다. |
|
IMetaDataEmit::DefineModuleRef의 이전 호출로 정의된 모듈에 대한 참조를 업데이트합니다. |
|
이전 IMetaDataEmit::DefineParam 호출에서 정의된 메서드 매개 변수의 기능을 설정하거나 변경합니다. |
|
IMetaDataEmit::DefineMemberRef의 이전 호출에 정의된 멤버를 IMetaDataEmit::DefineTypeDef의 이전 호출에 정의된 형식의 멤버로 설정합니다. |
|
이전에 IMetaDataEmit::DefinePermissionSet을 호출하여 정의된 권한 집합의 메타데이터 시그니처 기능을 설정하거나 업데이트합니다. |
|
이전 IMetaDataEmit::DefinePinvokeMap 호출에서 정의된 대로 메서드의 PInvoke 시그니처 기능을 설정하거나 변경합니다. |
|
IMetaDataEmit::DefineProperty의 이전 호출에 정의된 속성에 대해 메타데이터에 저장된 기능을 설정합니다. |
|
지정한 메서드의 상대 가상 주소를 설정합니다. |
|
IMetaDataEmit::DefineTypeDef의 이전 호출에 정의된 형식의 기능을 설정합니다. |
|
어셈블리를 현재 범위로 가져오고 병합된 범위에 대한 새 메타데이터 시그니처를 가져옵니다. |
요구 사항
플랫폼:.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