Derived Types
            Two classes of derived types may be defined for use within an API: structures and
                enumerations. Structures are used to introduce new types specific to the API.
                Enumerations are used to restrict numeric values to a legal specified range.