Condividi tramite


TYPE_INFO

Questa struttura specifica vari tipi di informazioni sul tipo di un campo.

Sintassi

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

Membri

dwKind
Valore dell'enumerazione dwTYPE_KIND che determina come interpretare l'unione.

type.typeMeta
[solo C++] Contiene una struttura METADATA_TYPE se dwKind è TYPE_KIND_METADATA.

type.typePdb
[solo C++] Contiene una struttura PDB_TYPE se dwKind è TYPE_KIND_PDB.

type.typeBuilt
[solo C++] Contiene una struttura BUILT_TYPE se dwKind è TYPE_KIND_BUILT.

type.unused
Spaziatura interna inutilizzata.

type
Nome dell'unione.

unionmember
[Solo C#] Effettuare il marshalling del tipo di struttura appropriato in dwKindbase a .

Osservazioni:

Questa struttura viene passata al metodo GetTypeInfo in cui viene compilata. La modalità di interpretazione del contenuto della struttura si basa sul dwKind campo.

Nota

[solo C++] Se dwKind è uguale TYPE_KIND_BUILTa , è necessario rilasciare l'oggetto IDebugField sottostante durante l'eliminazione della TYPE_INFO struttura. Questa operazione viene effettuata chiamando typeInfo.type.typeBuilt.pUnderlyingField->Release().

[Solo C#] Nella tabella seguente viene illustrato come interpretare il unionmember membro per ogni tipo di tipo. L'esempio mostra come viene eseguita questa operazione per un tipo di tipo.

dwKind unionmember interpretato come
TYPE_KIND_METADATA METADATA_TYPE
TYPE_KIND_PDB PDB_TYPE
TYPE_KIND_BUILT BUILT_TYPE

Esempio

Questo esempio illustra come interpretare il unionmember membro della TYPE_INFO struttura in C#. Questo esempio mostra l'interpretazione di un solo tipo (TYPE_KIND_METADATA), ma gli altri vengono interpretati esattamente nello stesso modo.

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

Requisiti

Intestazione: sh.h

Spazio dei nomi: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Vedi anche