00001
00002
00003
00004
00005
00012
00013
00014 #ifndef ICT_USERSERVICE_H
00015 #define ICT_USERSERVICE_H
00016
00017 #include <unidefs.h>
00018
00019 #include <ict/libict_exports.h>
00020
00025 #ifdef WNT
00026 #ifdef USER_EXIT_IMPORT
00027 #define DLLAPI __declspec(dllimport)
00028 #else
00029 #define DLLAPI __declspec(dllexport)
00030 #endif
00031 #else
00032 #define DLLAPI
00033 #endif
00034
00044 #define USERARG_ARRAY_TYPE 100
00045 #define USERARG_VOID_TYPE 0
00046 #define USERARG_CHAR_TYPE 1
00047 #define USERARG_DATE_TYPE 2
00048 #define USERARG_DOUBLE_TYPE 3
00049 #define USERARG_FLOAT_TYPE 4
00050 #define USERARG_INT_TYPE 5
00051 #define USERARG_LOGICAL_TYPE 6
00052 #define USERARG_SHORT_TYPE 7
00053 #define USERARG_STRING_TYPE 8
00054 #define USERARG_TAG_TYPE 9
00055
00056 typedef int (*USER_function_t)(void*);
00057
00058 typedef struct USERSERVICE_array_s {
00059 int length;
00060 void* array;
00061 } USERSERVICE_array_t;
00062
00063 #ifdef __cplusplus
00064 extern "C" {
00065 #endif
00066
00070 extern DLLAPI int USERSERVICE_register_method(
00071 char* functionName,
00072 USER_function_t functionPtr,
00073 int numberOfArguments,
00074 int* argumentList,
00075 int returnValueType
00076 );
00077
00081 extern DLLAPI int USERSERVICE_return_int_array(
00082 const int* array,
00083 int arrayLength,
00084 USERSERVICE_array_t* arrayStruct
00085 );
00086
00090 extern DLLAPI int USERSERVICE_return_short_array(
00091 const short* array,
00092 int arrayLength,
00093 USERSERVICE_array_t* arrayStruct
00094 );
00095
00099 extern DLLAPI int USERSERVICE_return_double_array(
00100 const double* array,
00101 int arrayLength,
00102 USERSERVICE_array_t* arrayStruct
00103 );
00104
00108 extern DLLAPI int USERSERVICE_return_float_array(
00109 const float* array,
00110 int arrayLength,
00111 USERSERVICE_array_t* arrayStruct
00112 );
00113
00117 extern DLLAPI int USERSERVICE_return_logical_array(
00118 const logical* array,
00119 int arrayLength,
00120 USERSERVICE_array_t* arrayStruct
00121 );
00122
00126 extern DLLAPI int USERSERVICE_return_string_array(
00127 const char** array,
00128 int arrayLength,
00129 USERSERVICE_array_t* arrayStruct
00130 );
00131
00135 extern DLLAPI int USERSERVICE_return_tag_array(
00136 const tag_t* array,
00137 int arrayLength,
00138 USERSERVICE_array_t* arrayStruct
00139 );
00140
00144 extern DLLAPI int USERSERVICE_return_char_array(
00145 const char* array,
00146 int arrayLength,
00147 USERSERVICE_array_t* arrayStruct
00148 );
00149
00153 extern DLLAPI int USERSERVICE_return_date_array(
00154 const date_t* array,
00155 int arrayLength,
00156 USERSERVICE_array_t* arrayStruct
00157 );
00158
00162 extern DLLAPI int USERARG_get_int_argument(
00163 int* arg
00164 );
00165
00169 extern DLLAPI int USERARG_get_int_array_argument(
00170 int* length,
00171 int** args
00172 );
00173
00174 extern DLLAPI int USERARG_get_double_argument(
00175 double* arg
00176 );
00177
00178 extern DLLAPI int USERARG_get_double_array_argument(
00179 int* length,
00180 double** args
00181 );
00182
00186 extern DLLAPI int USERARG_get_string_argument(
00187 char** arg
00188 );
00189
00193 extern DLLAPI int USERARG_get_string_array_argument(
00194 int* length,
00195 char*** args
00196 );
00197
00201 extern DLLAPI int USERARG_get_tag_argument(
00202 tag_t* arg
00203 );
00204
00208 extern DLLAPI int USERARG_get_tag_array_argument(
00209 int* length,
00210 tag_t** args
00211 );
00212
00216 extern DLLAPI int USERARG_get_logical_argument(
00217 logical* arg
00218 );
00219
00223 extern DLLAPI int USERARG_get_logical_array_argument(
00224 int* length,
00225 logical** args
00226 );
00227
00231 extern DLLAPI int USERARG_get_float_argument(
00232 float* arg
00233 );
00234
00238 extern DLLAPI int USERARG_get_float_array_argument(
00239 int* length,
00240 float** arg
00241 );
00242
00246 extern DLLAPI int USERARG_get_short_argument(
00247 short* arg
00248 );
00249
00253 extern DLLAPI int USERARG_get_short_array_argument(
00254 int* length,
00255 short** arg
00256 );
00257
00261 extern DLLAPI int USERARG_get_char_argument(
00262 char* arg
00263 );
00264
00268 extern DLLAPI int USERARG_get_char_array_argument(
00269 int* length,
00270 char** arg
00271 );
00272
00276 extern DLLAPI int USERARG_get_date_argument(
00277 date_t* arg
00278 );
00279
00283 extern DLLAPI int USERARG_get_date_array_argument(
00284 int* length,
00285 date_t** arg
00286 );
00287
00288 extern DLLAPI void USERARG_reset_arguments();
00289
00290 #ifdef __cplusplus
00291 }
00292 #endif
00293
00296 #include <ict/libict_undef.h>
00297 #endif