Compartilhar via


Método ICorProfilerInfo2::GetClassIDInfo2

Obtém o módulo pai da classe genérica especificada e o token de metadados da definição genérica aberta especificada, o ClassID de sua classe pai e o ClassID para cada argumento de tipo, se presente, da classe.

Sintaxe

HRESULT GetClassIDInfo2(  
    [in]  ClassID classId,  
    [out] ModuleID *pModuleId,  
    [out] mdTypeDef *pTypeDefToken,  
    [out] ClassID *pParentClassId,  
    [in]  ULONG32 cNumTypeArgs,  
    [out] ULONG32 *pcNumTypeArgs,  
    [out] ClassID typeArgs[]);  

Parâmetros

classId
[in] A ID Da classe para o qual as informações serão recuperadas.

pModuleId
[out] Ponteiro para a ID do módulo pai para a definição genérica aberta da classe especificada.

pTypeDefToken
[out] Ponteiro para o token de metadados para a definição genérica aberta da classe especificada.

pParentClassId
[out] Ponteiro para a ID da classe pai.

cNumTypeArgs
[in] O tamanho da matriz typeArgs.

pcNumTypeArgs
[out] Ponteiro para o número total de elementos disponíveis.

typeArgs
[out] Uma matriz de valores ClassID, cada um deles representa a ID de um argumento de tipo da classe. Quando o método retornar, typeArgs conterá alguns ou todos os valores ClassID disponíveis.

Comentários

O método GetClassIDInfo2 é semelhante ao método ICorProfilerInfo::GetClassIDInfo, mas GetClassIDInfo2 obtém informações adicionais sobre um tipo genérico.

O código do criador de perfil pode chamar ICorProfilerInfo::GetModuleMetaData para obter uma interface de metadados para um determinado módulo. O token de metadados retornado ao local referenciado por pTypeDefToken pode ser usado para acessar os metadados da classe.

Após GetClassIDInfo2 retornar, você deve verificar se o buffer typeArgs era grande o suficiente para conter todos os valores ClassID. Para fazer isso, compare o valor para o qual pcNumTypeArgs aponta com o valor do parâmetro cNumTypeArgs. Se pcNumTypeArgs apontar para um valor maior que cNumTypeArgs, aloque um buffer typeArgs maior, atualize cNumTypeArgs com o novo tamanho maior e chame GetClassIDInfo2 novamente.

Como alternativa, primeiro você pode chamar GetClassIDInfo2 com um buffer typeArgs de comprimento zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer typeArgs como o valor retornado em pcNumTypeArgs e chamar GetClassIDInfo2 novamente.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 2.0

Confira também