Using this template you can create a new OpenOffice.org CalcAddin service.

This service adds new functions to the spreadsheet application. After registering the component, the inserted functions can be found with help of the functions autopilot. The new functions are assigned to the category Add-in.

Like every service, this service supports basic interfaces for initializing an object directly after its creation (XInitialization), for getting information about the types (usually interface types) supported by an object (XTypeProvider), and for providing information regarding which services are implemented (XServiceInfo).

Among the above mentioned interfaces, the service also supports the interface com.sun.star.sheet.XAddIn, which is the base for AddIn services that supply functions which can be called by other components.

Any AddIn implementation must implement a service describing its specific set of functions. That service must contain the AddIn service, and the functions that are implemented, in one or more interfaces. The XServiceName interface must describe that service, and the XAddIn interface must describe the individual functions.

Each AddIn function can take parameters of the following types:

long for integer values
double for floating point values
string for text strings
long[][] for (two-dimensional) arrays of integer values
double[][] for (two-dimensional) arrays of floating point values
string[][] for (two-dimensional) arrays of text strings
any[][] for (two-dimensional) arrays of mixed contents. Each any will contain a double or a string , depending on the data.
any Depending on the data, a double , a string , or an any[][] will be passed. If no argument is specified in the function call, void will be passed. This allows for optional parameters.
XCellRange for a XCellRange interface to the source data.
XPropertySet for a XPropertySet interface to the SpreadsheetDocument making the function call. Only one parameter of this type is allowed in each function. It can be used to query document settings like SpreadsheetDocumentSettings::NullDate .
any[] for varying parameters. Only the last parameter of a function may have this type. It will be filled with the remaining arguments of the function call that were not used for the previous parameters. Each element of the sequence will be filled as in the case of any above.

Each AddIn function must have one of the following return types:

long
double
string
long[][]
double[][]
string[][]
any[][]
XVolatileResult
any


The sequences must contain arrays as described above for the parameter types. An XVolatileResult return value must contain an object implementing the VolatileResult service, that contains a volatile result. Subsequent calls with the same parameters must return the same object. An any return value can contain any of the other types.