Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa struttura specifica vari tipi di informazioni sul tipo di un campo.
Sintassi
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