This example shows how to define interface to be exported from the plugin.
#include <utilities/plugin_interface.h> // some classes class Base1{}; class Derived1 : public Base1{}; class Derived2 : public Base1{}; class Base2{}; class Derived3 : public Base1 , public Base2{}; BEGIN_PLUGIN_DECLARATION() // interface Derived1 will be exported as Base1 interface DECLARE_PLUGIN_INTERFACE( Derived1 , Base1 ) // interface Derived1 will be exported as Base1 interface DECLARE_PLUGIN_INTERFACE( Derived2 , Base1 ) // interface Derived3 will be exported as Base1 interface DECLARE_PLUGIN_INTERFACE( Derived3 , Base1 ) // interface Derived3 will be exported as Base2 interface DECLARE_PLUGIN_INTERFACE( Derived3 , Base2 ) END_PLUGIN_DECLARATION()