Microsoft Exchange Server objects are instances of MAPI objects. A MAPI object is a C++ object class or C data structure inherited from one or more MAPI interfaces, or collections of related functions. These collections of related functions are known to C++ developers as pure virtual functions. For a pure virtual function, MAPI supplies only the function prototype, not an implementation. A MAPI interface can only be instantiated through an inherited class.
Every type of MAPI object is inherited from an interface that is ultimately inherited from the IUnknown interface.