/* @(#)lpienum.h	128.1 1/20/93 19:40:26 */
/************************************************************************\
   Copyright (C) 1990, 1991 Lotus Development Corporation.  
   All rights reserved.
   Name:    lpienum.h
   Date:    24 Sep 1990
   Description:  Contains the LPI enumerated types, 123r3 version
\************************************************************************/

#if !defined(LPIENUM_H)
#define LPIENUM_H

/* Type "calcmethodtype" has 2 members */
#define LPI_T_CALCMETHOD_AUTOMATIC     1
#define LPI_T_CALCMETHOD_MANUAL        2

/* Type "calcordertype" has 3 members */
#define LPI_T_CALCORDER_NATURAL        1
#define LPI_T_CALCORDER_COLUMNWISE     2
#define LPI_T_CALCORDER_ROWWISE        3

/* Type "datatype" has 5 members */
#define LPI_T_DATA_BLANK               1
#define LPI_T_DATA_STRINGDATA          2
#define LPI_T_DATA_NUMBERDATA          3
#define LPI_T_DATA_ERRDATA             4
#define LPI_T_DATA_NADATA              5

/* Type "formattype" has 21 members */
#define LPI_T_FORMAT_FIXED             1
#define LPI_T_FORMAT_SCIENTIFIC        2
#define LPI_T_FORMAT_CURRENCY          3
#define LPI_T_FORMAT_PERCENT           4
#define LPI_T_FORMAT_COMMA             5
#define LPI_T_FORMAT_BAR               6
#define LPI_T_FORMAT_GENERAL           7
#define LPI_T_FORMAT_DAYMONYR          8
#define LPI_T_FORMAT_DAYMON            9
#define LPI_T_FORMAT_MONYR             10
#define LPI_T_FORMAT_TEXT              11
#define LPI_T_FORMAT_HIDDEN            12
#define LPI_T_FORMAT_HRMINSEC          13
#define LPI_T_FORMAT_HRMIN             14
#define LPI_T_FORMAT_DATEINTLLONG      15
#define LPI_T_FORMAT_DATEINTLSHORT     16
#define LPI_T_FORMAT_TIMEINTLLONG      17
#define LPI_T_FORMAT_TIMEINTLSHORT     18
#define LPI_T_FORMAT_LABEL             19
#define LPI_T_FORMAT_AUTOMATIC         20
#define LPI_T_FORMAT_DEFAULT           21

/* Type "prefixtype" has 6 members */
#define LPI_T_PREFIX_LEFT              1
#define LPI_T_PREFIX_CENTER            2
#define LPI_T_PREFIX_RIGHT             3
#define LPI_T_PREFIX_REPEATING         4
#define LPI_T_PREFIX_NONPRINTING       5
#define LPI_T_PREFIX_NOPREFIX          6

/* Type "registrationtype" has 2 members */
#define LPI_T_REGISTRATION_ATFUNCTION  1
#define LPI_T_REGISTRATION_MACRO       2

/* Type "windownumtype" has 2 members */
#define LPI_T_WINDOWNUM_W1             1
#define LPI_T_WINDOWNUM_W2             2

/* Type "vdbtype" has 2 members */
#define LPI_T_VDB_SWITCHTOSLINE       1
#define LPI_T_VDB_DONOTSWITCHTOSLINE  2

/* Type "floatinfotype" has 5 members */
#define LPI_T_FLOATINFO_MEMAVAIL      1
#define LPI_T_FLOATINFO_MODE          2
#define LPI_T_FLOATINFO_NUMFILE       3
#define LPI_T_FLOATINFO_OSRETURNCODE  4
#define LPI_T_FLOATINFO_TOTMEM        5

/* Type "stringinfotype" has 6 members */
#define LPI_T_STRINGINFO_ORIGIN       1
#define LPI_T_STRINGINFO_OSVERSION    2
#define LPI_T_STRINGINFO_DIRECTORY    3
#define LPI_T_STRINGINFO_RECALC       4
#define LPI_T_STRINGINFO_RELEASE      5
#define LPI_T_STRINGINFO_SYSTEM       6

/* Type "celltype" has 6 members */
#define LPI_T_CELL_BLANK      1
#define LPI_T_CELL_LABEL      2
#define LPI_T_CELL_NUMBER     3
#define LPI_T_CELL_FORMULA    4
#define LPI_T_CELL_ERRCELL    5
#define LPI_T_CELL_NACELL     6

/* Type "accesstype" has 3 members */
#define LPI_T_ACCESS_CREATE      1
#define LPI_T_ACCESS_SHAREDREAD  2
#define LPI_T_ACCESS_APPEND      3

/* Type "origintype" has 3 members */
#define LPI_T_ORIGIN_START       1
#define LPI_T_ORIGIN_CURRENT     2
#define LPI_T_ORIGIN_FINISH      3

/* Type "terminatekeytype" has 6 members */
#define LPI_T_TERMINATEKEY_ENTER      1
#define LPI_T_TERMINATEKEY_UP         2
#define LPI_T_TERMINATEKEY_DOWN       3
#define LPI_T_TERMINATEKEY_PGUP       4
#define LPI_T_TERMINATEKEY_PGDN       5
#define LPI_T_TERMINATEKEY_OTHER      6

/* Type "responsemodetype" has 2 members */
#define LPI_T_RESPONSEMODE_LABEL      1
#define LPI_T_RESPONSEMODE_EDIT       2

/* Type "transposetype" has 3 members */
#define LPI_T_TRANSPOSE_ROWSTOCOLS    1
#define LPI_T_TRANSPOSE_SHEETSTOROWS  2
#define LPI_T_TRANSPOSE_COLSTOSHEETS  3

/* Type "deletetype" has 2 members */
#define LPI_T_DELETE_COLUMNS     1
#define LPI_T_DELETE_ROWS        2
#define LPI_T_INSERT_COLUMNS     LPI_T_DELETE_COLUMNS
#define LPI_T_INSERT_ROWS        LPI_T_DELETE_ROWS

/* Type "titlestype" has 4 members */
#define LPI_T_TITLES_VERTICAL    1
#define LPI_T_TITLES_HORIZONTAL  2
#define LPI_T_TITLES_BOTH        3
#define LPI_T_TITLES_NONE        4

/* Type "areatype" has 3 members */
#define LPI_T_AREA_CURRENTAREA           1
#define LPI_T_AREA_DEFAULTAREA           2
#define LPI_T_AREA_BORDERAREA            3
#define LPI_T_AREA__MAX              3

/* Type "backgroundtype" has 5 members */
#define LPI_T_BACKGROUND_NORMAL          1
#define LPI_T_BACKGROUND_INVERSE         2
#define LPI_T_BACKGROUND_HIGHLIGHT       3
#define LPI_T_BACKGROUND_FLASH           4
#define LPI_T_BACKGROUND_DEFAULT         5

/* Type "windowmodetype" has 2 members */
#define LPI_T_WINDOWMODE_TEXT            1
#define LPI_T_WINDOWMODE_GRAPHICS        2

/* Type "foregroundtype" has 5 members */
#define LPI_T_FOREGROUND_NORMAL          1
#define LPI_T_FOREGROUND_HIGHLIGHT       2
#define LPI_T_FOREGROUND_UNPROTECT       3
#define LPI_T_FOREGROUND_NEGATIVE        4
#define LPI_T_FOREGROUND_DEFAULT         5

/* Type "linetype" has 4 members */
#define LPI_T_LINE_SINGLE                1
#define LPI_T_LINE_DOUBLE                2
#define LPI_T_LINE_WIDE                  3
#define LPI_T_LINE_NONE                  4

/* Type "displayareatype" has 4 members */
#define LPI_T_DISPLAYAREA_CONTROLPANEL   1
#define LPI_T_DISPLAYAREA_WORKSHEET      2
#define LPI_T_DISPLAYAREA_STATUSLINE     3
#define LPI_T_DISPLAYAREA_ENTIREDISPLAY  4

/* Type "panelsettingtype" has 2 members */
#define LPI_T_PANELSETTING_ERASE         1
#define LPI_T_PANELSETTING_FREEZE        2

/* Type "clocktype" has 4 members */
#define LPI_T_CLOCK_STANDARD          1
#define LPI_T_CLOCK_INTERNATIONAL     2
#define LPI_T_CLOCK_FILE              3
#define LPI_T_CLOCK_NONE              4

/* Type "indicatortype" has 16 members */
#define LPI_T_INDICATOR_CALC          1
#define LPI_T_INDICATOR_CALCBLINK     2
#define LPI_T_INDICATOR_CAPS          3
#define LPI_T_INDICATOR_CIRC          4
#define LPI_T_INDICATOR_CMD           5
#define LPI_T_INDICATOR_ENDKEY        6
#define LPI_T_INDICATOR_FILE          7
#define LPI_T_INDICATOR_GROUP         8
#define LPI_T_INDICATOR_MEM           9
#define LPI_T_INDICATOR_NUM           10
#define LPI_T_INDICATOR_OVR           11
#define LPI_T_INDICATOR_RO            12
#define LPI_T_INDICATOR_SCROLL        13
#define LPI_T_INDICATOR_SST           14
#define LPI_T_INDICATOR_STEP          15
#define LPI_T_INDICATOR_ZOOM          16

/* Type "intlcurrencytype" has 2 members */
#define LPI_T_INTLCURRENCY_PREFIX     1
#define LPI_T_INTLCURRENCY_SUFFIX     2

/* Type "intldatetype" has 4 members */
#define LPI_T_INTLDATE_MMDDYYSLASH    1
#define LPI_T_INTLDATE_DDMMYYSLASH    2
#define LPI_T_INTLDATE_DDMMYYDOT      3
#define LPI_T_INTLDATE_YYMMDDHYPHEN   4

/* Type "intlnegtype" has 2 members */
#define LPI_T_INTLNEG_PARENTHESES     1
#define LPI_T_INTLNEG_SIGNED          2

/* Type "intlpunctype" has 8 members */
#define LPI_T_INTLPUNC_PUNCA          1
#define LPI_T_INTLPUNC_PUNCB          2
#define LPI_T_INTLPUNC_PUNCC          3
#define LPI_T_INTLPUNC_PUNCD          4
#define LPI_T_INTLPUNC_PUNCE          5
#define LPI_T_INTLPUNC_PUNCF          6
#define LPI_T_INTLPUNC_PUNCG          7
#define LPI_T_INTLPUNC_PUNCH          8

/* Type "intltimetype" has 4 members */
#define LPI_T_INTLTIME_HHMMSSCOLON    1
#define LPI_T_INTLTIME_HHMMSSDOT      2
#define LPI_T_INTLTIME_HHMMSSCOMMA    3
#define LPI_T_INTLTIME_HHHMMMSSS      4

/* Type "windowtype" has 5 members */
#define LPI_T_WINDOW_HORIZONTAL       1
#define LPI_T_WINDOW_VERTICAL         2
#define LPI_T_WINDOW_PERSPECTIVE      3
#define LPI_T_WINDOW_GRAPH            4
#define LPI_T_WINDOW_SINGLE           5

/* Type "filestatustype" has 2 members */
#define LPI_T_FILESTATUS_ACTIVE            1
#define LPI_T_FILESTATUS_NOTACTIVE         2

/* Type "changestatustype" has 2 members */
#define LPI_T_CHANGESTATUS_CHANGED         1
#define LPI_T_CHANGESTATUS_NOTCHANGED      2

/* Type "modetype" has 2 members */
#define LPI_T_MODE_AUTOMATIC               1
#define LPI_T_MODE_MANUAL                  2

/* Type "groupstatustype" has 2 members */
#define LPI_T_GROUPSTATUS_GROUPED          1
#define LPI_T_GROUPSTATUS_NOTGROUPED       2

/* Type "sealtype" has 3 members */
#define LPI_T_SEAL_FILE                    1
#define LPI_T_SEAL_RESERVATION             2
#define LPI_T_SEAL_NONE                    3

/* Type "resrequesttype" has 2 members */
#define LPI_T_RESREQUEST_RESERVENEEDED     1
#define LPI_T_RESREQUEST_RESERVENOTNDD     2

/* Type "positiontype" has 2 members */
#define LPI_T_POSITION_PRECEDING           1
#define LPI_T_POSITION_FOLLOWING           2

/* Type "savetype" has 3 members */
#define LPI_T_SAVE_NEWFILE                 1
#define LPI_T_SAVE_REPLACEMENTFILE         2
#define LPI_T_SAVE_BACKUPFILE              3

/* Type "importtype" has 2 members */
#define LPI_T_IMPORT_TEXT                  1
#define LPI_T_IMPORT_NUMBERS               2

/* Type "combinetype" has 3 members */
#define LPI_T_COMBINE_ADD                  1
#define LPI_T_COMBINE_COPY                 2
#define LPI_T_COMBINE_SUBTRACT             3

/* Type "extracttype" has 2 members */
#define LPI_T_EXTRACT_FORMULAS             1
#define LPI_T_EXTRACT_VALUES               2

/* Type "filenamemodetype" has 3 members */
#define LPI_T_FNAME_MODE_UNIX              1
#define LPI_T_FNAME_MODE_DOS_UPPER         2
#define LPI_T_FNAME_MODE_DOS_LOWER         3

/*  Input argument description byte for @ function and macro registration  */
#define LPI_T_ARG_TYPE_MSK	0x3F

#define LPI_T_ARG_TYPE_NUM	0x1   
#define LPI_T_ARG_TYPE_STR	0x2	
#define LPI_T_ARG_TYPE_RNG	0x4	
#define LPI_T_ARG_TYPE_MSG	0x8	
#define LPI_T_ARG_TYPE_ERR	0x10	
#define LPI_T_ARG_TYPE_NA       0x20    
#define LPI_T_ARG_TYPE_ANY	0x3F


/*   @ function type byte.  What the @function returns  */
#define LPI_T_REG_AT_TYPE_NUM_FLOAT	0x01
#define LPI_T_REG_AT_TYPE_NUM_INT	0x11
#define LPI_T_REG_AT_TYPE_STR_NATIVE	0x02
#define LPI_T_REG_AT_TYPE_STR_LMBCS	0x12
#define LPI_T_REG_AT_TYPE_ERR		0x04
#define LPI_T_REG_AT_TYPE_NA		0x08
#define LPI_T_REG_AT_TYPE_SPCL	(LPI_T_REG_AT_TYPE_ERR | LPI_T_REG_AT_TYPE_NA)
#define LPI_T_REG_AT_TYPE_ANY	        0x0F

/*  Operation description byte for @ function registration. */
#define LPI_T_REG_AT_NO_FLAGS        0x0 
#define LPI_T_REG_AT_ALWAYS_DIRTY    0x1
#define LPI_T_REG_AT_VARARGS         0x2
#define LPI_T_REG_AT_PASS_SPCL       0x4 
#define LPI_T_REG_AT_PASS_MSG        0x8 

/*  Operation description byte for macro registration */
#define LPI_T_REG_MAC_NO_FLAGS     0x0 
#define LPI_T_REG_MAC_PASS_MSG     0x8  

/* 
**   Status value definition and the return codes for user-defined
**   @functions and macros
*/
#define LPI_REG_USER_ERR_NOERROR       0
#define LPI_REG_USER_ERR_MEM           1
#define LPI_REG_USER_ERR_ARG_ACCESS    2
#define LPI_REG_USER_ERR_SIDE_EFFECT   3
#define LPI_REG_USER_ERR_UNREG_TYPE    4
#define LPI_REG_USER_ERR_MUL_TYPE      5
#define LPI_REG_USER_ERR_UNKNOWN  0xFFFF 

/*  Index into the registration context block  */
#define LPI_T_CONTEXT_FUNC_TYPE     0
#define LPI_T_CONTEXT_FUNC_NAME     1
#define LPI_T_CONTEXT_ADDIN_NAME    2
#define LPI_T_CONTEXT_REG_MOD_NAME  3
#define LPI_T_CONTEXT_REG_MOD_TIME  4
#define LPI_T_CONTEXT_SIZE   5

/*  Denotes the type of the registered routine  */
#define LPI_T_CONTEXT_MACRO_TYPE    1
#define LPI_T_CONTEXT_ATFUNC_TYPE   2

#endif /* !defined(LPIENUM_H) */
