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 |
---|---|
Atualiza o escopo do assembly corrente com as alterações feitas no especificado pImport. |
|
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. |
|
Cria uma definição de um evento com a assinatura de metadados especificado e obtém um token a definição desse evento. |
|
Cria uma definição de um campo com a assinatura de metadados especificado e obtém um token a definição desse campo. |
|
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. |
|
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. |
|
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. |
|
Cria uma definição para um método com a assinatura especificada e retorna um token a definição desse método. |
|
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. |
|
Cria a assinatura de metadados para um módulo com o nome especificado. |
|
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. |
|
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. |
|
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. |
|
Define os recursos da assinatura do método referenciada pelo token especificado PInvoke. |
|
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. |
|
Cria um conjunto de permissões de segurança para anexar ao objeto referenciado pelo token especificado. |
|
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. |
|
Obtém um metadados token para um tipo definido em outro módulo fora do escopo corrente. |
|
Obtém um metadados token para a seqüência de caracteres literal especificada. |
|
Destrói a assinatura de metadados de layout de classe para o tipo referenciada pelo token especificado. |
|
Destrói PInvoke marshaling de assinatura de metadados para o objeto referenciada pelo token especificado. |
|
Destrói o PInvoke mapeamento metadados do objeto referenciado pelo token especificado. |
|
Exclui o token especificado do escopo de metadados corrente. |
|
Obtém o binário dimensionar estimado do assembly no escopo corrente. |
|
Obtém um token para a assinatura de metadados especificado. |
|
Obtém um metadados token para o tipo com a assinatura de metadados especificado. |
|
Adiciona o escopo especificado importado à lista dos escopos a serem mesclados. |
|
Mesclagens dentro do escopo corrente os escopos de metadados especificado por um ou mais chamadas anteriores para IMetaDataEmit::Merge. |
|
Salva todos os metadados no escopo corrente para o arquivo no endereço especificado. |
|
Salva todos os metadados no escopo corrente para a área especificada da memória. |
|
Salva todos os metadados no escopo corrente como a especificadoIStream. |
|
Define ou atualiza a assinatura de layout de classe de um tipo definido por uma telefonar anterior ao IMetaDataEmit::DefineTypeDef. |
|
Define ou atualiza o valor de um atributo personalizado definido por uma telefonar anterior ao IMetaDataEmit::DefineCustomAttribute. |
|
Define ou atualiza o recurso especificado de um evento definido por uma telefonar anterior ao IMetaDataEmit::DefineEvent. |
|
Define o PInvoke informações para o parâmetro de campo, método de retorno ou método referenciada pelo token especificado de marshaling. |
|
Define ou atualiza o valor padrão para o campo referenciado pelo token de campo especificado. |
|
Define um valor de variável global para o endereço virtual relativo do campo referenciado pelo token especificado. |
|
Define o método referenciado pelo especificadoIUnknown ponteiro sistema autônomo um retorno de chamada de notificação para remapeamentos token. |
|
Define ou atualiza a assinatura de metadados de implementação do método herdado referenciada pelo token especificado. |
|
Define ou atualiza o recurso, armazenado no endereço virtual relativo especificado, de um método definido por uma telefonar anterior ao IMetaDataEmit::DefineMethod. |
|
Atualiza as referências a um módulo definido por uma telefonar anterior ao IMetaDataEmit::DefineModuleRef. |
|
Define ou altera os recursos de um parâmetro do método que foi definida por uma telefonar anterior ao IMetaDataEmit::DefineParam. |
|
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. |
|
Define ou atualiza os recursos da assinatura de metadados de um conjunto de permissões definido por uma telefonar anterior ao IMetaDataEmit::DefinePermissionSet. |
|
Define ou altera sistema autônomo recursos de assinatura de PInvoke do método, conforme definido por uma telefonar anterior ao IMetaDataEmit::DefinePinvokeMap. |
|
Define os recursos armazenados em metadados para uma propriedade definida por uma telefonar anterior ao IMetaDataEmit::DefineProperty. |
|
Define o endereço virtual relativo do método especificado. |
|
Define os recursos de um tipo definido por uma telefonar anterior ao IMetaDataEmit::DefineTypeDef. |
|
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