Re: Plugins


Subject: Re: Plugins
From: Dom Lachowicz (dominicl@seas.upenn.edu)
Date: Mon Oct 22 2001 - 08:41:45 CDT


Quoting David Welch <dwelch@zianet.com>:

>
> I am interested in understanding more about the plugin capability of
> abiword. Where can I find docmentation on the plugin interface (win32)?

Hi David,

AbiWord's plugin architecture is very simple at the present time, but that
doesn't mean that things like importers/exporters and dialogs can't be done as
plugins. Here's a *short* write-up on Abi and plugins. I promise to write up
something more thorough and comprehensive shortly.

A plugin must implement 3 simple "extern C" functions:

ABI_FAR_CALL abi_plugin_register
ABI_FAR_CALL abi_plugin_unregister
ABI_FAR_CALL abi_plugin_supports_version

*Once* in every plugin, you must globally call ABI_PLUGIN_DECLARE(<string>)
which will expand to the appropriate code to allow plugins to be loaded & run
(i.e. nothing on Unix, DllMain() on Win32)

After that, you can do *anything* in your plugin. You can use *any* AbiWord
interface, function, or class, so long as the function/class has been declared
with ABI_EXPORT (which evaluates to nothing on unix and the appropriate
__declspec() call on Win32)

I'll get something better written up as soon as I have time. Suffice it to say
that plugins work on unix and win32 now.

Dom



This archive was generated by hypermail 2b25 : Mon Oct 22 2001 - 08:41:53 CDT