Main Page | Modules | Files | Functions | Code Elements | Data Structures | Deprecated

ict/ict_userservice.h

Go to the documentation of this file.
00001 /*==============================================================================
00002                 Copyright (c) 2003-2005 UGS Corporation
00003                    Unpublished - All Rights Reserved
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