Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / dynamic_link / includes / addinter.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifndef __ADDINTER_H__
14 #define  __ADDINTER_H__
15
16 #include <wchar.h>
17 #include "dynlib_dynamic_link.h"
18 #include "machine.h"
19
20 /** 
21 * the first dynamic interface is at position 500+1 
22 */
23 #define DynInterfStart 500
24
25 #define NumberMaxFunctionsByGateway 1000
26
27 #define MAXDYNINTERF 50 /* default value compatibility scilab 4.x */
28 /* !!! WARNING !!! */
29 /* On Windows , AddInterfaceToScilab based on LoadLibrary C function */
30 /* you cannot load more than 80 dynamic libraries at the same time. */
31 /* Scilab will return a error (code Windows 1114) in this case.*/
32 /* A dynamic link library (DLL) initialization routine failed. */
33
34
35 /**
36 * Remove interface in scilab
37 * @param[in] id of interface
38 */
39 DYNAMIC_LINK_IMPEXP void RemoveInterf(int id);
40
41 /**
42 * Add a interface in Scilab
43 * @param[in] filenamelib dynamic libraries filename
44 * @param[in] spname Name of interface routine entry point 
45 * @param[in] fcts Name of new Scilab function implemented in the new interface 
46 * @param[in] sizefcts size of fcts array
47 * @return a int id of interface (-1 failed)
48 */
49 DYNAMIC_LINK_IMPEXP int AddInterfaceToScilab(wchar_t* _pwstDynamicLibraryName, wchar_t* _pwstModuleName, wchar_t** _pwstEntryPointName, int _iEntryPointSize);
50
51 /**
52 * TO DO: comments 
53 */
54 DYNAMIC_LINK_IMPEXP void C2F(userlk)(int *k);
55
56 #endif /*  __ADDINTER_H__ */