Bagikan melalui


TYPE_INFO

Struktur ini menentukan berbagai jenis informasi tentang jenis bidang.

Sintaks

public struct TYPE_INFO {
   public uint   dwKind;
   public IntPtr unionmember;
};

Anggota

dwKind
Nilai dari enumerasi dwTYPE_KIND yang menentukan cara menginterpretasikan penyatuan.

type.typeMeta
[Hanya C++] Berisi struktur METADATA_TYPE jika dwKind adalah TYPE_KIND_METADATA.

type.typePdb
[Hanya C++] Berisi struktur PDB_TYPE jika dwKind adalah TYPE_KIND_PDB.

type.typeBuilt
[Hanya C++] Berisi struktur BUILT_TYPE jika dwKind adalah TYPE_KIND_BUILT.

type.unused
Padding yang tidak digunakan.

type
Nama serikat.

unionmember
[C# saja] Marsekal ini ke jenis struktur yang sesuai berdasarkan dwKind.

Keterangan

Struktur ini diteruskan ke metode GetTypeInfo tempatnya diisi. Bagaimana konten struktur ditafsirkan didasarkan pada dwKind bidang .

Catatan

[Hanya C++] Jika dwKind sama dengan , maka perlu untuk merilis objek IDebugField yang mendasar TYPE_KIND_BUILTsaat menghancurkan TYPE_INFO struktur. Ini dilakukan dengan memanggil typeInfo.type.typeBuilt.pUnderlyingField->Release().

[C# saja] Tabel berikut ini memperlihatkan cara menginterpretasikan unionmember anggota untuk setiap jenis. Contoh menunjukkan bagaimana hal ini dilakukan untuk satu jenis.

dwKind unionmember ditafsirkan sebagai
TYPE_KIND_METADATA METADATA_TYPE
TYPE_KIND_PDB PDB_TYPE
TYPE_KIND_BUILT BUILT_TYPE

Contoh

Contoh ini menunjukkan cara menginterpretasikan unionmember anggota TYPE_INFO struktur dalam C#. Contoh ini menunjukkan hanya menafsirkan satu jenis (TYPE_KIND_METADATA) tetapi yang lain ditafsirkan dengan cara yang sama persis.

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));
            }
        }
    }
}

Persyaratan

Header: sh.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Rakitan: Microsoft.VisualStudio.Debugger.Interop.dll

Baca juga