home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 December / Chip_2000-12_cd1.bin / tema / starof / f_0355 / addin.h next >
C/C++ Source or Header  |  1999-08-10  |  3KB  |  142 lines

  1. /*------------------------------------------------------------------------
  2.  
  3. $Workfile:   ADDIN.H  $
  4.  
  5. $Header: /cvs/Archiv/sc/addin/inc/addin.h,v 1.5 1999/08/10 12:49:52 NN Exp $
  6.  
  7. Description:    StarCalc AddIn general header definitions
  8.  
  9. (c) Copyright 1998 - 2000, Sun Microsystems, Inc.
  10.  
  11. ------------------------------------------------------------------------*/
  12.  
  13. #ifndef _ADDIN_H
  14. #define _ADDIN_H
  15.  
  16. #ifndef _SOLAR_H
  17.  
  18. #ifndef TRUE
  19. #define TRUE            1
  20. #endif
  21. #ifndef FALSE
  22. #define FALSE           0
  23. #endif
  24.  
  25. #undef NULL
  26. #define NULL            0
  27.  
  28. typedef unsigned char        BOOL;
  29. typedef unsigned char        BYTE;
  30. typedef unsigned short        USHORT;
  31. typedef unsigned long        ULONG;
  32.  
  33. #endif
  34.  
  35. #ifndef SUPD
  36. /* enable all new interface features */
  37. #define SUPD 9999
  38. #endif
  39.  
  40. /* all character string returns are limited to 255+1 chars */
  41. #define SO_CHARSTRING_MAX        256
  42. #define SO_StringCopy( dst, src ) \
  43.     (strncpy( dst, src, SO_CHARSTRING_MAX ), dst[SO_CHARSTRING_MAX-1] = '\0')
  44.  
  45. typedef enum
  46. {
  47.     PTR_DOUBLE,
  48.     PTR_STRING,
  49.     PTR_DOUBLE_ARR,
  50.     PTR_STRING_ARR,
  51.     PTR_CELL_ARR,
  52.     NONE
  53. } ParamType;
  54.  
  55. #ifndef WIN
  56. #ifdef WNT
  57. #define CALLTYPE        __cdecl
  58. #else
  59. #define CALLTYPE
  60. #endif
  61. #else
  62. #define PASCAL            _pascal
  63. #define FAR                _far
  64. #define CALLTYPE        FAR PASCAL
  65. #endif
  66.  
  67.  
  68. #ifdef __cplusplus
  69.  
  70. extern "C" {
  71.  
  72. typedef void (CALLTYPE* AdvData)( double& nHandle, void* pData );
  73.  
  74. extern void CALLTYPE GetFunctionCount( USHORT& nCount );
  75.  
  76. extern void CALLTYPE GetFunctionData( USHORT&    nNo,
  77.                    char*      pFuncName,
  78.                    USHORT&    nParamCount,
  79.                    ParamType* peType,
  80.                    char*      pInternalName );
  81.  
  82. extern void CALLTYPE IsAsync( USHORT& nNo, ParamType* peType );
  83.  
  84. extern void CALLTYPE Advice( USHORT& nNo, AdvData& pfCallback );
  85.  
  86. extern void CALLTYPE Unadvice( double& nHandle );
  87.  
  88.  
  89. #if (SUPD>=398)
  90. /* new in StarOffice 5.0 */
  91.  
  92. extern void CALLTYPE GetParameterDescription( USHORT& nNo, USHORT& nParam,
  93. char* pName, char* pDesc );
  94.  
  95. #endif
  96.  
  97. #if (SUPD>=506)
  98. /* new in StarOffice 5.1 */
  99.  
  100. extern void CALLTYPE SetLanguage( USHORT& nLanguage );
  101.  
  102. #endif
  103.  
  104. };
  105.  
  106. #else
  107.  
  108. typedef void (CALLTYPE* AdvData)( double* nHandle, void* pData );
  109.  
  110. extern void CALLTYPE GetFunctionCount( USHORT * nCount );
  111.  
  112. extern void CALLTYPE GetFunctionData( USHORT * nNo,
  113.                    char *      pFuncName,
  114.                    USHORT *    nParamCount,
  115.                    ParamType *  peType,
  116.                    char *      pInternalName );
  117.  
  118. extern void CALLTYPE IsAsync( USHORT * nNo, ParamType * peType );
  119.  
  120. extern void CALLTYPE Advice( USHORT * nNo, AdvData * pfCallback );
  121.  
  122. extern void CALLTYPE Unadvice( double * nHandle );
  123.  
  124. #if (SUPD>=398)
  125. /* new in StarOffice 5.0 */
  126.  
  127. extern void CALLTYPE GetParameterDescription( USHORT* nNo, USHORT* nParam,
  128.             char* pName, char* pDesc );
  129.  
  130. #endif
  131.  
  132. #if (SUPD>=506)
  133. /* new in StarOffice 5.1 */
  134.  
  135. extern void CALLTYPE SetLanguage( USHORT* nLanguage );
  136.  
  137. #endif
  138.  
  139. #endif
  140.  
  141. #endif
  142.