Describes the type of a variable, the return type of a function, or the type of a function parameter. It is defined as follows:
typedef struct FARSTRUCT tagTYPEDESC {
union {
// VT_PTR|VT_SAFEAEEAY, the pointed-at type.
struct FARSTRUCT tagTYPEDESC FAR* lptdesc;
// VT_CARRAY.
struct FARSTRUCT tagARRAYDESC FAR* lpadesc;
// VT_USERDEFINED is used to get type information for a
// user-defined type.
HREFTYPE hreftype;
}UNION_NAME(u);
VARTYPE vt;
} TYPEDESC;
If the variable is VT_SAFEARRAY or VT_PTR, the union portion of the TYPEDESC contains a pointer to a TYPEDESC that specifies the element type.