TYPE_INFO
Cette structure spécifie différents types d’informations sur le type d’un champ.
Syntaxe
Membres
dwKind
Valeur de l’énumération dwTYPE_KIND qui détermine comment interpréter l’union.
type.typeMeta
[C++ uniquement] Contient une structure METADATA_TYPE si dwKind
c’est le cas TYPE_KIND_METADATA
.
type.typePdb
[C++ uniquement] Contient une structure PDB_TYPE si dwKind
c’est le cas TYPE_KIND_PDB
.
type.typeBuilt
[C++ uniquement] Contient une structure BUILT_TYPE si dwKind
c’est le cas TYPE_KIND_BUILT
.
type.unused
Remplissage inutilisé.
type
Nom de l’union.
unionmember
[C# uniquement] Marshalez-le sur le type de structure approprié en fonction dwKind
de .
Notes
Cette structure est passée à la méthode GetTypeInfo où elle est renseignée. La façon dont le contenu de la structure est interprété est basé sur le dwKind
champ.
Remarque
[C++ uniquement] Si dwKind
elle est TYPE_KIND_BUILT
égale, il est nécessaire de libérer l’objet IDebugField sous-jacent lors de la destruction de la TYPE_INFO
structure. Pour ce faire, il suffit d'appeler typeInfo.type.typeBuilt.pUnderlyingField->Release()
.
[C# uniquement] Le tableau suivant montre comment interpréter le unionmember
membre pour chaque type de type. L’exemple montre comment cela est effectué pour un type de type.
dwKind |
unionmember interprété comme |
---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Exemple
Cet exemple montre comment interpréter le unionmember
membre de la TYPE_INFO
structure en C#. Cet exemple montre l’interprétation d’un seul type (TYPE_KIND_METADATA
) mais les autres sont interprétés de la même façon.
using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;
namespace MyPackage
{
public class MyClass
{
public void Interpret(TYPE_INFO ti)
{
if (ti.dwKind == (uint)enum_dwTypeKind.TYPE_KIND_METADATA)
{
METADATA_TYPE dataType = (METADATA_TYPE)Marshal.PtrToStructure(ti.unionmember,
typeof(METADATA_TYPE));
}
}
}
}
Spécifications
En-tête : sh.h
Espace de noms : Microsoft.VisualStudio.Debugger.Interop
Assembly : Microsoft.VisualStudio.Debugger.Interop.dll