1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_sheet_AddIn_idl__ 25*b1cdbd2cSJim Jagielski#define __com_sun_star_sheet_AddIn_idl__ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XServiceName_idl__ 28*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XServiceName.idl> 29*b1cdbd2cSJim Jagielski#endif 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_sheet_XAddIn_idl__ 32*b1cdbd2cSJim Jagielski#include <com/sun/star/sheet/XAddIn.idl> 33*b1cdbd2cSJim Jagielski#endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_sheet_XCompatibilityNames_idl__ 36*b1cdbd2cSJim Jagielski#include <com/sun/star/sheet/XCompatibilityNames.idl> 37*b1cdbd2cSJim Jagielski#endif 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski//============================================================================= 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module sheet { 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski//============================================================================= 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski/** is the base for AddIn services that supply functions which can be called 46*b1cdbd2cSJim Jagielski by other components. 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski <p>Any AddIn implementation must implement a service describing its 49*b1cdbd2cSJim Jagielski specific set of functions. 50*b1cdbd2cSJim Jagielski That service must contain the <type>AddIn</type> service, and the 51*b1cdbd2cSJim Jagielski functions that are implemented, in one or more interfaces. 52*b1cdbd2cSJim Jagielski The <type scope="com::sun::star::lang">XServiceName</type> interface 53*b1cdbd2cSJim Jagielski must describe that service, and the <type>XAddIn</type> interface 54*b1cdbd2cSJim Jagielski must describe the individual functions.</p> 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski <p>Each AddIn function can take parameters of the following types:</p> 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski <dl> 59*b1cdbd2cSJim Jagielski <dt><atom>long</atom></dt> 60*b1cdbd2cSJim Jagielski <dd>for integer values.</dd> 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski <dt><atom>double</atom></dt> 63*b1cdbd2cSJim Jagielski <dd>for floating point values.</dd> 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski <dt><atom>string</atom></dt> 66*b1cdbd2cSJim Jagielski <dd>for text strings.</dd> 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski <dt><atom>long[][]</atom></dt> 69*b1cdbd2cSJim Jagielski <dd>for (two-dimensional) arrays of integer values.</dd> 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski <dt><atom>double[][]</atom></dt> 72*b1cdbd2cSJim Jagielski <dd>for (two-dimensional) arrays of floating point values.</dd> 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski <dt><atom>string[][]</atom></dt> 75*b1cdbd2cSJim Jagielski <dd>for (two-dimensional) arrays of text strings.</dd> 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski <dt><atom>any[][]</atom></dt> 78*b1cdbd2cSJim Jagielski <dd>for (two-dimensional) arrays of mixed contents. Each <atom>any</atom> 79*b1cdbd2cSJim Jagielski will contain a <atom>double</atom> or a <atom>string</atom>, depending on 80*b1cdbd2cSJim Jagielski the data.</dd> 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski <dt><atom>any</atom></dt> 83*b1cdbd2cSJim Jagielski <dd>Depending on the data, a <atom>double</atom>, a <atom>string</atom>, 84*b1cdbd2cSJim Jagielski or an <atom>any[][]</atom> will be passed. If no argument is specified in 85*b1cdbd2cSJim Jagielski the function call, <void/> will be passed. This allows for optional 86*b1cdbd2cSJim Jagielski parameters.</dd> 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski <dt><type scope="com::sun::star::table">XCellRange</type></dt> 89*b1cdbd2cSJim Jagielski <dd>for a <type scope="com::sun::star::table">XCellRange</type> interface 90*b1cdbd2cSJim Jagielski to the source data.</dd> 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski <dt><type scope="com::sun::star::beans">XPropertySet</type></dt> 93*b1cdbd2cSJim Jagielski <dd>for a <type scope="com::sun::star::beans">XPropertySet</type> 94*b1cdbd2cSJim Jagielski interface to the <type>SpreadsheetDocument</type> making the function 95*b1cdbd2cSJim Jagielski call. Only one parameter of this type is allowed in each function. It 96*b1cdbd2cSJim Jagielski can be used to query document settings like 97*b1cdbd2cSJim Jagielski <member>SpreadsheetDocumentSettings::NullDate</member>.</dd> 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski <dt><atom>any[]</atom></dt> 100*b1cdbd2cSJim Jagielski <dd>for varying parameters. Only the last parameter of a function may 101*b1cdbd2cSJim Jagielski have this type. It will be filled with the remaining arguments of the 102*b1cdbd2cSJim Jagielski function call that were not used for the previous parameters. Each 103*b1cdbd2cSJim Jagielski element of the sequence will be filled as in the case of <atom>any</atom> 104*b1cdbd2cSJim Jagielski above.</dd> 105*b1cdbd2cSJim Jagielski </dl> 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski <p>Each AddIn function must have one of the following return types:</p> 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski <ul> 110*b1cdbd2cSJim Jagielski <li><atom>long</atom></li> 111*b1cdbd2cSJim Jagielski <li><atom>double</atom></li> 112*b1cdbd2cSJim Jagielski <li><atom>string</atom></li> 113*b1cdbd2cSJim Jagielski <li><atom>long[][]</atom></li> 114*b1cdbd2cSJim Jagielski <li><atom>double[][]</atom></li> 115*b1cdbd2cSJim Jagielski <li><atom>string[][]</atom></li> 116*b1cdbd2cSJim Jagielski <li><atom>any[][]</atom></li> 117*b1cdbd2cSJim Jagielski <li><type>XVolatileResult</type></li> 118*b1cdbd2cSJim Jagielski <li><atom>any</atom></li> 119*b1cdbd2cSJim Jagielski </ul> 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski <p>The sequences must contain arrays as described above for the 122*b1cdbd2cSJim Jagielski parameter types. 123*b1cdbd2cSJim Jagielski An <type>XVolatileResult</type> return value must contain an object 124*b1cdbd2cSJim Jagielski implementing the <type>VolatileResult</type> service, that contains 125*b1cdbd2cSJim Jagielski a volatile result. Subsequent calls with the same parameters must 126*b1cdbd2cSJim Jagielski return the same object. 127*b1cdbd2cSJim Jagielski An <atom>any</atom> return value can contain any of the other types.</p> 128*b1cdbd2cSJim Jagielski */ 129*b1cdbd2cSJim Jagielskipublished service AddIn 130*b1cdbd2cSJim Jagielski{ 131*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------------ 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski /** contains a method that returns the service name of the add-in. 134*b1cdbd2cSJim Jagielski */ 135*b1cdbd2cSJim Jagielski interface com::sun::star::lang::XServiceName; 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------------ 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski /** provides access to function descriptions and localized names 140*b1cdbd2cSJim Jagielski and descriptions. 141*b1cdbd2cSJim Jagielski */ 142*b1cdbd2cSJim Jagielski interface com::sun::star::sheet::XAddIn; 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------------ 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski /** provides access to compatibility names for the functions. 147*b1cdbd2cSJim Jagielski */ 148*b1cdbd2cSJim Jagielski [optional] interface com::sun::star::sheet::XCompatibilityNames; 149*b1cdbd2cSJim Jagielski}; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski//============================================================================= 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski}; }; }; }; 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski#endif 156*b1cdbd2cSJim Jagielski 157