FIELD_KIND

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

Specifies the kind of field contained in an IDebugField object.

Syntax

enum enum_FIELD_KIND {
    FIELD_KIND_NONE       = 0x00000000,

    // Type of field
    FIELD_KIND_TYPE       = 0x00000001,
    FIELD_KIND_SYMBOL     = 0x00000002,

    // Storage type of the field
    FIELD_TYPE_PRIMITIVE  = 0x00000010,
    FIELD_TYPE_STRUCT     = 0x00000020,
    FIELD_TYPE_CLASS      = 0x00000040,
    FIELD_TYPE_INTERFACE  = 0x00000080,
    FIELD_TYPE_UNION      = 0x00000100,
    FIELD_TYPE_ARRAY      = 0x00000200,
    FIELD_TYPE_METHOD     = 0x00000400,
    FIELD_TYPE_BLOCK      = 0x00000800,
    FIELD_TYPE_POINTER    = 0x00001000,
    FIELD_TYPE_ENUM       = 0x00002000,
    FIELD_TYPE_LABEL      = 0x00004000,
    FIELD_TYPE_TYPEDEF    = 0x00008000,
    FIELD_TYPE_BITFIELD   = 0x00010000,
    FIELD_TYPE_NAMESPACE  = 0x00020000,
    FIELD_TYPE_MODULE     = 0x00040000,
    FIELD_TYPE_DYNAMIC    = 0x00080000,
    FIELD_TYPE_PROP       = 0x00100000,
    FIELD_TYPE_INNERCLASS = 0x00200000,
    FIELD_TYPE_REFERENCE  = 0x00400000,
    FIELD_TYPE_EXTENDED   = 0x00800000,

    // Specific information about symbols
    FIELD_SYM_MEMBER      = 0x01000000,
    FIELD_SYM_LOCAL       = 0x02000000,
    FIELD_SYM_PARAM       = 0x04000000,
    FIELD_SYM_THIS        = 0x08000000,
    FIELD_SYM_GLOBAL      = 0x10000000,
    FIELD_SYM_PROP_GETTER = 0x20000000,
    FIELD_SYM_PROP_SETTER = 0x40000000,
    FIELD_SYM_EXTENDED    = 0x80000000,

    FIELD_KIND_MASK       = 0x0000000f,
    FIELD_TYPE_MASK       = 0x00fffff0,
    FIELD_SYM_MASK        = 0xff000000,

    FIELD_KIND_ALL        = 0xffffffff
};
typedef DWORD FIELD_KIND;
public enum enum_FIELD_KIND {
    FIELD_KIND_NONE       = 0x00000000,

    // Type of field
    FIELD_KIND_TYPE       = 0x00000001,
    FIELD_KIND_SYMBOL     = 0x00000002,

    // Storage type of the field
    FIELD_TYPE_PRIMITIVE  = 0x00000010,
    FIELD_TYPE_STRUCT     = 0x00000020,
    FIELD_TYPE_CLASS      = 0x00000040,
    FIELD_TYPE_INTERFACE  = 0x00000080,
    FIELD_TYPE_UNION      = 0x00000100,
    FIELD_TYPE_ARRAY      = 0x00000200,
    FIELD_TYPE_METHOD     = 0x00000400,
    FIELD_TYPE_BLOCK      = 0x00000800,
    FIELD_TYPE_POINTER    = 0x00001000,
    FIELD_TYPE_ENUM       = 0x00002000,
    FIELD_TYPE_LABEL      = 0x00004000,
    FIELD_TYPE_TYPEDEF    = 0x00008000,
    FIELD_TYPE_BITFIELD   = 0x00010000,
    FIELD_TYPE_NAMESPACE  = 0x00020000,
    FIELD_TYPE_MODULE     = 0x00040000,
    FIELD_TYPE_DYNAMIC    = 0x00080000,
    FIELD_TYPE_PROP       = 0x00100000,
    FIELD_TYPE_INNERCLASS = 0x00200000,
    FIELD_TYPE_REFERENCE  = 0x00400000,
    FIELD_TYPE_EXTENDED   = 0x00800000,

    // Specific information about symbols
    FIELD_SYM_MEMBER      = 0x01000000,
    FIELD_SYM_LOCAL       = 0x02000000,
    FIELD_SYM_PARAM       = 0x04000000,
    FIELD_SYM_THIS        = 0x08000000,
    FIELD_SYM_GLOBAL      = 0x10000000,
    FIELD_SYM_PROP_GETTER = 0x20000000,
    FIELD_SYM_PROP_SETTER = 0x40000000,
    FIELD_SYM_EXTENDED    = 0x80000000,

    FIELD_KIND_MASK       = 0x0000000f,
    FIELD_TYPE_MASK       = 0x00fffff0,
    FIELD_SYM_MASK        = 0xff000000,

    FIELD_KIND_ALL        = 0xffffffff
};

Fields

FIELD_KIND_TYPE
Indicates that the field is a type only.

FIELD_KIND_SYMBOL
Indicates that the field is a symbol, with type, name, and other information.

FIELD_TYPE_PRIMITIVE
Indicates that the field is a primitive data type.

FIELD_TYPE_STRUCT
Indicates that the field is a structure.

FIELD_TYPE_CLASS
Indicates that the field is a class.

FIELD_TYPE_INTERFACE
Indicates that the field is an interface.

FIELD_TYPE_UNION
Indicates that the field is a union.

FIELD_TYPE_ARRAY
Indicates that the field is an array.

FIELD_TYPE_METHOD
Indicates that the field is a method.

FIELD_TYPE_BLOCK
Indicates that the field is a block.

FIELD_TYPE_POINTER
Indicates that the field is a pointer.

FIELD_TYPE_ENUM
Indicates that the field is an enumerated data type.

FIELD_TYPE_LABEL
Indicates that the field is a label.

FIELD_TYPE_TYPEDEF
Indicates that the field is a typedef.

FIELD_TYPE_BITFIELD
Indicates that the field is a bitfield.

FIELD_TYPE_NAMESPACE
Indicates that the field is a namespace.

FIELD_TYPE_MODULE
Indicates that the field is a module.

FIELD_TYPE_DYNAMIC
Indicates that the field is dynamic.

FIELD_TYPE_PROP
Indicates that the field is a property.

FIELD_TYPE_INNERCLASS
Indicates that the field is an inner class.

FIELD_TYPE_REFERENCE
Indicates that the field is a reference.

FIELD_TYPE_EXTENDED
Reserved for future use.

FIELD_SYM_MEMBER
Indicates that the field is a member.

FIELD_SYM_LOCAL
Indicates that the field is local.

FIELD_SYM_PARAMETER
Indicates that the field is a parameter.

FIELD_SYM_THIS
Indicates that the field is the "this" pointer.

FIELD_SYM_GLOBAL
Indicates that the field is global.

FIELD_SYM_PROP_GETTER
Indicates that the field retrieves properties.

FIELD_SYM_PROP_SETTER
Indicates that the field sets properties.

FIELD_SYM_EXTENDED
Reserved for future use.

FIELD_KIND_MASK
Indicates a mask for field kinds.

FIELD_TYPE_MASK
Indicates a mask for field types.

FIELD_SYM_MASK
Indicates a mask for symbol information.

Remarks

Returned from a call to the GetKind method.

Depending on the kind of field, QueryInterface can be called on the IDebugField interface for a more specific form of interface. For example, if GetKind returns FIELD_TYPE_METHOD, you can then call QueryInterface on IDebugField to obtain the IDebugMethodField interface.

Requirements

Header: sh.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

See also