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 |
---|---|
Met à jour la portée de l'assembly actuelle avec les modifications apportées au pImport spécifié. |
|
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é. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Crée la signature de métadonnées pour un module avec le nom spécifié. |
|
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. |
|
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. |
|
Crée une définition de jeu d'autorisations avec la signature de métadonnées spécifiée et lui obtient un jeton. |
|
Définit les fonctionnalités de la signature PInvoke de la méthode référencée par le jeton spécifié. |
|
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é. |
|
Crée un jeu d'autorisations de sécurité à joindre à l'objet référencé par le jeton spécifié. |
|
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. |
|
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. |
|
Obtient un jeton de métadonnées pour la chaîne littérale spécifiée. |
|
Détruit la signature des métadonnées de disposition de la classe pour le type référencé par le jeton spécifié. |
|
Détruit la signature des métadonnées de marshaling de PInvoke pour l'objet référencé par le jeton spécifié. |
|
Détruit les métadonnées de mappage de PInvoke pour l'objet référencé par le jeton spécifié. |
|
Supprime le jeton spécifié de la portée de métadonnées actuelle. |
|
Obtient la taille binaire estimée de l'assembly dans la portée actuelle. |
|
Obtient un jeton pour la signature de métadonnées spécifiée. |
|
Obtient un jeton de métadonnées pour le type avec la signature de métadonnées spécifiée. |
|
Ajoute la portée importée spécifiée à la liste de portées à fusionner. |
|
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. |
|
Enregistre toutes les métadonnées de la portée actuelle dans le fichier à l'adresse spécifiée. |
|
Enregistre tous les métadonnées de la portée actuelle dans la zone de mémoire spécifiée. |
|
Enregistre toutes les métadonnées dans la portée actuelle dans l'IStream spécifié. |
|
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. |
|
Définit ou met à jour la valeur d'un attribut personnalisé défini par un appel antérieur à IMetaDataEmit::DefineCustomAttribute. |
|
Définit ou met à jour la fonctionnalité spécifiée d'un événement définie par un appel préalable à IMetaDataEmit::DefineEvent. |
|
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é. |
|
Définit ou met à jour la valeur par défaut pour le champ référencé par le jeton de champ spécifié. |
|
Définit une valeur de variable globale pour l'adresse virtuelle relative du champ référencé par le jeton spécifié. |
|
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. |
|
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é. |
|
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. |
|
Met à jour les références à un module défini par un appel antérieur à IMetaDataEmit::DefineModuleRef. |
|
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. |
|
É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. |
|
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. |
|
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. |
|
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. |
|
Définit l'adresse virtuelle relative de la méthode spécifiée. |
|
Définit les fonctionnalités d'un type définies par un appel antérieur à IMetaDataEmit::DefineTypeDef. |
|
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