Partager via


ICorProfilerInfo2::GetClassIDInfo2, méthode

Obtient le module parent et le jeton de métadonnées pour la définition générique ouverte de la classe spécifiée, le ClassID de sa classe parent et le ClassID de chaque argument de type, le cas échéant, de la classe.

Syntaxe

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

Paramètres

classId
[in] ID de la classe pour laquelle les informations seront récupérées.

pModuleId
[out] Pointeur vers l’ID du module parent pour la définition générique ouverte de la classe spécifiée.

pTypeDefToken
[out] Pointeur vers le jeton de métadonnées pour la définition générique ouverte de la classe spécifiée.

pParentClassId
[out] Pointeur vers l'ID de la classe parente.

cNumTypeArgs
[in] Taille du tableau typeArgs.

pcNumTypeArgs
[out] Pointeur vers le nombre total d'éléments disponibles.

typeArgs
[out] Tableau de valeurs ClassID, chacune représentant l’ID d’un argument de type de la classe. Quand la méthode retourne son résultat, typeArgs contient une partie ou la totalité des valeurs ClassID disponibles.

Notes

La méthode GetClassIDInfo2 est similaire à la méthode ICorProfilerInfo::GetClassIDInfo, mais GetClassIDInfo2 obtient des informations supplémentaires sur un type générique.

Le code du profileur peut appeler ICorProfilerInfo::GetModuleMetaData pour obtenir une interface de métadonnées pour un module donné. Le jeton de métadonnées qui est retourné à l'emplacement référencé par pTypeDefToken peut alors servir à accéder aux métadonnées pour la classe.

Suite au retour de GetClassIDInfo2, vous devez vérifier que le tampon typeArgs est suffisamment grand pour contenir toutes les valeurs ClassID. Pour ce faire, comparez la valeur vers laquelle pcNumTypeArgs pointe à celle du paramètre cNumTypeArgs. Si pcNumTypeArgs pointe vers une valeur supérieure à cNumTypeArgs, allouez une mémoire tampon typeArgs plus grande, mettez à jour cNumTypeArgs pour refléter la nouvelle taille et rappelez GetClassIDInfo2.

Vous pouvez également commencer par appeler GetClassIDInfo2 avec un tampon typeArgs de longueur nulle pour obtenir la taille correcte du tampon. Vous pouvez ensuite définir la taille du tampon typeArgs sur la valeur retournée dans pcNumTypeArgs, puis appeler GetClassIDInfo2 à nouveau.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorProf.idl, CorProf.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : Disponible depuis la version 2.0

Voir aussi