TYPE_INFO
Tato struktura určuje různé druhy informací o typu pole.
Syntaxe
Členové
dwKind
Hodnota z dwTYPE_KIND výčtu, která určuje, jak interpretovat sjednocení.
type.typeMeta
[Pouze C++] Obsahuje METADATA_TYPE strukturu, pokud dwKind
je TYPE_KIND_METADATA
.
type.typePdb
[Pouze C++] Obsahuje PDB_TYPE strukturu, pokud dwKind
je TYPE_KIND_PDB
.
type.typeBuilt
[Pouze C++] Obsahuje BUILT_TYPE strukturu, pokud dwKind
je TYPE_KIND_BUILT
.
type.unused
Nepoužité odsazení.
type
Název sjednocení.
unionmember
[Jenom jazyk C#] Zařazujte tento typ na odpovídající typ struktury na dwKind
základě .
Poznámky
Tato struktura je předána GetTypeInfo metoda, kde je vyplněna. Způsob interpretace obsahu struktury je založen na dwKind
poli.
Poznámka:
[Pouze C++] Pokud dwKind
se rovná TYPE_KIND_BUILT
, je nutné uvolnit základní IDebugField objekt při zničení TYPE_INFO
struktury. To se provádí voláním typeInfo.type.typeBuilt.pUnderlyingField->Release()
.
[Jenom jazyk C#] Následující tabulka ukazuje, jak interpretovat unionmember
člena pro jednotlivé typy typů. Příklad ukazuje, jak se to dělá pro jeden typ.
dwKind |
unionmember interpretováno jako |
---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Příklad
Tento příklad ukazuje, jak interpretovat unionmember
člen TYPE_INFO
struktury v jazyce C#. Tento příklad ukazuje interpretaci pouze jednoho typu (TYPE_KIND_METADATA
), ale ostatní jsou interpretovány úplně stejným způsobem.
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));
}
}
}
}
Požadavky
Hlavička: sh.h
Obor názvů: Microsoft.VisualStudio.Debugger.Interop
Sestavení: Microsoft.VisualStudio.Debugger.Interop.dll