Compartilhar via


IMetaDataEmit::DefineImportMember Method

Cria uma referência ao membro especificado de um tipo ou módulo definido fora do escopo atual e define um token para essa referência.

Syntax

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

Parameters

pAssemImport [in] Uma interface IMetaDataAssemblyImport que representa o assembly do qual o membro de destino é importado.

pbHashValue [in] Uma matriz que contém o hash do assembly especificado por pAssemImport.

cbHashValue [in] O número de bytes na pbHashValue matriz.

pImport [in] Uma interface IMetaDataImport que representa o escopo de metadados do qual o membro de destino é importado.

mbMember [in] O token de metadados que especifica o membro de destino. O token pode ser um mdMethodDef token (para um método membro), mdProperty (para uma propriedade membro) ou mdFieldDef (para um campo de membro).

pAssemEmit [in] Uma interface IMetaDataAssemblyEmit que representa o assembly no qual o membro de destino é importado.

tkParent [in] O mdTypeRef ou mdModuleRef token para o tipo ou módulo, respectivamente, que possui o membro de destino.

pmr [out] O mdMemberRef token definido no escopo atual para a referência de membro.

Remarks

O DefineImportMember método procura o membro, especificado por mbMember, que é definido em outro escopo, especificado por pImport, e recupera suas propriedades. Ele usa essas informações para chamar o método IMetaDataEmit::D efineMemberRef no escopo atual para criar a referência de membro.

Geralmente, antes de usar o DefineImportMember método, você deve criar, no escopo atual, uma referência de tipo ou referência de módulo para a classe pai, a interface ou o módulo do membro de destino. Em seguida, o token de metadados dessa referência é passado no tkParent argumento. Você não precisa criar uma referência ao pai do membro de destino se ela for resolvida posteriormente pelo compilador ou pelo vinculador. To summarize:

  • Se o membro de destino for um campo ou método, use o método IMetaDataEmit::D efineTypeRefByName ou o método IMetaDataEmit::D efineImportType para criar uma referência de tipo, no escopo atual, para a classe pai ou a interface pai do membro.

  • Se o membro de destino for uma variável global ou uma função global (ou seja, não um membro de uma classe ou interface), use o método IMetaDataEmit::D efineModuleRef para criar uma referência de módulo, no escopo atual, para o módulo pai do membro.

  • Se o pai do membro de destino for resolvido posteriormente pelo compilador ou pelo vinculador, passe mdTokenNiltkParent. O único cenário em que isso se aplica é quando uma função global ou variável global está sendo importada de um arquivo .obj que, em última análise, será vinculado ao módulo atual e aos metadados mesclados.

Requirements

Plataformas: Consulte sistemas operacionais com suporte do .NET.

Header: Cor.h

Library: CorGuids.lib

See also