Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta struktura określa różne rodzaje informacji o typie pola.
Składnia
Członkowie
dwKind
Wartość z wyliczenia dwTYPE_KIND , która określa sposób interpretowania unii.
type.typeMeta
[Tylko C++ ] Zawiera strukturę METADATA_TYPE , jeśli dwKind ma wartość TYPE_KIND_METADATA.
type.typePdb
[Tylko C++ ] Zawiera strukturę PDB_TYPE , jeśli dwKind ma wartość TYPE_KIND_PDB.
type.typeBuilt
[Tylko C++ ] Zawiera strukturę BUILT_TYPE , jeśli dwKind ma wartość TYPE_KIND_BUILT.
type.unused
Nieużywane dopełnienie.
type
Nazwa unii.
unionmember
[Tylko C# ] Przesłoń go do odpowiedniego typu struktury na dwKindpodstawie .
Uwagi
Ta struktura jest przekazywana do metody GetTypeInfo , w której jest wypełniana. Sposób interpretowania zawartości struktury zależy od dwKind pola.
Uwaga
[Tylko C++ ] Jeśli dwKind wartość jest równa TYPE_KIND_BUILT, konieczne jest zwolnienie bazowego obiektu IDebugField podczas niszczenia TYPE_INFO struktury. Odbywa się to przez wywołanie metody typeInfo.type.typeBuilt.pUnderlyingField->Release().
[Tylko C# ] W poniższej tabeli przedstawiono sposób interpretowania unionmember elementu członkowskiego dla każdego typu. W przykładzie pokazano, jak to zrobić dla jednego typu.
dwKind |
unionmember interpretowane jako |
|---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
Przykład
W tym przykładzie pokazano, jak interpretować unionmember element członkowski TYPE_INFO struktury w języku C#. W tym przykładzie pokazano interpretację tylko jednego typu (TYPE_KIND_METADATA), ale pozostałe są interpretowane w dokładnie taki sam sposób.
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));
}
}
}
}
Wymagania
Nagłówek: sh.h
Przestrzeń nazw: Microsoft.VisualStudio.Debugger.Interop
Zestaw: Microsoft.VisualStudio.Debugger.Interop.dll