مشاركة عبر


واجهة IMetaDataEmit

Provides وظائف إلى إنشاء, تعديل, و حفظ بيانات التعريف حول the تجميع في the currently defined نطاق. The بيانات التعريف can be stored في ذاكرة أو تم الحفظ إلى قرص.

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 
    );
    
};

الأساليب

Method

الوصف

أسلوب IMetaDataEmit::ApplyEditAndContinue

تحديثات the الحالي تجميع نطاق مع the التغييرات made في the specified pImport.

أسلوب IMetaDataEmit::DefineCustomAttribute

Creates a تعريف for a مخصص سمة مع the specified بيانات التعريف توقيع, إلى be attached إلى the specified كائن, و gets a token إلى that مخصص سمة تعريف.

أسلوب IMetaDataEmit::DefineEvent

Creates a تعريف for an حدث مع the specified بيانات التعريف توقيع, و gets a token إلى that حدث تعريف.

أسلوب IMetaDataEmit::DefineField

Creates a تعريف for a حقل مع the specified بيانات التعريف توقيع, و gets a token إلى that حقل تعريف.

أسلوب IMetaDataEmit::DefineImportMember

Creates a تعريف for a عضو of a نوع that هو defined في a وحدة نمطية? outside the الحالي نطاق, و gets a token for that مرجع تعريف.

أسلوب IMetaDataEmit::DefineImportType

Creates a تعريف for a مرجع إلى a نوع that هو defined في a وحدة نمطية? outside the الحالي نطاق, و gets a token إلى that مرجع تعريف.

أسلوب IMetaDataEmit::DefineMemberRef

قم بإنشاء تعريف لمرجع إلى عضو في وحدة نمطية خارج النطاق الحالي، ويحصل على رمز مميز لآلتي تشير إلى تعريف.

أسلوب IMetaDataEmit::DefineMethod

قم بإنشاء تعريف لأسلوب باستخدام توقيع محدد، و إرجاع على رمز مميز لتعريف الأسلوب هذا.

أسلوب IMetaDataEmit::DefineMethodImpl

قم بإنشاء تعريف لتطبيق أسلوب موروثة من واجهة، وتقوم بإرجاع رمز مميز لتعريف تطبيق الأسلوب هذا.

أسلوب IMetaDataEmit::DefineModuleRef

قم بإنشاء توقيع بيانات التعريف لوحدة نمطية بالاسم المحدد.

أسلوب IMetaDataEmit::DefineNestedType

إنشاء توقيع بيانات التعريف لتعريف نوع ويرجع mdTypeDefالرمز المميز لهذا النوع، بالإضافة إلى ذلك يحدد نوع المعرف عضو في النوع المشار إليه بواسطة tdEncloser.

أسلوب IMetaDataEmit::DefineParam

Creates a معلمة تعريف مع the specified توقيع for the أسلوب مشار إليها بواسطة the specified token, و gets a token for that معلمة تعريف.

أسلوب IMetaDataEmit::DefinePermissionSet

إنشاء تعريف إذن تعيين توقيع بيانات التعريف المحددة، ويحصل على رمز مميز للذي إذن تعيين تعريف.

أسلوب IMetaDataEmit::DefinePinvokeMap

قم بتعيين ميزات توقيع PInvoke أسلوب المشار إليه بواسطة الرمز المميز المحدد.

أسلوب IMetaDataEmit::DefineProperty

Creates a خاصية تعريف for the specified نوع, مع the specified get و set أسلوب accessors, و gets a token إلى that خاصية تعريف.

أسلوب IMetaDataEmit::DefineSecurityAttributeSet

Creates a التعيين of الأمان أذونات إلى يرفق إلى the كائن مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::DefineTypeDef

Creates a نوع تعريف for a وقت تشغيل اللغة العامة نوع, و gets a بيانات التعريف token إلى that نوع تعريف.

أسلوب IMetaDataEmit::DefineTypeRefByName

Gets a بيانات التعريف token for a نوع that هو defined في another وحدة نمطية? outside the الحالي نطاق.

أسلوب IMetaDataEmit::DefineUserString

Gets a بيانات التعريف token for the specified قيمة حرفية سلسلة.

أسلوب IMetaDataEmit::DeleteClassLayout

Destroys the فئة تخطيط بيانات التعريف توقيع for the نوع مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::DeleteFieldMarshal

Destroys the PInvoke التنظيم والإرسال بيانات التعريف توقيع for the كائن مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::DeletePinvokeMap

Destroys the PInvoke mapping بيانات التعريف for the كائن مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::DeleteToken

Deletes the specified token من the الحالي بيانات التعريف نطاق.

أسلوب IMetaDataEmit::GetSaveSize

Gets the estimated ثنائي الحجم of the تجميع في the الحالي نطاق.

أسلوب IMetaDataEmit::GetTokenFromSig

Gets a token for the specified بيانات التعريف توقيع.

أسلوب IMetaDataEmit::GetTokenFromTypeSpec

Gets a بيانات التعريف token for the نوع مع the specified بيانات التعريف توقيع.

أسلوب IMetaDataEmit::دمج

Adds the specified imported نطاق إلى the قائمة of scopes إلى be merged.

أسلوب IMetaDataEmit::MergeEnd

Merges في the الحالي نطاق الجميع the بيانات التعريف scopes specified بواسطة واحد أو المزيد prior calls إلى IMetaDataEmit::Merge.

أسلوب IMetaDataEmit::حفظ

Saves الجميع بيانات التعريف في the الحالي نطاق إلى the ملف at the specified العنوان.

أسلوب IMetaDataEmit::SaveToMemory

Saves الجميع بيانات التعريف في the الحالي نطاق إلى the specified مساحة of ذاكرة.

أسلوب IMetaDataEmit::SaveToStream

Saves الجميع بيانات التعريف في the الحالي نطاق إلى the specified IStream.

أسلوب IMetaDataEmit::SetClassLayout

Sets أو تحديثات the فئة تخطيط توقيع of a نوع defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineTypeDef.

أسلوب IMetaDataEmit::SetCustomAttributeValue

Sets أو تحديثات the القيمة of a مخصص سمة defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineCustomAttribute.

أسلوب IMetaDataEmit::SetEventProps

Sets أو تحديثات the specified ميزة of an حدث defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineEvent.

أسلوب IMetaDataEmit::SetFieldMarshal

Sets the PInvoke التنظيم والإرسال معلومات for the حقل, أسلوب return, أو أسلوب معلمة مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::SetFieldProps

Sets أو تحديثات the القيمة افتراضية for the حقل مشار إليها بواسطة the specified حقل token.

أسلوب IMetaDataEmit::SetFieldRVA

Sets a متغيّر عمومي القيمة for the نسبي ظاهري العنوان of the حقل مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::SetHandler

Sets the أسلوب مشار إليها بواسطة the specified IUnknown مؤشر كـ a إعلام callback for token remaps.

أسلوب IMetaDataEmit::SetMethodImplFlags

Sets أو تحديثات the بيانات التعريف توقيع of the inherited أسلوب implementation مشار إليها بواسطة the specified token.

أسلوب IMetaDataEmit::SetMethodProps

Sets أو تحديثات the ميزة, stored at the specified نسبي ظاهري العنوان, of a أسلوب defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineMethod.

أسلوب IMetaDataEmit::SetModuleProps

تحديثات مراجع إلى a وحدة نمطية? defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineModuleRef.

أسلوب IMetaDataEmit::SetParamProps

Sets أو التغييرات features of a أسلوب معلمة that was defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineParam.

أسلوب IMetaDataEmit::SetParent

Establishes that the specified عضو, كـ defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineMemberRef, هو a عضو of the specified نوع, كـ defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineTypeDef.

أسلوب IMetaDataEmit::SetPermissionSetProps

Sets أو تحديثات features of the بيانات التعريف توقيع of a إذن التعيين defined بواسطة a prior يتصل إلى IMetaDataEmit::DefinePermissionSet.

أسلوب IMetaDataEmit::SetPinvokeMap

Sets أو التغييرات features of a أسلوب's PInvoke توقيع, كـ defined بواسطة a prior يتصل إلى IMetaDataEmit::DefinePinvokeMap.

أسلوب IMetaDataEmit::SetPropertyProps

Sets the features stored في بيانات التعريف for a خاصية defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineProperty.

أسلوب IMetaDataEmit::SetRVA

Sets the نسبي ظاهري العنوان of the specified أسلوب.

أسلوب IMetaDataEmit::SetTypeDefProps

Sets features of a نوع defined بواسطة a prior يتصل إلى IMetaDataEmit::DefineTypeDef.

أسلوب IMetaDataEmit::TranslateSigWithScope

Imports an تجميع في the الحالي نطاق و gets a جديد بيانات التعريف توقيع for the merged نطاق.

المتطلبات

الأنظمة الأساسية: See متطلبات النظام إطار عمل .NET.

**Header:**Cor.h

**المكتبة:**يستخدم كـ مورد في MsCorEE.dll

.NET Framework Versions: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

راجع أيضًا:

المرجع

واجهة IMetaDataEmit2

موارد أخرى

بيانات التعريف الواجهات