# Introduction

The enumerated types are in `adinfo.h`, `kvcharset.h`, `kverrorcodes.h`, `kvtypes.h`, `kvxml.h`, and `kvxtract.h`. These header files are in the `include` directory. The first entry in an enumerated type structure should be set to zero (0). Each subsequent entry is increased by 1. For example, the first five entries of `KVCharSet` in `kvcharset.h` are:

    KVCS_UNKNOWN

    KVCS_SJIS

    KVCS_GB

    KVCS_BIG5

    KVCS_KSC

They would be set in the following way:

Enumerated Type | Setting
`KVCS_UNKNOWN` | `0`
`KVCS_SJIS` | `1`
`KVCS_GB` | `2`
`KVCS_BIG5` | `3`
`KVCS_KSC` | `4`

You can also set many enumerated types by entering the appropriate symbolic constant, or `TRUE` or `FALSE`.

## Programming Guidelines

When KeyView is enhanced in future releases, some enumerated types might be expanded. For example, new format IDs might be added to the `ENdocFmt` enumerated type, or new error codes might be added to the `KVErrorCodeEx` enumerated type. When you use these expandable types, your code should ensure binary compatibility with future releases.

For example, if you use an array to access error messages based on an error code, your code should check that the error code is less than `KVError_Last` before accessing the data. This ensures that new error codes are detected when you add KeyView binary files from new releases to your existing installation.

The following enumerated types are expandable:

    KVErrorCodeEx

    KVMetadataType

    KVCharSet

    KVLanguageID

    KVSubfileType

    ENdocFmt

_FT_HTML5_bannerTitle.htm