Compartir a través de


IMetaDataEmit

Actualización: noviembre 2007

Proporciona métodos para crear, modificar y guardar metadatos sobre el ensamblado del ámbito definido actualmente. Los metadatos se pueden almacenar en memoria o guardar en el disco.

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étodos

Método

Descripción

IMetaDataEmit::ApplyEditAndContinue (Método)

Actualiza el ámbito de ensamblado actual con los cambios realizados en el parámetro pImport especificado.

IMetaDataEmit::DefineCustomAttribute (Método)

Crea una definición para un atributo personalizado con la firma de metadatos especificada para asociarla al objeto especificado, y obtiene un símbolo (token) a esa definición de atributo personalizado.

IMetaDataEmit::DefineEvent (Método)

Crea una definición para un evento con la firma de metadatos especificada y obtiene un símbolo (token) para dicha definición de evento.

IMetaDataEmit::DefineField (Método)

Crea una definición para un campo con la firma de metadatos especificada y obtiene un símbolo (token) a dicha definición.

IMetaDataEmit::DefineImportMember (Método)

Crea una definición para un miembro de un tipo que está definido en un módulo fuera del ámbito actual, y obtiene un símbolo (token) para dicha definición de referencia.

IMetaDataEmit::DefineImportType (Método)

Crea una definición para una referencia a un tipo definido en un módulo fuera del ámbito actual, y obtiene un símbolo (token) a dicha definición de referencia.

IMetaDataEmit::DefineMemberRef (Método)

Crea una definición para una referencia a un miembro de un módulo fuera del ámbito actual, y obtiene un símbolo (token) a esa definición de referencia.

IMetaDataEmit::DefineMethod (Método)

Crea una definición para un método con la firma especificada y devuelve un símbolo (token) a dicha definición.

IMetaDataEmit::DefineMethodImpl (Método)

Crea una definición para la implementación de un método heredada de una interfaz y devuelve un símbolo (token) a dicha definición.

IMetaDataEmit::DefineModuleRef (Método)

Crea la firma de metadatos para un módulo con el nombre especificado.

IMetaDataEmit::DefineNestedType (Método)

Crea la firma de metadatos de una definición de tipo y devuelve un símbolo (token) mdTypeDef para dicho tipo; de forma adicional, permite especificar que el tipo definido es un miembro del tipo al que hace referencia tdEncloser.

IMetaDataEmit::DefineParam (Método)

Crea una definición de parámetro con la firma especificada para el método al que hace referencia el símbolo (token) especificado y obtiene un símbolo (token) para dicha definición.

IMetaDataEmit::DefinePermissionSet (Método)

Crea una definición para un conjunto de permisos con la firma de metadatos especificada, y obtiene un símbolo (token) a dicha definición de conjunto de permisos.

IMetaDataEmit::DefinePinvokeMap (Método)

Establece las funciones de la firma PInvoke del método al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::DefineProperty (Método)

Crea una definición de propiedad para el tipo especificado, con los descriptores de acceso de los métodos get y set especificados, y obtiene un símbolo (token) a dicha definición.

IMetaDataEmit::DefineSecurityAttributeSet (Método)

Crea un conjunto de permisos de seguridad para asociarlos al objeto al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::DefineTypeDef (Método)

Crea una definición de tipos para un tipo de Common Language Runtime y obtiene un símbolo (token) de metadatos para dicha definición.

IMetaDataEmit::DefineTypeRefByName (Método)

Obtiene un símbolo (token) de metadatos para un tipo que está definido en otro módulo fuera del ámbito actual.

IMetaDataEmit::DefineUserString (Método)

Obtiene un símbolo (token) de metadatos para la cadena literal especificada.

IMetaDataEmit::DeleteClassLayout (Método)

Destruye la firma de metadatos del diseño de clase para el tipo al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::DeleteFieldMarshal (Método)

Destruye la firma de metadatos de cálculo de referencias PInvoke para el objeto al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::DeletePinvokeMap (Método)

Destruye los metadatos de asignación de PInvoke para el objeto al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::DeleteToken (Método)

Elimina el símbolo (token) especificado del ámbito de metadatos actual.

IMetaDataEmit::GetSaveSize (Método)

Obtiene el tamaño binario estimado del ensamblado en el ámbito actual.

IMetaDataEmit::GetTokenFromSig (Método)

Obtiene un símbolo (token) para la firma de metadatos especificada.

IMetaDataEmit::GetTokenFromTypeSpec (Método)

Obtiene un símbolo (token) de metadatos para el tipo con la firma de metadatos especificada.

IMetaDataEmit::Merge (Método)

Agrega el ámbito importado especificado a la lista de ámbitos que se va a combinar.

IMetaDataEmit::MergeEnd (Método)

Combina en el ámbito actual todos los ámbitos de los metadatos especificados por una o varias llamadas previas a IMetaDataEmit::Merge.

IMetaDataEmit::Save (Método)

Guarda todos los metadatos del ámbito actual en el archivo con la dirección especificada.

IMetaDataEmit::SaveToMemory (Método)

Guarda todos los metadatos del ámbito actual en el área especificada de memoria.

IMetaDataEmit::SaveToStream (Método)

Guarda todos los metadatos del ámbito actual en la instancia de IStream especificada.

IMetaDataEmit::SetClassLayout (Método)

Establece o actualiza la firma de diseño de clase de un tipo definido por una llamada anterior a IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::SetCustomAttributeValue (Método)

Establece o actualiza el valor de un atributo personalizado definido por una llamada anterior a IMetaDataEmit::DefineCustomAttribute.

IMetaDataEmit::SetEventProps (Método)

Establece o actualiza la característica especificada de un evento definido mediante una llamada previa a IMetaDataEmit::DefineEvent.

IMetaDataEmit::SetFieldMarshal (Método)

Establece la información sobre el cálculo de referencias de PInvoke para el campo devolución de método o parámetro de método, al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::SetFieldProps (Método)

Establece o actualiza el valor predeterminado para el campo al que hace referencia el símbolo (token) de campo especificado.

IMetaDataEmit::SetFieldRVA (Método)

Establece un valor de variable global para la dirección virtual relativa del campo al que hace referencia el símbolo (token) especificado.

IMetaDataEmit::SetHandler (Método)

Establece el método al que hace referencia el puntero IUnknown especificado como devolución de llamada de notificación para las reasignaciones de símbolos (tokens).

IMetaDataEmit::SetMethodImplFlags (Método)

Establece o actualiza la firma de metadatos de la implementación de método heredada a la que hace referencia el símbolo (token) especificado.

IMetaDataEmit::SetMethodProps (Método)

Establece o actualiza la función, almacenada en la dirección virtual relativa especificada, de un método definido por una llamada anterior a IMetaDataEmit::DefineMethod.

IMetaDataEmit::SetModuleProps (Método)

Actualiza las referencias a un módulo definido por una llamada anterior a IMetaDataEmit::DefineModuleRef.

IMetaDataEmit::SetParamProps (Método)

Establece o cambia las características de un parámetro de método definido por una llamada anterior a IMetaDataEmit::DefineParam.

IMetaDataEmit::SetParent (Método)

Establece que el miembro especificado, tal como se definió mediante una llamada anterior a IMetaDataEmit::DefineMemberRef, es un miembro del tipo especificado, tal como se definió mediante una llamada anterior a IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::SetPermissionSetProps (Método)

Establece o actualiza las características de la firma de metadatos de un conjunto de permisos definido por una llamada anterior a IMetaDataEmit::DefinePermissionSet.

IMetaDataEmit::SetPinvokeMap (Método)

Establece o cambia las características de la firma PInvoke de un método, tal como se define mediante una llamada anterior a IMetaDataEmit::DefinePinvokeMap.

IMetaDataEmit::SetPropertyProps (Método)

Establece las funciones almacenadas en los metadatos de una propiedad definida por una llamada anterior a IMetaDataEmit::DefineProperty.

IMetaDataEmit::SetRVA (Método)

Establece la dirección virtual relativa del método especificado.

IMetaDataEmit::SetTypeDefProps (Método)

Establece las características de un tipo definido por una llamada anterior a IMetaDataEmit::DefineTypeDef.

IMetaDataEmit::TranslateSigWithScope (Método)

Importa un ensamblado en el ámbito actual y obtiene una nueva firma de metadatos para el ámbito combinado.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: Cor.h

Biblioteca: se usa como recurso en MsCorEE.dll

.NET Framework, versiones: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Vea también

Referencia

IMetaDataEmit2

Otros recursos

Interfaces de metadatos