home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / viscobv6.zip / vac22os2 / ibmcobol / samples / editor / lpexapi.h < prev    next >
Text File  |  1996-05-31  |  5KB  |  105 lines

  1. /*************************************************************
  2. *                                                            *
  3. *  LPEXAPI.H: Include file for external C/C++ LPEX commands. *
  4. *                                                            *
  5. **************************************************************
  6. *                                                            *
  7. *          (C) Copyright IBM Corporation 1993-1995           *
  8. *                                                            *
  9. *************************************************************/
  10.  
  11. #ifndef LPEXAPI_H
  12. #define LPEXAPI_H
  13.  
  14. #ifdef __cplusplus
  15.    extern "C" {
  16. #endif
  17.  
  18. /*-----------------------------------------------------------------*/
  19. #include "lpexcpat.h"
  20.  
  21. #define _cinit
  22. #define _cterm
  23. /*-----------------------------------------------------------------*/
  24.  
  25. #define MAXLEN   2500                            /* Maximum element text size */
  26. #define MAXQUERY 2800                      /* Maximum length for query result */
  27.  
  28. #ifndef uchr
  29.    #ifdef __cplusplus
  30.    #define uchr char
  31.    #else
  32.    #define uchr unsigned char           /* LPEX uses unsigned char throughout */
  33.    #endif
  34. #endif
  35.  
  36. /* LP_COMMAND - execute an LPEX command.  mp2 is MPFROM2SHORT(a, b) */
  37. /* where "a" is either LP_COMMAND_INTERNAL or LP_COMMAND_EXTERNAL,  */
  38. /*   and "b" is either LP_COMMAND_WINDOWED or LP_COMMAND_CURRENT.   */
  39. #ifndef LP_COMMAND
  40. #if defined( WM_USER )
  41. #define LP_COMMAND        (WM_USER + 4)
  42. #endif /*ifdef WM_USER*/
  43. #define LP_COMMAND_EXTERNAL ((short)0)
  44. #define LP_COMMAND_INTERNAL ((short)1)
  45. #define LP_COMMAND_WINDOWED ((short)0)
  46. #define LP_COMMAND_CURRENT  ((short)1)
  47. #endif /*ifndef LP_COMMAND*/
  48.  
  49. int     LpexEntry(uchr *);                     /* Command entry point */
  50. int     LpexExit(uchr *);                      /* Command unlink exit point */
  51.  
  52. char*   LpexProfile(void);                     /* pathname for LPEX.ini */
  53. int     LpexCommand(const uchr *);             /* run an LPEX command */
  54. int     LpexCall(const uchr *, const uchr *);  /* call an LPEX function */
  55. uchr *  LpexQuery(const uchr *, uchr *);       /* query an LPEX item */
  56.  
  57. /* all storage allocation/freeing to be done by LPEX */
  58. uchr *  LpexAlloc(int);                        /* allocate LPEX storage */
  59. int     LpexFree(uchr *);                      /* free LPEX allocated storage */
  60.  
  61. #define LpexMsg(a)          LpexCall("msg",a)
  62.  
  63. /* the following functions support the user word */
  64. int     LpexQueryUserLink(long int scope, void **pObjectPtr);
  65. int     LpexSetUserLink(long int scope, void *object);
  66. int     LpexFindUserLink(long int scope, void *object);
  67.  
  68. /* valid values of scope: */
  69. #define LPEX_DOCUMENT 1
  70. #define LPEX_VIEW     2
  71. #define LPEX_ELEMENT  3
  72.  
  73. /* the following extend the fonts recognised by GML */
  74. int     LpexQueryGMLFonts(uchr *);             /* query special GML fonts  */
  75. int     LpexAddGMLFonts(uchr *);               /* add to special GML fonts */
  76.  
  77. /* the following are fast path entry to some common functions */
  78. int     LpexNext(const uchr *);                /* NEXT                     */
  79. int     LpexPrev(const uchr *);                /* PREV                     */
  80. int     LpexInsert(const uchr *);              /* INSERT text              */
  81. int     LpexQueryRawText(uchr *);              /* query RAWTEXT            */
  82. int     LpexQueryText(uchr *);                 /* query CONTENT            */
  83. int     LpexSetText(const uchr *);             /* set   CONTENT            */
  84. int     LpexQueryFonts(uchr *);                /* query FONTS              */
  85. int     LpexSetFonts(const uchr *);            /* set   FONTS              */
  86. int     LpexQueryCharModes(uchr *);            /* query MODES              */
  87. int     LpexQueryClass(unsigned long *);       /* query CLASS              */
  88. int     LpexSetClass(unsigned long);           /* set   CLASS              */
  89.  
  90. int     LpexQueryElementState(unsigned long *);/* query ELESTATE:          */
  91. #define LPEX_ELE_VISIBLE   (0x80000000)        /*   visible element        */
  92. #define LPEX_ELE_SHOW      (0x40000000)        /*   show element           */
  93. #define LPEX_ELE_PROTECTED (0x20000000)        /*   protected element      */
  94.  
  95. /* Note:  The following is provided *for compatibility */
  96. /* only*.  It may not be available in future releases! */
  97. unsigned long /*HAB*/ LpexHab(void);           /* obtain the hab           */
  98. void*                 LpexRock(void);          /* obtain the rock pointer  */
  99.  
  100. #ifdef __cplusplus
  101.    }
  102. #endif
  103.  
  104. #endif /* LPEXAPI_H */
  105.