Avoiding system versions

If evolution is installed on your system it is likely that system DBus services such as evolution-addressbook-factory.

These should be replaced by the versions from your install $PREFIX by editing the DBus .service files in /usr/share/dbus-1/services/org.gnome.evolution.dataserver.*.service.

Registering the plugin libraries

Each library built for the plugin must provide entry and exit points to the module which register the modules types.

G_MODULE_EXPORT void
e_module_load (GTypeModule *type_module)
{
        /* This registers our extension class with the GObject
         * type system.  An instance of our extension class is paired
         * with each instance of the class we're extending. */
        extension_foo_register_type (type_module);
}

G_MODULE_EXPORT void
e_module_unload (GTypeModule *type_module)
{
        /* This function is usually left empty. */
}

The foo_register_type() function produced by the GType is static so you may have to provide an externally visible function if you need to register multiple types.

Registering a provider

A provider can be created by subclassing the CamelProvider class.

Details on this can be seen at Evolution/Camel.Provider.

Apps/Evolution/ComplexExtensions (last edited 2013-08-08 22:50:01 by WilliamJonMcCann)