Partilhar via


TYPE_INFO

Essa estrutura especifica vários tipos de informações sobre o tipo de um campo.

struct _tagTYPE_INFO_UNION {
   dwTYPE_KIND dwKind;
   union {
      METADATA_TYPE typeMeta;
      PDB_TYPE      typePdb;
      BUILT_TYPE    typeBuilt;
      DWORD         unused;
   } type;
} TYPE_INFO;
public struct TYPE_INFO {
   public uint   dwKind;
   public IntPtr unionmember;
};

Parâmetros

  • dwKind
    Um valor a partir do dwTYPE_KIND enumeração que determina como interpretar a união.

  • Type.typeMeta
    [Apenas C++] Contains a METADATA_TYPE structure if dwKind is TYPE_KIND_METADATA.

  • Type.typePdb
    [Apenas C++] Contains a PDB_TYPE structure if dwKind is TYPE_KIND_PDB.

  • Type.typeBuilt
    [Apenas C++] Contains a BUILT_TYPE structure if dwKind is TYPE_KIND_BUILT.

  • Type.Unused
    Preenchimento não utilizado.

  • tipo
    Nome da união.

  • unionmember
    [C# somente] Marshal isso para o tipo de estrutura apropriada com base em dwKind.

Comentários

Essa estrutura é passada para o IDebugField::GetTypeInfo método onde ele é preenchido. Como o conteúdo da estrutura é interpretado se baseia o dwKind campo.

Dica

[Apenas C++] Se dwKind é igual a TYPE_KIND_BUILT, e em seguida, é necessário liberar a base IDebugField de objeto ao destruir o TYPE_INFO estrutura.Isso é feito chamando typeInfo.type.typeBuilt.pUnderlyingField->Release().

[C# somente] A tabela a seguir mostra como interpretar a unionmember membro para cada tipo de tipo. O exemplo mostra como isso é feito para um tipo de.

dwKind

unionmemberinterpretado como

TYPE_KIND_METADATA

METADATA_TYPE

TYPE_KIND_PDB

PDB_TYPE

TYPE_KIND_BUILT

BUILT_TYPE

Exemplo

Este exemplo mostra como interpretar a unionmember membro da TYPE_INFO estrutura no C#. Este exemplo mostra apenas um tipo de interpretação (TYPE_KIND_METADATA), mas os outros são interpretados da mesma maneira.

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

Cabeçalho: sh.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte também

Referência

Estruturas e uniões

dwTYPE_KIND

IDebugField::GetTypeInfo

METADATA_TYPE

PDB_TYPE

BUILT_TYPE