Defined as follows:
typedef enum tagTYPEKIND {
      TKIND_ENUM = 0
    , TKIND_RECORD
    , TKIND_MODULE
    , TKIND_INTERFACE
    , TKIND_DISPATCH
    , TKIND_COCLASS
    , TKIND_ALIAS
    , TKIND_UNION
    , TKIND_MAX
} TYPEKIND;
 
| Value | Description | 
|---|---|
| TKIND_ALIAS | A type that is an alias for another type. | 
| TKIND_COCLASS | A set of implemented component object interfaces. | 
| TKIND_DISPATCH | A set of methods and properties that are accessible through IDispatch::Invoke. By default, dual interfaces return TKIND_DISPATCH. | 
| TKIND_ENUM | A set of enumerators. | 
| TKIND_INTERFACE | A type that has virtual functions, all of which are pure. | 
| TKIND_MODULE | A module that can only have static functions and data (for example, a DLL). | 
| TKIND_RECORD | A structure with no methods. | 
| TKIND_UNION | A union, all of whose members have an offset of zero. | 
| TKIND_MAX | End of ENUM marker. |