typedef struct { void *the_data; MAV_SMSClass *the_class; int selectable[MAV_MAX_WIN]; } MAV_SMS;
A Maverik SMS is simply the encapsulation in a single data structure of a pointer to an SMS's data, the_data, and the methods which act upon it, the_class. This gives a generic handle to any SMS, regardless of class, and is used as the argument to other Maverik functions. selectable notes on a per window basis if the object maintained by SMS are selectable in the usual manner (ie. via keyboard and mouse events).
Applications would rarely need to explicitly create or directly access the fields of this data structure. This should be achieved by the mav_SMSNew, mav_SMSDataGet, mav_SMSClassGet, mav_SMSSelectabilitySet functions.