Compartilhar via


Interface IMetaDataEmit

Fornece métodos para criar, modificar e salvar metadados sobre o assembly no escopo definido no momento. Os metadados podem ser armazenados na memória ou salvos em 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

Descrição

Método IMetaDataEmit::ApplyEditAndContinue

Atualiza o escopo do assembly corrente com as alterações feitas no especificado pImport.

Método IMetaDataEmit::DefineCustomAttribute

Cria uma definição para um atributo personalizado com a assinatura de metadados especificado sejam anexadas ao objeto especificado e obtém um token a definição desse atributo personalizado.

Método IMetaDataEmit::DefineEvent

Cria uma definição de um evento com a assinatura de metadados especificado e obtém um token a definição desse evento.

Método IMetaDataEmit::DefineField

Cria uma definição de um campo com a assinatura de metadados especificado e obtém um token a definição desse campo.

Método IMetaDataEmit::DefineImportMember

Cria uma definição de um membro de um tipo definido em um módulo de fora do escopo corrente e obtém um token para essa definição de referência.

Método IMetaDataEmit::DefineImportType

Cria uma definição para uma referência a um tipo definido em um módulo de fora do escopo corrente e obtém um token a definição desse referência.

Método IMetaDataEmit::DefineMemberRef

Cria uma definição para uma referência a um membro de um módulo de fora do escopo corrente e obtém um token a definição desse referência.

Método IMetaDataEmit::DefineMethod

Cria uma definição para um método com a assinatura especificada e retorna um token a definição desse método.

Método IMetaDataEmit::DefineMethodImpl

Cria uma definição para implementação de um método herdado de uma interface e retorna um token a definição desse método implementação.

Método IMetaDataEmit::DefineModuleRef

Cria a assinatura de metadados para um módulo com o nome especificado.

Método IMetaDataEmit::DefineNestedType

Cria a assinatura de metadados de uma definição de tipo e retorna um mdTypeDef token para esse tipo, além disso, especificando que o tipo definido é membro do tipo referenciado por tdEncloser.

Método IMetaDataEmit::DefineParam

Cria uma definição de parâmetro com a assinatura especificada para o método referenciada pelo token especificado e obtém um token para a definição desse parâmetro.

Método IMetaDataEmit::DefinePermissionSet

Cria uma definição de permissão definido com a assinatura de metadados especificado e obtém um token a definição desse conjunto de permissão.

Método IMetaDataEmit::DefinePinvokeMap

Define os recursos da assinatura do método referenciada pelo token especificado PInvoke.

Método IMetaDataEmit::DefineProperty

Cria uma definição de propriedade para o tipo especificado, com o especificado get e set acessadores de método e obtém um token a definição dessa propriedade.

Método IMetaDataEmit::DefineSecurityAttributeSet

Cria um conjunto de permissões de segurança para anexar ao objeto referenciado pelo token especificado.

Método IMetaDataEmit::DefineTypeDef

Cria uma definição de tipo para um tipo comum de tempo de execução de linguagem e obtém um token de metadados a definição desse tipo.

Método IMetaDataEmit::DefineTypeRefByName

Obtém um metadados token para um tipo definido em outro módulo fora do escopo corrente.

Método IMetaDataEmit::DefineUserString

Obtém um metadados token para a seqüência de caracteres literal especificada.

Método IMetaDataEmit::DeleteClassLayout

Destrói a assinatura de metadados de layout de classe para o tipo referenciada pelo token especificado.

Método IMetaDataEmit::DeleteFieldMarshal

Destrói PInvoke marshaling de assinatura de metadados para o objeto referenciada pelo token especificado.

Método IMetaDataEmit::DeletePinvokeMap

Destrói o PInvoke mapeamento metadados do objeto referenciado pelo token especificado.

Método IMetaDataEmit::DeleteToken

Exclui o token especificado do escopo de metadados corrente.

Método IMetaDataEmit::GetSaveSize

Obtém o binário dimensionar estimado do assembly no escopo corrente.

Método IMetaDataEmit::GetTokenFromSig

Obtém um token para a assinatura de metadados especificado.

Método IMetaDataEmit::GetTokenFromTypeSpec

Obtém um metadados token para o tipo com a assinatura de metadados especificado.

Método IMetaDataEmit::mesclagem

Adiciona o escopo especificado importado à lista dos escopos a serem mesclados.

Método IMetaDataEmit::MergeEnd

Mesclagens dentro do escopo corrente os escopos de metadados especificado por um ou mais chamadas anteriores para IMetaDataEmit::Merge.

Método IMetaDataEmit::salvar

Salva todos os metadados no escopo corrente para o arquivo no endereço especificado.

Método IMetaDataEmit::SaveToMemory

Salva todos os metadados no escopo corrente para a área especificada da memória.

Método IMetaDataEmit::SaveToStream

Salva todos os metadados no escopo corrente como a especificadoIStream.

Método IMetaDataEmit::SetClassLayout

Define ou atualiza a assinatura de layout de classe de um tipo definido por uma telefonar anterior ao IMetaDataEmit::DefineTypeDef.

Método IMetaDataEmit::SetCustomAttributeValue

Define ou atualiza o valor de um atributo personalizado definido por uma telefonar anterior ao IMetaDataEmit::DefineCustomAttribute.

Método IMetaDataEmit::SetEventProps

Define ou atualiza o recurso especificado de um evento definido por uma telefonar anterior ao IMetaDataEmit::DefineEvent.

Método IMetaDataEmit::SetFieldMarshal

Define o PInvoke informações para o parâmetro de campo, método de retorno ou método referenciada pelo token especificado de marshaling.

Método IMetaDataEmit::SetFieldProps

Define ou atualiza o valor padrão para o campo referenciado pelo token de campo especificado.

Método IMetaDataEmit::SetFieldRVA

Define um valor de variável global para o endereço virtual relativo do campo referenciado pelo token especificado.

Método IMetaDataEmit::SetHandler

Define o método referenciado pelo especificadoIUnknown ponteiro sistema autônomo um retorno de chamada de notificação para remapeamentos token.

Método IMetaDataEmit::SetMethodImplFlags

Define ou atualiza a assinatura de metadados de implementação do método herdado referenciada pelo token especificado.

Método IMetaDataEmit::SetMethodProps

Define ou atualiza o recurso, armazenado no endereço virtual relativo especificado, de um método definido por uma telefonar anterior ao IMetaDataEmit::DefineMethod.

Método IMetaDataEmit::SetModuleProps

Atualiza as referências a um módulo definido por uma telefonar anterior ao IMetaDataEmit::DefineModuleRef.

Método IMetaDataEmit::SetParamProps

Define ou altera os recursos de um parâmetro do método que foi definida por uma telefonar anterior ao IMetaDataEmit::DefineParam.

Método IMetaDataEmit::SetParent

Estabelece que o membro especificado, conforme definido por uma telefonar anterior a IMetaDataEmit::DefineMemberRef, é membro do tipo especificado, conforme definido por uma telefonar anterior ao IMetaDataEmit::DefineTypeDef.

Método IMetaDataEmit::SetPermissionSetProps

Define ou atualiza os recursos da assinatura de metadados de um conjunto de permissões definido por uma telefonar anterior ao IMetaDataEmit::DefinePermissionSet.

Método IMetaDataEmit::SetPinvokeMap

Define ou altera sistema autônomo recursos de assinatura de PInvoke do método, conforme definido por uma telefonar anterior ao IMetaDataEmit::DefinePinvokeMap.

Método IMetaDataEmit::SetPropertyProps

Define os recursos armazenados em metadados para uma propriedade definida por uma telefonar anterior ao IMetaDataEmit::DefineProperty.

Método IMetaDataEmit::SetRVA

Define o endereço virtual relativo do método especificado.

Método IMetaDataEmit::SetTypeDefProps

Define os recursos de um tipo definido por uma telefonar anterior ao IMetaDataEmit::DefineTypeDef.

Método IMetaDataEmit::TranslateSigWithScope

Importa um assembly para o escopo corrente e obtém uma nova assinatura de metadados para o escopo mesclado.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: Cor.h

Biblioteca: Usado sistema autônomo um recurso em MsCorEE.dll

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

Consulte também

Referência

Interface IMetaDataEmit2

Outros recursos

Interfaces de metadados