Compartir a través de


TYPE_INFO

Esta estructura especifica varios tipos de información sobre el tipo de un campo.

Sintaxis

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

Miembros

dwKind
Valor de la enumeración dwTYPE_KIND que determina cómo interpretar la unión.

type.typeMeta
[Solo C++] Contiene una estructura METADATA_TYPE si dwKind es TYPE_KIND_METADATA.

type.typePdb
[Solo C++] Contiene una estructura PDB_TYPE si dwKind es TYPE_KIND_PDB.

type.typeBuilt
[Solo C++] Contiene una estructura BUILT_TYPE si dwKind es TYPE_KIND_BUILT.

type.unused
Relleno sin usar.

type
Nombre de la unión.

unionmember
[Solo C#] Serializa esto en el tipo de estructura adecuado basado en dwKind.

Comentarios

Esta estructura se pasa al método GetTypeInfo donde se rellena. El modo en que se interpreta el contenido de la estructura se basa en el dwKind campo .

Nota:

[Solo C++] Si dwKind es TYPE_KIND_BUILTigual a , es necesario liberar el objeto IDebugField subyacente al destruir la TYPE_INFO estructura. Esto se hace llamando a typeInfo.type.typeBuilt.pUnderlyingField->Release().

[Solo C#] En la tabla siguiente se muestra cómo interpretar el unionmember miembro para cada tipo de tipo. En el ejemplo se muestra cómo se hace esto para un tipo de tipo.

dwKind unionmember interpretado como
TYPE_KIND_METADATA METADATA_TYPE
TYPE_KIND_PDB PDB_TYPE
TYPE_KIND_BUILT BUILT_TYPE

Ejemplo

En este ejemplo se muestra cómo interpretar el unionmember miembro de la TYPE_INFO estructura en C#. En este ejemplo se muestra la interpretación de un solo tipo (TYPE_KIND_METADATA), pero los demás se interpretan exactamente de la misma manera.

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

Requisitos

Encabezado: sh.h

Espacio de nombres: Microsoft.VisualStudio.Debugger.Interop

Ensamblado: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte también