TYPE_INFO
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
此結構指定的各種欄位的類型的相關資訊。
語法
struct _tagTYPE_INFO_UNION {
dwTYPE_KIND dwKind;
union {
METADATA_TYPE typeMeta;
PDB_TYPE typePdb;
BUILT_TYPE typeBuilt;
DWORD unused;
} type;
} TYPE_INFO;
public struct TYPE_INFO {
public uint dwKind;
public IntPtr unionmember;
};
參數
dwKind
介於dwTYPE_KIND列舉,決定如何解譯聯集。
type.typeMeta
[只有 c + +]包含METADATA_TYPE結構如果dwKind
是TYPE_KIND_METADATA
。
type.typePdb
[只有 c + +]包含PDB_TYPE結構如果dwKind
是TYPE_KIND_PDB
。
type.typeBuilt
[只有 c + +]包含BUILT_TYPE結構如果dwKind
是TYPE_KIND_BUILT
。
type.unused
未使用的填補。
類型
聯集的名稱。
unionmember
[僅限 C#]這為適當的結構類型為基礎的封送處理dwKind
。
備註
此結構會傳遞至GetTypeInfo填滿其中的方法。 結構的內容解譯的方式根據dwKind
欄位。
注意
[只有 c + +]如果dwKind
等於TYPE_KIND_BUILT
,則要釋放基礎IDebugField物件終結時TYPE_INFO
結構。 藉由呼叫 typeInfo.type.typeBuilt.pUnderlyingField->Release()
即可達到此目的。
[僅限 C#]下表顯示如何解譯unionmember
的每一種類型的成員。 此範例會示範如何做到這點的一種型別。
dwKind |
unionmember 解譯為 |
---|---|
TYPE_KIND_METADATA |
METADATA_TYPE |
TYPE_KIND_PDB |
PDB_TYPE |
TYPE_KIND_BUILT |
BUILT_TYPE |
範例
這個範例示範如何解譯unionmember
成員TYPE_INFO
C# 中的結構。 此範例顯示解譯只有一個型別 (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
另請參閱
結構和等位
dwTYPE_KIND
GetTypeInfo
METADATA_TYPE
PDB_TYPE
BUILT_TYPE