この構造体は、フィールドの型に関するさまざまな種類の情報を指定します。
構文
メンバー
dwKind
共用体を解釈する方法を決定する dwTYPE_KIND 列挙型の値。
type.typeMeta
[C++ のみ] dwKind が TYPE_KIND_METADATA の場合は、METADATA_TYPE 構造体が含まれます。
type.typePdb
[C++ のみ] dwKind が TYPE_KIND_PDB の場合は、PDB_TYPE 構造体が含まれます。
type.typeBuilt
[C++ のみ] dwKind が TYPE_KIND_BUILT の場合は、BUILT_TYPE 構造体が含まれます。
type.unused
未使用のパディング。
type
共用体の名前。
unionmember
[C# のみ] dwKind に基づいて、適切な構造体型にこれをマーシャリングします。
解説
この構造体は GetInfo メソッドに渡され、ここに格納されます。 構造体の内容がどのように解釈されるかは、dwKind フィールドに基づいて決まります。
Note
[C++ のみ] dwKind が TYPE_KIND_BUILT に等しい場合は、TYPE_INFO 構造体を破棄するときに、基になる IDebugField オブジェクトを解放する必要があります。 これは、typeInfo.type.typeBuilt.pUnderlyingField->Release() を呼び出すことによって行われます。
(C# のみ) 次の表は、各種類の型の unionmember メンバーを解釈する方法を示しています。 「例」では、これが、1 種類の型にどのように行われるかを示します。
dwKind |
unionmember は次として解釈される |
|---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
例
この例では、TYPE_INFO 構造体の unionmember メンバーが C# でどのように解釈されるかを示し ます。 この例では、1 つの型 (TYPE_KIND_METADATA) の解釈のみを示していますが、他の型もまったく同様に解釈されます。
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));
}
}
}
}
要件
ヘッダー: sh.h
名前空間: Microsoft.VisualStudio.Debugger.Interop
アセンブリ: Microsoft.VisualStudio.Debugger.Interop.dll