Partager via


IMetaDataEmit

Mise à jour : novembre 2007

Fournit des méthodes destinées à créer, modifier et enregistrer les métadonnées à propos de l'assembly dans la portée actuellement définie. Les métadonnées peuvent être stockées en mémoire ou enregistrées sur le disque.

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

Méthodes

Méthode

Description

IMetaDataEmit::ApplyEditAndContinue, méthode

Met à jour la portée de l'assembly actuelle avec les modifications apportées au pImport spécifié.

IMetaDataEmit::DefineCustomAttribute, méthode

Crée une définition pour un attribut personnalisé avec la signature de métadonnées spécifiée, à joindre à l'objet spécifié et obtient un jeton pour cette définition d'attribut personnalisé.

IMetaDataEmit::DefineEvent, méthode

Crée une définition pour un événement avec la signature de métadonnées spécifiée et obtient un jeton désignant cette définition d'événement.

IMetaDataEmit::DefineField, méthode

Crée une définition pour un champ avec la signature de métadonnées spécifiée et obtient un jeton pour cette définition de champ.

IMetaDataEmit::DefineImportMember, méthode

Crée une définition pour un membre d'un type qui est défini dans un module à l'extérieur de la portée actuelle, et obtient un jeton pour cette définition de référence.

IMetaDataEmit::DefineImportType, méthode

Crée une définition pour une référence à un type qui est défini dans un module à l'extérieur de la portée actuelle et apporte un jeton à cette définition de référence.

IMetaDataEmit::DefineMemberRef, méthode

Crée une définition pour une référence à un membre d'un module à l'extérieur de la portée actuelle et obtient un jeton vers cette définition de référence.

IMetaDataEmit::DefineMethod, méthode

Crée la définition d'une méthode avec la signature spécifiée et retourne un jeton pour cette définition de méthode.

IMetaDataEmit::DefineMethodImpl, méthode

Crée une définition pour l'implémentation d'une méthode héritée d'une interface et retourne un jeton pour cette définition d'implémentation de méthode.

IMetaDataEmit::DefineModuleRef, méthode

Crée la signature de métadonnées pour un module avec le nom spécifié.

IMetaDataEmit::DefineNestedType, méthode

Crée la signature de métadonnées d'une définition de type et retourne un jeton mdTypeDef pour ce type, en spécifiant en outre que le type défini est un membre du type référencé par tdEncloser.

IMetaDataEmit::DefineParam, méthode

Crée une définition de paramètre avec la signature spécifiée pour la méthode référencée par le jeton spécifié, et obtient un jeton pour cette définition de paramètre.

IMetaDataEmit::DefinePermissionSet, méthode

Crée une définition de jeu d'autorisations avec la signature de métadonnées spécifiée et lui obtient un jeton.

IMetaDataEmit::DefinePinvokeMap, méthode

Définit les fonctionnalités de la signature PInvoke de la méthode référencée par le jeton spécifié.

IMetaDataEmit::DefineProperty, méthode

Crée une définition de propriété pour le type spécifié, avec les accesseurs de méthode get et set spécifiés et obtient un jeton pour cette définition de propriété.

IMetaDataEmit::DefineSecurityAttributeSet, méthode

Crée un jeu d'autorisations de sécurité à joindre à l'objet référencé par le jeton spécifié.

IMetaDataEmit::DefineTypeDef, méthode

Crée une définition de type pour un type de Common Language Runtime, et obtient un jeton de métadonnées désignant cette définition de type.

IMetaDataEmit::DefineTypeRefByName, méthode

Obtient un jeton de métadonnées pour un type qui est défini dans un autre module à l'extérieur de la portée actuelle.

IMetaDataEmit::DefineUserString, méthode

Obtient un jeton de métadonnées pour la chaîne littérale spécifiée.

IMetaDataEmit::DeleteClassLayout, méthode

Détruit la signature des métadonnées de disposition de la classe pour le type référencé par le jeton spécifié.

IMetaDataEmit::DeleteFieldMarshal, méthode

Détruit la signature des métadonnées de marshaling de PInvoke pour l'objet référencé par le jeton spécifié.

IMetaDataEmit::DeletePinvokeMap, méthode

Détruit les métadonnées de mappage de PInvoke pour l'objet référencé par le jeton spécifié.

IMetaDataEmit::DeleteToken, méthode

Supprime le jeton spécifié de la portée de métadonnées actuelle.

IMetaDataEmit::GetSaveSize, méthode

Obtient la taille binaire estimée de l'assembly dans la portée actuelle.

IMetaDataEmit::GetTokenFromSig, méthode

Obtient un jeton pour la signature de métadonnées spécifiée.

IMetaDataEmit::GetTokenFromTypeSpec, méthode

Obtient un jeton de métadonnées pour le type avec la signature de métadonnées spécifiée.

IMetaDataEmit::Merge, méthode

Ajoute la portée importée spécifiée à la liste de portées à fusionner.

IMetaDataEmit::MergeEnd, méthode

Fusionne dans la portée actuelle toutes les portées de métadonnées spécifiées par un ou plusieurs appels précédents à IMetaDataEmit::Merge.

IMetaDataEmit::Save, méthode

Enregistre toutes les métadonnées de la portée actuelle dans le fichier à l'adresse spécifiée.

IMetaDataEmit::SaveToMemory, méthode

Enregistre tous les métadonnées de la portée actuelle dans la zone de mémoire spécifiée.

IMetaDataEmit::SaveToStream, méthode

Enregistre toutes les métadonnées dans la portée actuelle dans l'IStream spécifié.

IMetaDataEmit::SetClassLayout, méthode

Définit ou met à jour la signature de présentation de la classe d'un type définie par un appel précédent à IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::SetCustomAttributeValue, méthode

Définit ou met à jour la valeur d'un attribut personnalisé défini par un appel antérieur à IMetaDataEmit::DefineCustomAttribute.

IMetaDataEmit::SetEventProps, méthode

Définit ou met à jour la fonctionnalité spécifiée d'un événement définie par un appel préalable à IMetaDataEmit::DefineEvent.

IMetaDataEmit::SetFieldMarshal, méthode

Définit les informations de marshaling de PInvoke pour le champ, le retour de méthode ou le paramètre de méthode référencé par le jeton spécifié.

IMetaDataEmit::SetFieldProps, méthode

Définit ou met à jour la valeur par défaut pour le champ référencé par le jeton de champ spécifié.

IMetaDataEmit::SetFieldRVA, méthode

Définit une valeur de variable globale pour l'adresse virtuelle relative du champ référencé par le jeton spécifié.

IMetaDataEmit::SetHandler, méthode

Définit la méthode référencée par le pointeur IUnknown spécifié en tant que notification de rappel pour les remappages du jeton.

IMetaDataEmit::SetMethodImplFlags, méthode

Définit ou met à jour la signature de métadonnées de l'implémentation de méthode héritée référencée par le jeton spécifié.

IMetaDataEmit::SetMethodProps, méthode

Définit ou met à jour la fonctionnalité, stockée à l'adresse virtuelle relative spécifiée, d'une méthode définie par un appel antérieur à IMetaDataEmit::DefineMethod.

IMetaDataEmit::SetModuleProps, méthode

Met à jour les références à un module défini par un appel antérieur à IMetaDataEmit::DefineModuleRef.

IMetaDataEmit::SetParamProps, méthode

Définit ou modifie les fonctionnalités d'un paramètre de méthode qui a été défini par un appel antérieur à IMetaDataEmit::DefineParam.

IMetaDataEmit::SetParent, méthode

Établit que le membre spécifié, tel que défini par un appel préalable à IMetaDataEmit::DefineMemberRef, est un membre du type spécifié, tel que défini par un appel préalable à IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::SetPermissionSetProps, méthode

Définit ou met à jour les fonctionnalités de la signature de métadonnées d'un jeu d'autorisations défini par un appel antérieur à IMetaDataEmit::DefinePermissionSet.

IMetaDataEmit::SetPinvokeMap, méthode

Définit ou modifie les fonctionnalités de la signature PInvoke d'une méthode, comme défini par un appel antérieur à IMetaDataEmit::DefinePinvokeMap.

IMetaDataEmit::SetPropertyProps, méthode

Définit les fonctionnalités stockées dans les métadonnées pour une propriété définie par un appel antérieur à IMetaDataEmit::DefineProperty.

IMetaDataEmit::SetRVA, méthode

Définit l'adresse virtuelle relative de la méthode spécifiée.

IMetaDataEmit::SetTypeDefProps, méthode

Définit les fonctionnalités d'un type définies par un appel antérieur à IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::TranslateSigWithScope, méthode

Importe un assembly dans la portée actuelle et reçoit une nouvelle signature de métadonnées pour la portée fusionnée.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : Cor.h

Bibliothèque : utilisée en tant que ressource dans MsCorEE.dll

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

Voir aussi

Référence

IMetaDataEmit2

Autres ressources

Interfaces de métadonnées