TYPE_INFO

Cette structure spécifie différents types d’informations sur le type d’un champ.

Syntaxe

public struct TYPE_INFO {
   public uint   dwKind;
   public IntPtr unionmember;
};

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 dwKindde .

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

Voir aussi