home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / hitest.exe / HITEST10.EXE / INCLUDE / HTNOTES.H
C/C++ Source or Header  |  1994-06-16  |  63KB  |  1,288 lines

  1. /**********************************************************************
  2.  * HTNOTES.H - External includes for HiTest Enhanced Lotus Notes API  *
  3.  * Copyright 1994 Edge Research Inc.                                  *
  4.  **********************************************************************/
  5.  
  6.  
  7. #ifndef HTNOTES_INCL
  8. #define HTNOTES_INCL
  9.  
  10.  
  11. #if !defined (OS_WIN) & !defined (OS_OS21) & !defined (OS_OS22)
  12.   #error Define a valid OS_ constant (WIN, OS21, OS22)
  13. #endif
  14.  
  15. /*******************************************************************
  16.  ***** Basic API datatypes
  17.  *******************************************************************/
  18.  
  19. /* Define HTAPI_NO_BOOLCONST to skip the typedefs for WORD and DWORD */
  20.  
  21. #if !defined (OS_WIN)
  22.   #if !defined (HTAPI_NO_WORDTYPE)
  23.     typedef unsigned short int WORD;
  24.     typedef unsigned long int DWORD;
  25.   #endif
  26. #endif
  27.  
  28. typedef unsigned char  HTBYTE;  /* Byte parameter */
  29. typedef long int  HTINT;        /* Integer parameter */
  30. typedef short int HTSTATUS;     /* Return code */
  31. typedef short int HTBOOL;       /* Boolean parameter (use TRUE or FALSE) */
  32. typedef HTINT     HTFLAGS;      /* OR'ed bit flags */
  33.  
  34. typedef HTINT     HTID;         /* Enhanced API ID */
  35. typedef HTID      HTDOCID;      /* Document ID */
  36. typedef HTID      HTFORMID;     /* Form ID */
  37. typedef HTID      HTVIEWID;     /* View ID */
  38. typedef HTID      HTMACROID;    /* Macro ID */
  39.  
  40. typedef HTINT     HTHANDLE;     /* Enhanced API handle */
  41. typedef HTHANDLE  HTCURSOR;     /* Cursor handle */
  42. typedef HTHANDLE  HTDOCHANDLE;  /* Document handle */
  43. typedef HTHANDLE  HTCOMPHANDLE; /* Composite data item handle */
  44.  
  45.  
  46. /*******************************************************************
  47.  ***** Basic API constants
  48.  *******************************************************************/
  49.  
  50. #define NULLID                  0       /* May be used for any ID */
  51.  
  52. #ifndef NULLHANDLE
  53.   #define NULLHANDLE              0       /* May be used for any HANDLE */
  54. #endif
  55.  
  56.  
  57. /* Define HTAPI_NO_BOOLCONST to skip the definitions for TRUE and FALSE */
  58. #ifndef HTAPI_NO_BOOLCONST
  59.   #define TRUE                  1
  60.   #define FALSE                 0
  61. #endif
  62.  
  63.  
  64. /* Maximum length constants */
  65. #define HTLEN_SERVERNAME      128
  66. #define HTLEN_FILENAME        256
  67. #define HTLEN_USERNAME        256
  68. #define HTLEN_DATABASEINFO    128       /* Database title, categories length */
  69. #define HTLEN_DESIGNNAME       65       /* Form, or View title length */
  70. #define HTLEN_DISPLAYNAME      32       /* Form or view display name length */
  71. #define HTLEN_FIELDNAME        33       /* field or item name length */
  72. #define HTLEN_COLUMNNAME       80       /* View column name length */
  73. #define HTLEN_IMPEXPINFO       80       /* Import/export fmt/ext length */
  74. #define HTLEN_ITEM_DATA     65500       /* Document non-composite item length */
  75. #define HTLEN_COMPUTE_DATA  15360       /* Computable item length */
  76. #define HTLEN_SUMMARY_DATA  15360       /* Summary data per document */
  77. #define HTLEN_NUMBER_TEXT      40       /* Number converted to text */
  78. #define HTLEN_DATETIME_TEXT    80       /* Datetime converted to text */
  79. #define HTLEN_ENV_STRING      150       /* NOTES.INI string value length */
  80. #define HTLEN_ERROR           256       /* HT error string */
  81. #define HTLEN_VERSION          32       /* HT version string */
  82.  
  83.  
  84. /* List enumeration (for List functions) */
  85. typedef enum
  86. {
  87.   HTENUM_ILLEGAL_LIST = 0,
  88.   HTLIST_REFRESH = 1,           /* Re-obtain the information from Notes */
  89.   HTLIST_FIRST = 2,             /* Reset to the first item */
  90.   HTLIST_NEXT = 3,              /* Obtain the next item */
  91.   HTENUM_MAX_LIST
  92. } HTLIST;     /* iterative function operations */
  93.  
  94.  
  95. /* HiTest data type enumeration */
  96. typedef enum
  97. {
  98.   HTENUM_ILLEGAL_TYPE = 0,
  99.  
  100.   /* Standard data types */
  101.   HTTYPE_INT = 1,               /* Long integer */
  102.   HTTYPE_NUMBER = 2,            /* Double, handles Notes Number */
  103.   HTTYPE_TEXT = 3,              /* ASCII text, handles Notes Text */
  104.   HTTYPE_DATETIME = 4,          /* Datetime, handles Notes Time */
  105.   HTTYPE_TEXT_LIST = 5,         /* Text list */
  106.   HTTYPE_NUMBER_LIST = 6,       /* Number list or range */
  107.   HTTYPE_TIME_LIST = 7,         /* Timedate list or range */
  108.   HTTYPE_COMPOSITE = 8,         /* Composite data, handles Notes Rich Text */
  109.  
  110.   /* Special data types - no conversion allowed */
  111.   HTTYPE_REF = 9,               /* $REF field; represented as an HTDOCID */
  112.   HTENUM_MAX_TYPE
  113. } HTTYPE;     /* API datatypes */
  114.  
  115.  
  116. /* Font definitions - structure and values */
  117. typedef struct
  118. {
  119.   HTBYTE face;                  /* Font face (HTFONT_FACE_xxx) */
  120.   HTBYTE attrib;                /* Font attributes (HTFONT_ATTRIB_xxx) */
  121.   HTBYTE color;                 /* Font color (HTFONT_COLOR_xxx) */
  122.   HTBYTE size;                  /* Font size in points */
  123. } HTFONT;
  124.  
  125. #define HTFONT_FACE_ROMAN       0       /* Default font face */
  126. #define HTFONT_FACE_SWISS       1
  127. #define HTFONT_FACE_TYPEWRITER  4
  128. #define HTFONT_FACE_USERDEF_MIN 5       /* Minimum user-defined face */
  129. #define HTFONT_ATTRIB_BOLD      0x0001
  130. #define HTFONT_ATTRIB_ITALIC    0x0002
  131. #define HTFONT_ATTRIB_UNDERLINE 0x0004
  132. #define HTFONT_ATTRIB_STRIKEOUT 0x0008
  133. #define HTFONT_ATTRIB_SUPER     0x0010
  134. #define HTFONT_ATTRIB_SUB       0x0020
  135. #define HTFONT_COLOR_BLACK      0       /* Default font color */
  136. #define HTFONT_COLOR_WRITE      1
  137. #define HTFONT_COLOR_RED        2
  138. #define HTFONT_COLOR_GREEN      3
  139. #define HTFONT_COLOR_BLUE       4
  140. #define HTFONT_COLOR_MAGENTA    5
  141. #define HTFONT_COLOR_YELLOW     6
  142. #define HTFONT_COLOR_CYAN       7
  143. #define HTFONT_SIZE_DEFAULT     10      /* Default font size */
  144.  
  145.  
  146.  
  147. /*******************************************************************
  148.  ***** Global definitions
  149.  *******************************************************************/
  150.  
  151. /* Default global option values */
  152. #define HTDEFAULT_TEXT_TRUNCATE         TRUE
  153. #define HTDEFAULT_BULK_STORE            FALSE
  154. #define HTDEFAULT_STRICT_BIND           TRUE
  155. #define HTDEFAULT_VIEW_POSITION         FALSE
  156. #define HTDEFAULT_FETCH_SUMMARY         FALSE
  157. #define HTDEFAULT_SUMMARY_LIMIT         8192
  158.  
  159.  
  160. /* Global option enumeration */
  161. typedef enum 
  162. {
  163.   HTENUM_ILLEGAL_GLOBOPT = 0,
  164.   HTGLOBOPT_BULK_STORE = 1,         /* new cursor bulk store flag
  165.                                        type: HTBOOL (default = FALSE) */
  166.   HTGLOBOPT_STRICT_BIND = 2,        /* new cursor strict field bind flag
  167.                                        type: HTBOOL (default = TRUE) */
  168.   HTGLOBOPT_VIEW_POSITION = 3,      /* new cursor result set indexing flag
  169.                                        type: HTBOOL (default = FALSE) */
  170.   HTGLOBOPT_LOCAL_SERVERNAME = 4,   /* local server string
  171.                                        type: char * (default = NULL) */
  172.   HTGLOBOPT_FETCH_SUMMARY = 5,      /* new cursor fetch summary flag
  173.                                        type: HTBOOL (default = FALSE) */
  174.   HTGLOBOPT_SUMMARY_LIMIT = 6,      /* new cursor summary limit length
  175.                                        type: HTINT (default = 8192)
  176.                                                    (max = HTLEN_SUMMARY_DATA) */
  177.   HTGLOBOPT_TEXT_TRUNCATE = 7,      /* whether text truncation is valid
  178.                                        type: HTBOOL (default = TRUE) */
  179.   HTENUM_MAX_GLOBOPT
  180. } HTGLOBOPT;        /* htSetOption options (given with type and default) */
  181.  
  182.  
  183. /* Global-level information retrieval items */
  184. typedef enum
  185. {                
  186.   HTENUM_ILLEGAL_GLOBINFO = 0,
  187.   HTGLOBINFO_USERNAME = 1,        /* Notes server name
  188.                                      type: char [HTLEN_USERNAME] */
  189.   HTGLOBINFO_CURRENTTIME = 2,     /* Current time
  190.                                      type: HTDATETIME */
  191.   HTGLOBINFO_TIMEZONE = 3,        /* Time zone
  192.                                      type: HTINT */
  193.   HTGLOBINFO_DST = 4,             /* Daylight savings time status
  194.                                      type: HTBOOL */
  195.   HTGLOBINFO_HTVERSION = 5,       /* HiTest DLL Version string
  196.                                      type: char [HTLEN_VERSION] */
  197.   HTGLOBINFO_SERVERNAME = 6,      /* Server name of local machine, if any
  198.                                      type: char [HTLEN_SERVERNAME] */
  199.   HTENUM_MAX_GLOBINFO
  200. } HTGLOBINFO;       /* htGetInfo items (given with type) */
  201.  
  202.  
  203. /*******************************************************************
  204.  ***** Addin definitions
  205.  *******************************************************************/
  206.  
  207. /* Resource values required for addin support */
  208.  
  209. #define HTADDIN_RESOURCE_NAME           0x3300
  210. #define HTADDIN_RESOURCE_MSG            0x3302
  211.  
  212.  
  213.  
  214. /*******************************************************************
  215.  ***** Server definitions
  216.  *******************************************************************/
  217.  
  218.  
  219. /* Server-level information retrieval items */
  220. typedef enum
  221. {                
  222.   HTENUM_ILLEGAL_SERVINFO = 0,
  223.   HTSERVINFO_PING = 1,            /* Whether server is available
  224.                                      type: HTBOOL */
  225.   HTSERVINFO_RESPLEN = 2,         /* htServerExec response buffer length
  226.                                      type: HTINT */
  227.   HTSERVINFO_RESPSTR = 3,         /* htServerExec response buffer string
  228.                                      type: char [HTSERVINFO_RESPLEN] */
  229.   HTENUM_MAX_SERVINFO
  230. } HTSERVINFO;       /* htServerGetInfo items (given with type) */
  231.  
  232.  
  233.  
  234. /*******************************************************************
  235.  ***** Database definitions
  236.  *******************************************************************/
  237.  
  238.  
  239.  
  240. /*******************************************************************
  241.  ***** Cursor definitions
  242.  *******************************************************************/
  243.  
  244. /* Cursor-level option enumeration */
  245. typedef enum 
  246. {
  247.   HTENUM_ILLEGAL_CUROPT = 0,
  248.   HTCUROPT_BULK_STORE = 1,         /* bulk store flag
  249.                                       type: HTBOOL (default = FALSE) */
  250.   HTCUROPT_STRICT_BIND = 2,        /* strict field bind flag
  251.                                       type: HTBOOL (default = TRUE) */
  252.   HTCUROPT_VIEW_POSITION = 3,      /* result set indexing flag
  253.                                       type: HTBOOL (default = FALSE) */
  254.   HTCUROPT_FETCH_SUMMARY = 4,      /* document fetch summary flag
  255.                                       type: HTBOOL (default = FALSE) */
  256.   HTCUROPT_SUMMARY_LIMIT = 5,      /* item summary limit length
  257.                                        type: HTINT (default = 8192)
  258.                                                    (max = HTLEN_SUMMARY_DATA) */
  259.   HTENUM_MAX_CUROPT
  260. } HTCUROPT;        /* htCurSetOption options (given with type and default) */
  261.  
  262.  
  263. /* Cursor-level information retrieval items */
  264. typedef enum
  265. {                
  266.   HTENUM_ILLEGAL_CURINFO = 0,
  267.   HTCURINFO_SERVERNAME = 1,        /* Notes server name
  268.                                       type: char [HTLEN_SERVERNAME] */
  269.   HTCURINFO_FILENAME = 2,          /* Notes database relative filepath
  270.                                       type: char [HTLEN_FILENAME] */
  271.   HTCURINFO_FORMNAME = 3,          /* Active form name
  272.                                       type: char [HTLEN_DESIGNNAME] */
  273.   HTCURINFO_VIEWNAME = 4,          /* Active view name
  274.                                       type: char [HTLEN_DESIGNNAME] */
  275.   HTCURINFO_DBTITLE = 5,           /* Notes database title
  276.                                       type: char [HTLEN_DATABASEINFO] */
  277.   HTCURINFO_DBCATEGORIES = 6,      /* Notes database categories
  278.                                       type: char [HTLEN_DATABASEINFO] */
  279.   HTCURINFO_DBTEMPLATE = 7,        /* Template name for this database
  280.                                       type: char [HTLEN_DATABASEINFO] */
  281.   HTCURINFO_DBDESIGNTEMPLATE = 8,  /* Template this database was created from
  282.                                       type: char [HTLEN_DATABASEINFO] */
  283.   HTCURINFO_DBHANDLE = 9,          /* Standard Notes API database handle
  284.                                       type: Notes API DBHANDLE */
  285.   HTCURINFO_DBID = 10,             /* Standard Notes API database ID
  286.                                       type: Notes API DBID */
  287.   HTENUM_MAX_CURINFO
  288. } HTCURINFO;       /* htCurGetInfo items (given with type) */
  289.  
  290.  
  291.  
  292. /*******************************************************************
  293.  ***** Form definitions
  294.  *******************************************************************/
  295.  
  296. /* Flags prefixed with HTFORM_ define the attributes of a form,
  297.    and are used in the HTFORM structure below */
  298.  
  299. #define HTFORM_USE_REFERENCE    0x0001  /* Use reference note */
  300. #define HTFORM_MAIL_ON_SAVE     0x0002  /* Mail when saving document */
  301. #define HTFORM_RESPOSE_TO_RESP  0x0004  /* Save REFID to response */
  302. #define HTFORM_RESPONSE_TO_DOC  0x0008  /* Save REFID to main parent */
  303. #define HTFORM_RECALC_FIELDS    0x0010  /* Recalc fields when focus is lost */
  304. #define HTFORM_FORM_IN_DOC      0x0020  /* Store form in document */
  305. #define HTFORM_USE_FORE_COLOR   0x0040  /* Use foreground color to paint */
  306. #define HTFORM_OLE_ACT_COMP     0x0100  /* Activate OLE objects at compose */
  307. #define HTFORM_OLE_ACT_EDIT     0x0200  /* Activate OLE objects at edit */
  308. #define HTFORM_OLE_ACT_READ     0x0400  /* Activate OLE objects at read */
  309. #define HTFORM_SHOW_WIN_COMP    0x0800  /* Show editor window if OLE_ACT_COMP */
  310. #define HTFORM_SHOW_WIN_EDIT    0x1000  /* Show editor window if OLE_ACT_EDIT */
  311. #define HTFORM_SHOW_WIN_READ    0x2000  /* Show editor window if OLE_ACT_READ */
  312. #define HTFORM_UPDATE_IS_RESP   0x4000  /* Updates become responses */
  313. #define HTFORM_UPDATE_IS_PARENT 0x8000  /* Updates become parents */
  314.  
  315.  
  316. typedef struct
  317. {
  318.   HTFORMID formid;                              /* Form ID */
  319.   HTBOOL hidden;                                /* Whether form is hidden */
  320.   char name [HTLEN_DESIGNNAME + 1];             /* Form name */
  321.   char display_name1 [HTLEN_DISPLAYNAME + 1];   /* Primary display name */
  322.   char display_name2 [HTLEN_DISPLAYNAME + 1];   /* Secondary display name */
  323. } HTFORMSUMM;           /* htFormList summary structure */
  324.  
  325.  
  326. typedef struct
  327. {
  328.   HTFLAGS flags;                                /* Form flags (HTFORM_xxx) */
  329.   WORD color;                                   /* Background color */
  330.   HTBOOL hidden;                                /* Whether form is hidden */
  331.   char name [HTLEN_DESIGNNAME + 1];             /* Form name */
  332.   char display_name1 [HTLEN_DISPLAYNAME + 1];   /* Primary display name */
  333.   char display_name2 [HTLEN_DISPLAYNAME + 1];   /* Secondary display name */
  334. } HTFORM;               /* Form definition structure */
  335.  
  336.  
  337.  
  338. /*******************************************************************
  339.  ***** View definitions
  340.  *******************************************************************/
  341.  
  342. /* Flags prefixed with HTVIEW_ define the attributes of a view,
  343.    and are used in the HTVIEW structure below */
  344.  
  345. #define HTVIEW_COLLAPSED        0x0001  /* Open view collapsed
  346.                                            (default is expanded) */
  347. #define HTVIEW_NO_HIERARCHY     0x0002  /* View is flat (no responses) */
  348. #define HTVIEW_DISP_ALL_UNREAD  0x0004  /* Display unread markers in margin
  349.                                            for all documents */
  350. #define HTVIEW_DISP_CONFLICT    0x0008  /* Display replication conflicts */
  351. #define HTVIEW_DISP_MAIN_UNREAD 0x0010  /* Display unread markers in margin
  352.                                            only for main level documents */
  353. #define HTVIEW_USES_TOTALS      0x0020  /* One or more columns are totalled */
  354.  
  355. typedef struct
  356. {
  357.   HTVIEWID viewid;                              /* View ID */
  358.   HTBOOL hidden;                                /* Whether view is hidden */
  359.   char name [HTLEN_DESIGNNAME + 1];             /* View name */
  360.   char display_name1 [HTLEN_DISPLAYNAME + 1];   /* Primary display name */
  361.   char display_name2 [HTLEN_DISPLAYNAME + 1];   /* Secondary display name */
  362. } HTVIEWSUMM;           /* htViewList summary structure */
  363.  
  364.  
  365. typedef struct
  366. {
  367.   HTFLAGS flags;                        /* View flags (HTVIEW_xxx) */
  368.   WORD background_color;                /* Background color */
  369.   HTFONT title_border_font;             /* Font for title and borders */
  370.   HTFONT unread_font;                   /* Font for unread rows */
  371.   HTFONT totals_font;                   /* Font for totals and statistics */
  372.   WORD update_interval;                 /* Seconds between automatic updates
  373.                                            Use zero for no automatic update */
  374.   HTBOOL hidden;                                /* Whether view is hidden */
  375.   char name [HTLEN_DESIGNNAME + 1];             /* View name */
  376.   char display_name1 [HTLEN_DISPLAYNAME + 1];   /* Primary display name */
  377.   char display_name2 [HTLEN_DISPLAYNAME + 1];   /* Secondary display name */
  378. } HTVIEW;               /* View definition structure */
  379.  
  380.  
  381.  
  382. /*******************************************************************
  383.  ***** Field definitions
  384.  *******************************************************************/
  385.  
  386. /* Flags prefixed with HTFIELD_ define the attributes of a form field,
  387.    and are used in the HTFIELD structure below */
  388.  
  389. #define HTFIELD_READWRITERS     0x0001  /* Field contains readwriter names */
  390. #define HTFIELD_EDITABLE        0x0002  /* Field may be edited */
  391. #define HTFIELD_NAMES           0x0004  /* Field contains distinguished names */
  392. #define HTFIELD_STOREDV         0x0008  /* Always store default values */
  393. #define HTFIELD_READERS         0x0010  /* Field contains document readers */
  394. #define HTFIELD_SECTION         0x0020  /* Field contains a section */
  395. #define HTFIELD_COMPUTED        0x0100  /* Computed field */
  396. #define HTFIELD_KEYWORDS        0x0200  /* Keywords field */
  397. #define HTFIELD_PROTECTED       0x0400  /* Field is protected */
  398. #define HTFIELD_REFERENCE       0x0800  /* Name is reference to a shared field */
  399. #define HTFIELD_SIGN            0x1000  /* Field is signed */
  400. #define HTFIELD_SEAL            0x2000  /* Field is sealed (encrypted) */
  401. #define HTFIELD_KWD_UI_STD      0x0000  /* Keywords UI is standard */
  402. #define HTFIELD_KWD_UI_CHECK    0x4000  /* Keywords UI is a checkbox */
  403. #define HTFIELD_KWD_UI_RADIO    0x8000  /* Keywords UI is a radio button */
  404. #define HTFIELD_KWD_UI_NEW      0xC000  /* Allow new keywords */
  405.  
  406. /* Field-level information retrieval items */
  407. typedef enum
  408. {                
  409.   HTENUM_ILLEGAL_FIELDINFO = 0,
  410.   HTFIELDINFO_DESCRIPTION = 1,          /* Field description
  411.                                            type: char *
  412.                                            length: HTFIELD.desc_len */
  413.   HTFIELDINFO_KEYWORDS = 2,             /* Field keywords text list
  414.                                            type: HTTYPE_TEXT_LIST
  415.                                            length: HTFIELD.keylist_len */
  416.   HTFIELDINFO_HTFIELD = 3,              /* Field information
  417.                                            type: HTFIELD* */
  418.   HTENUM_MAX_FIELDINFO
  419. } HTFIELDINFO;       /* htFieldGetInfo items (given with type) */
  420.  
  421.  
  422. typedef struct
  423. {
  424.   HTTYPE type;                          /* Field data type */
  425.   char name [HTLEN_FIELDNAME + 1];      /* Field name */
  426.   HTFLAGS flags;                        /* Field flags (HTFIELD_xxx) */
  427.   HTINT desc_len;                       /* Length of the field description */
  428.   HTINT keylist_len;                    /* Length of the keywords text list */
  429. } HTFIELD;              /* Field definition structure */
  430.  
  431.  
  432.  
  433. /*******************************************************************
  434.  ***** Column definitions
  435.  *******************************************************************/
  436.  
  437. /* Flags prefixed with HTCOLUMN_ define the attributes of a view column,
  438.    and are used in the HTCOLUMN structure below */
  439.  
  440. #define HTCOLUMN_SORT           0x0001  /* Column is sorted (indexed) */
  441. #define HTCOLUMN_SORT_CAT       0x0002  /* Column is a category */
  442. #define HTCOLUMN_SORT_DESC      0x0004  /* Sort descending (ascending is default) */
  443. #define HTCOLUMN_HIDDEN         0x0008  /* Column is hidden */
  444. #define HTCOLUMN_RESPONSE       0x0010  /* Column is a response-only column */
  445. #define HTCOLUMN_HIDE_DETAIL    0x0020  /* Hide detail on subtotaled columns */
  446. #define HTCOLUMN_ICON           0x0040  /* Display icon instead of text */
  447. #define HTCOLUMN_JUSTIFY_RIGHT  0x0100  /* Right justify (left is default) */
  448. #define HTCOLUMN_JUSTIFY_CENTER 0x0200  /* Center justify (left is default) */  
  449.  
  450. /* A column's flags may contain only one of the following bits */
  451. #define HTCOLUMN_TOTAL          0x1000  /* Total all values */
  452. #define HTCOLUMN_AVG_PER_CHILD  0x2000  /* Average per child */
  453. #define HTCOLUMN_PCT_OF_VIEW    0x3000  /* Percent of total view */
  454. #define HTCOLUMN_PCT_OF_PARENT  0x4000  /* Percent of parent category */
  455. #define HTCOLUMN_AVG_PER_DOC    0x5000  /* Average per document */
  456.  
  457. /* To determine whether a column is totaled, use the following mask */
  458. #define HTCOLUMN_MASK_TOTAL     0xF000
  459.  
  460.  
  461. typedef struct
  462. {
  463.   char name [HTLEN_COLUMNNAME + 1];     /* Column name */
  464.   HTINT width;                          /* Display width in 1/8 avg char units */
  465.   HTFLAGS flags;                        /* Column flags (HTCOLUMN_xxx) */
  466.   HTFONT font;                          /* Column font information */
  467. } HTCOLUMN;             /* Column definition structure */
  468.  
  469.  
  470.  
  471. /*******************************************************************
  472.  ***** Macro definitions
  473.  *******************************************************************/
  474.  
  475.  
  476. typedef struct
  477. {
  478.   HTMACROID macroid;                            /* Macro ID */
  479.   HTBOOL hidden;                                /* Whether macro is hidden */
  480.   char name [HTLEN_DESIGNNAME + 1];             /* Macro name */
  481.   char display_name1 [HTLEN_DISPLAYNAME + 1];   /* Primary display name */
  482.   char display_name2 [HTLEN_DISPLAYNAME + 1];   /* Secondary display name */
  483. } HTMACROSUMM;           /* htMacroList summary structure */
  484.  
  485.  
  486.  
  487. /*******************************************************************
  488.  ***** Formula definitions
  489.  *******************************************************************/
  490.  
  491.  
  492.  
  493. /*******************************************************************
  494.  ***** Index definitions
  495.  *******************************************************************/
  496.  
  497. /* Index information retrieval items */
  498. typedef enum
  499. {                
  500.   HTENUM_ILLEGAL_INDEXINFO = 0,
  501.   HTINDEXINFO_ISSELECT = 1,      /* Whether a selection index exists
  502.                                     type: HTBOOL */
  503.   HTINDEXINFO_ISVIEWBASED = 2,   /* Whether the index is view-based
  504.                                     type: HTBOOL */
  505.   HTINDEXINFO_ISFTSEARCH = 3,    /* Whether the index is a full text search
  506.                                     type: HTBOOL */
  507.   HTINDEXINFO_VIEWDEPTH = 4,     /* View depth of current index entry
  508.                                     type: HTINT */
  509.   HTINDEXINFO_FTSCORE = 5,       /* FT relevance score of current index entry
  510.                                     type: HTINT */
  511.   HTENUM_MAX_INDEXINFO
  512. } HTINDEXINFO;   /* htIndexGetInfo items (given with type) */
  513.  
  514.  
  515. /* navigation directions enumeration. One member of the following
  516.    enumeration is OR-ed with zero or more HTNAV_ flags (see below)
  517.    to produce the htIndexNavigate direction parameter */
  518. typedef enum
  519. {
  520.   HTENUM_ILLEGAL_NAV = 0,
  521.   HTNAV_NEXT = 1,               /* Navigate next (depth-first) */
  522.   HTNAV_END = 2,                /* Navigate to the end */
  523.   HTNAV_PEER = 3,               /* Navigate at the current level */
  524.   HTNAV_CHILD = 4,              /* Navigate one level down (not with BACKWARD) */
  525.   HTNAV_PARENT = 5,             /* Navigate one level up */
  526.   HTNAV_MAIN = 6,               /* Navigate at the top level */
  527.   HTNAV_CURRENT = 7,            /* Stay on the current entry */
  528.   HTENUM_MAX_NAV
  529. } HTNAV;
  530.  
  531.  
  532. /* Flags prefixed with HTNAV_ define the modifiers available for index
  533.    navigation. Zero or more of these flags are OR-ed with one member
  534.    of the HTNAV enumeration above to produce a navigation direction */
  535.  
  536. #define HTNAV_PEEK              0x0100  /* Restore current index position */
  537. #define HTNAV_BACKWARD          0x0200  /* Go backward (default is forward) */
  538. #define HTNAV_NOCATEGORY        0x1000  /* Ignore category rows (view only) */
  539. #define HTNAV_NOVIEWTOTAL       0x2000  /* Include total rows (view only) */
  540. #define HTNAV_MASK              0x00FF  /* Value to mask out navigation flags */
  541.  
  542. /* Special HTDOCID values returned by htIndexNavigate for category or
  543.    view totals rows */
  544. #define HTINDEX_DOCID_CATEGORY  -1      /* Docid value for category row */
  545. #define HTINDEX_DOCID_VIEWTOTAL -2      /* Docid value for view total row */
  546.  
  547.  
  548. /* Flags prefixed with HTSEARCH_ define the flags available for full
  549.    text search via htIndexSearch */
  550. #define HTSEARCH_SCORE          0x0001  /* Score results */
  551. #define HTSEARCH_SORT_DATE      0x0002  /* Sort by date (descending) */
  552. #define HTSEARCH_SORT_ASCEND    0x0004  /* Sort ascending (default is descending) */
  553. #define HTSEARCH_STEM_WORDS     0x0008  /* Stem words */
  554. #define HTSEARCH_REFINE         0x0010  /* Refine previous search results */
  555. #define HTSEARCH_CANCEL         0x1000  /* Cancel FT search results */
  556.  
  557.  
  558. /*******************************************************************
  559.  ***** Document definitions
  560.  *******************************************************************/
  561.  
  562. /* Document information retrieval items */
  563. typedef enum
  564. {                
  565.   HTENUM_ILLEGAL_DOCINFO = 0,
  566.   HTDOCINFO_LASTMODIFIED = 1,   /* Last time document was modified
  567.                                    type: HTTYPE_DATETIME */
  568.   HTDOCINFO_FORMNAME = 2,       /* Form name for this document
  569.                                    type: char [HTLEN_DESIGNNAME] */
  570.   HTDOCINFO_TITLELENGTH = 3,    /* Document window title string length
  571.                                    type: HTINT */
  572.   HTDOCINFO_TITLESTRING = 4,    /* Document window title string
  573.                                    type: char [HTDOCINFO_TITLELENGTH] */
  574.   HTDOCINFO_ISDIRTY = 5,        /* Whether data has been changed
  575.                                    type: HTBOOL */
  576.   HTDOCINFO_HTDOCID = 6,        /* HiTest Document ID for this document
  577.                                    type: HTDOCID */
  578.   HTDOCINFO_HTCURSOR = 7,       /* HiTest Cursor in which document was opened
  579.                                    type: HTCURSOR */
  580.   HTDOCINFO_NOTEID = 8,         /* Standard Notes API note ID
  581.                                    type: Notes API NOTEID */
  582.   HTDOCINFO_NOTEHANDLE = 9,     /* Standard Notes API note hanle
  583.                                    type: Notes API NOTEHANDLE */
  584.   HTDOCINFO_FILECOUNT = 10,     /* Number of file attachments
  585.                                    type: HTINT */
  586.   HTDOCINFO_CREATED = 11,       /* Time document was created
  587.                                    type: HTTYPE_DATETIME */
  588.   HTENUM_MAX_DOCINFO
  589. } HTDOCINFO;    /* htDocGetInfo items (given with type) */
  590.  
  591.  
  592.  
  593. /*******************************************************************
  594.  ***** Item definitions
  595.  *******************************************************************/
  596.  
  597. /* Response item name - use this constant to get or put the reference
  598.    field of a document */
  599.  
  600. #define HTNAME_REF              "$REF"        /* Reference field */
  601.  
  602.  
  603. /* Flags prefixed with HTITEM_ define the attributes of a document item,
  604.    and are used in the HTITEM structure below */
  605.  
  606. #define HTITEM_SIGN            0x0001  /* Signed field */
  607. #define HTITEM_SEAL            0x0002  /* Sealed field (encrypted) */
  608. #define HTITEM_SUMMARY         0x0004  /* Summary field (usable in formulas) */
  609. #define HTITEM_READWRITERS     0x0020  /* Author Names field */
  610. #define HTITEM_NAMES           0x0040  /* Names field */
  611. #define HTITEM_PROTECTED       0x0200  /* To edit field requires Editor access */
  612. #define HTITEM_READERS         0x0400  /* Reader Names field */
  613.  
  614.  
  615. typedef struct
  616. {
  617.   HTTYPE type;                          /* Item data type */
  618.   char name [HTLEN_FIELDNAME + 1];      /* Item name */
  619.   HTFLAGS flags;                        /* Item flags (HTITEM_xxx) */
  620.   HTINT length;                         /* Item value length */
  621.   void *value;                          /* Item value (if requested) */
  622. } HTITEM;               /* Item iterator information structure */
  623.  
  624.  
  625. /* Item information retrieval items */
  626. typedef enum
  627. {                
  628.   HTENUM_ILLEGAL_ITEMINFO = 0,
  629.   HTITEMINFO_TYPE = 1,          /* Type of the item
  630.                                    type: HTTYPE */
  631.   HTITEMINFO_FLAGS = 2,         /* Flags for the item
  632.                                    type: HTFLAGS */
  633.   HTITEMINFO_LENGTH = 3,        /* Length of the item without conversion
  634.                                    type: HTINT */
  635.   HTENUM_MAX_ITEMINFO
  636. } HTITEMINFO;   /* htItemGetInfo items (given with type) */
  637.  
  638.  
  639. /*******************************************************************
  640.  ***** Cell definitions
  641.  *******************************************************************/
  642.  
  643.  
  644.  
  645. /*******************************************************************
  646.  ***** File definitions
  647.  *******************************************************************/
  648.  
  649.  
  650.  
  651. /*******************************************************************
  652.  ***** Mail definitions
  653.  *******************************************************************/
  654.  
  655. /* Flags prefixed with HTMAIL_ define options when sending mail */
  656.  
  657. #define HTMAIL_PRIORITY_LOW     0x0001  /* Send low priority (default-normal) */
  658. #define HTMAIL_PRIORITY_HIGH    0x0002  /* Send high priority (default-normal) */
  659. #define HTMAIL_REPORT_NONE      0x0004  /* No delivery report (default-basic) */
  660. #define HTMAIL_REPORT_CONFIRM   0x0008  /* Confirmed report (default-basic) */
  661. #define HTMAIL_RETURN_RECEIPT   0x0010  /* Return receipt (default-no receipt) */
  662. #define HTMAIL_SAVE             0x0100  /* Save document when sending */
  663. #define HTMAIL_SAVE_MAILDB      0x0200  /* Save document in mail database */
  664. #define HTMAIL_BOUND_ITEMS      0x1000  /* Use bound fields as mail fields */
  665. #define HTMAIL_EMBED_FORM       0x2000  /* Embed the DOCID's form in the document */
  666.  
  667.  
  668. /* Item names for common memo fields are given below */
  669. #define HTMAIL_ITEM_SENDTO              "SendTo"
  670. #define HTMAIL_ITEM_COPYTO              "CopyTo"
  671. #define HTMAIL_ITEM_BLINDCOPYTO         "BlindCopyTo"
  672. #define HTMAIL_ITEM_SUBJECT             "Subject"
  673. #define HTMAIL_ITEM_BODY                "Body"
  674. #define HTMAIL_ITEM_DELIVERYPRIORITY    "DeliveryPriority"
  675. #define HTMAIL_ITEM_DELIVERYREPORT      "DeliveryReport"
  676. #define HTMAIL_ITEM_RETURNRECEIPT       "ReturnReceipt"
  677.  
  678. /* The following HTMAIL structure may be uesd to submit one or more
  679.    mail memo fields to the htMailSend function */
  680.  
  681. typedef struct
  682. {
  683.   char *sendto;                 /* Separate names with semicolons or commas */
  684.   char *copyto;                 /* Separate names with semicolons or commas */
  685.   char *blindcopyto;            /* Separate names with semicolons or commas */
  686.   char *subject;                /* Subject field */
  687.   char *body_text;              /* If this is NULL, use body_comp */
  688.   HTCOMPHANDLE body_comp;       /* If this is NULL, use body_text */
  689. } HTMEMO;               /* Simple mail memo structure */
  690.  
  691.  
  692.  
  693. /*******************************************************************
  694.  ***** Composite definitions
  695.  *******************************************************************/
  696.  
  697. /* Composite information retrieval items */
  698. typedef enum
  699. {                
  700.   HTENUM_ILLEGAL_COMPINFO = 0,
  701.   HTCOMPINFO_ITEMNAME = 1,      /* Item name within the document
  702.                                    type: char [HTLEN_FIELDNAME] */
  703.   HTCOMPINFO_ISDIRTY = 2,       /* Whether data has been changed
  704.                                    type: HTBOOL */
  705.   HTCOMPINFO_HTDOCHANDLE = 3,   /* HiTest document containing this composite
  706.                                    type: HTDOCID */
  707.   HTCOMPINFO_HTCURSOR = 4,      /* HiTest Cursor in which composite was opened
  708.                                    type: HTCURSOR */
  709.   HTENUM_MAX_COMPINFO
  710. } HTCOMPINFO;    /* htGetCompInfo items given with type */
  711.  
  712.  
  713. /* The following value may be used as the tab_spaces parameter to
  714.    htCompListText and indicates that tabs should be kept */
  715.  
  716. #define HTCOMPTAB_KEEP  -1
  717.  
  718.  
  719.  
  720. /*******************************************************************
  721.  ***** Composite record definitions
  722.  *******************************************************************/
  723.  
  724.  
  725. /* Composite record data type enumeration - the record types are given
  726.    with the structure used to get or put data */
  727. typedef enum
  728. {
  729.   HTENUM_ILLEGAL_COMP = 0,
  730.   HTCOMP_BLOB = 1,              /* Generic composite data (HTC_BLOB) */
  731.   HTCOMP_PABDEF = 2,            /* PAB definition (HTC_PABDEF) */
  732.   HTCOMP_PABREF = 3,            /* PAB reference (HTC_PABREF) */
  733.   HTCOMP_PARA = 4,              /* Paragraph indicator (no data) */
  734.   HTCOMP_TEXT = 5,              /* Text record (HTC_TEXT) */
  735.   HTCOMP_DOCLINK = 6,           /* Doclink (HTC_DOCLINK) */
  736.   HTCOMP_DDE = 7,               /* DDE object beginning (HTC_DDE) */
  737.   HTCOMP_DDE_END = 8,           /* DDE object end marker (no data) */
  738.   HTCOMP_OLE = 9,               /* OLE objet beginning (HTC_OLE) */
  739.   HTCOMP_OLE_END = 10,          /* OLE object end marker (no data) */
  740.   HTENUM_MAX_COMP
  741. } HTCOMP;     /* API composite record types */
  742.  
  743.  
  744. typedef struct
  745. {
  746.   HTINT length;                 /* Length of data (including header) */
  747.   char *buffer;                 /* Pointer to data (including header) */
  748. } HTC_BLOB;             /* Generic composite record structure */
  749.  
  750.  
  751. /* NOTE: The acronym PAB stands for Paragraph Attribute Block, a
  752.    set of values defining paragraph format. The following values are
  753.    used in the PAB definition structure HTC_PABDEF */
  754.  
  755.  
  756. /* The following definition should be used in the PAB Definition
  757.    structure for defining margins (eg: TWIPS_PER_INCH/3 for 1/3 inch) */
  758. #define TWIPS_PER_INCH       1440       /* Number of twips in one inch */
  759.  
  760. /* PABDEF justification enumeration used in HTC_PABDEF justify field */
  761. #define HTPABJUSTIFY_LEFT       0       /* Left justification */
  762. #define HTPABJUSTIFY_RIGHT      1       /* Right justification */
  763. #define HTPABJUSTIFY_FULL       2       /* Full (left and right) justification */
  764. #define HTPABJUSTIFY_CENTER     3       /* Center justification */
  765. #define HTPABJUSTIFY_NONE       4       /* No word wrap */
  766.  
  767. /* PABDEF flags used in HTC_PABDEF flags field */
  768. #define HTPAB_PAGE_BEFORE   0x0001  /* Paragraph starts a new page */
  769. #define HTPAB_KEEP_WITH_NEXT    0x0002  /* Keep with next paragraph */
  770. #define HTPAB_KEEP_TOGETHER     0x0004  /* Don't split lines in paragraph */
  771. #define HTPAB_PROPAGATE         0x0008  /* Propagate PAGE_BEFORE and KEEP_WITH_NEXT */
  772. #define HTPAB_HIDE_READ         0x0010  /* Hide para in view mode */
  773. #define HTPAB_HIDE_EDIT         0x0020  /* Hide para in edit mode */
  774. #define HTPAB_HIDE_PRINT        0x0040  /* Hide para when printing */
  775. #define HTPAB_DISPLAY_RIGHT     0x0080  /* Honor right margin when displaying */
  776. #define HTPAB_HIDE_COPY         0x0200  /* Hide para when copying/forwarding */
  777.  
  778.  
  779. typedef struct
  780. {
  781.   WORD pabid;                   /* ID for this PABDEF */
  782.   WORD justify;                 /* Justification method (HTPABJUSTIFY_xxx) */
  783.   WORD linespace;               /* 2 * (line spacing - 1) */
  784.   WORD paraspace_before;        /* Linespace units before paragraph */
  785.   WORD paraspace_after;         /* Linespace units after paragraph */
  786.   WORD left_margin;             /* Left margin, in twips (1/1440 inch)
  787.                                    Notes default is TWIPS_PER_INCH */
  788.   WORD right_margin;            /* Rigth margin, in twips
  789.                                    Zero means 1" from right edge */
  790.   WORD first_left_margin;       /* First line left margin, in twips */
  791.   WORD tab_count;               /* Number of tab stops in tabs table */
  792.   short int tabs [20];          /* Tab stops, in twips */
  793.                                 /* Negative value means decimal tab */
  794.   WORD flags;                   /* PABDEF flags (HTPAB_xxx) */
  795. } HTC_PABDEF;           /* Composite record PAB definition */
  796.  
  797.  
  798. typedef struct
  799. {
  800.   WORD pabid;                   /* ID of the PABDEF to reference */
  801. } HTC_PABREF;           /* Composite record PAB reference */
  802.  
  803.  
  804. typedef struct
  805. {
  806.   HTFONT font;                  /* Text font */
  807.   HTINT length;                 /* Length of data. Zero indicates no text */
  808.   char *buffer;                 /* Pointer to data */
  809. } HTC_TEXT;             /* Composite record text block */
  810.  
  811.  
  812. typedef struct
  813. {
  814.   HTCURSOR cursor;              /* Cursor containing document */
  815.   HTVIEWID viewid;              /* View to which the link will point */
  816.   HTDOCHANDLE dochand;          /* Document to which the link will point */
  817.   WORD comment_length;          /* Length of display comment
  818.                                    Use zero on input for null terminated */
  819.   char *comment;                /* Link display comment. If omitted on input
  820.                                    (empty or NULL), will be built by HiTest */
  821.   HTBOOL read_comment_only;     /* When reading, whether to only retrieve the
  822.                                    comment (TRUE), or to open the cursor and
  823.                                    document handle (FALSE) */
  824. } HTC_DOCLINK;          /* Composite record doclink */
  825.  
  826.  
  827. /* Clipboard format constants used for both DDE and OLE records */
  828. #define HTCLIP_TEXT             0x0001  /* Text */
  829. #define HTCLIP_METAFILE         0x0002  /* Metafile or MetafilePict */
  830. #define HTCLIP_BITMAP           0x0003  /* Bitmap */
  831. #define HTCLIP_RTF              0x0004  /* Rich text format */
  832.  
  833.  
  834. /* DDE constants used in HTC_DDE structure */
  835. #define HTLEN_DDE_SERVER        32
  836. #define HTLEN_DDE_TOPIC        100
  837. #define HTLEN_DDE_ITEM          64
  838.  
  839. #define HTDDE_HOTLINK            0x0001  /* Hot DDE link */
  840. #define HTDDE_WARMLINK          0x0002  /* Warm DDE link */
  841. #define HTDDE_ISEMBED           0x0004  /* Embedded document is used */
  842.         
  843.  
  844. typedef struct
  845. {
  846.   char server_name [HTLEN_DDE_SERVER];  /* Null terminated DDE server name */
  847.   char topic_name [HTLEN_DDE_TOPIC];    /* Null terminated DDE topic name */
  848.   char item_name [HTLEN_DDE_ITEM];      /* Null terminate DDE item name */
  849.   HTINT flags;                          /* DDE flags (HTDDE_xxx) */
  850.   WORD embed_count;                     /* Number of embedded docs (0 or 1) */
  851.   WORD clipboard;                       /* Clipboard format (HTCLIP_xxx) */
  852.   WORD embed_length;                    /* Length of embedded document name */
  853.   char *embed_name;                     /* Embedded document name */
  854. } HTC_DDE;              /* Composite record DDE object starting point */
  855.  
  856.  
  857. /* OLE constants used in HTC_OLE structure */
  858. #define HTOLE_EMBEDDED          0x0001  /* object is OLE embedded object */
  859. #define HTOLE_LINK              0x0002  /* object is OLE link object */
  860. #define HTOLE_HOTLINK           0x0004  /* OLE link is automatic (hot) */
  861. #define HTOLE_WARMLINK          0x0008  /* OLE link is manual (warm) */
  862.         
  863.  
  864. typedef struct
  865. {
  866.   HTINT flags;                          /* OLE flags (HTOLE_xxx) */
  867.   WORD clipboard;                       /* Clipboard format (HTCLIP_xxx) */
  868.   WORD file_length;                     /* Length of attached file name -
  869.                                            First string in name_buffer */
  870.   WORD class_length;                    /* Length of class name (optional) -
  871.                                            Second string in name_buffer */
  872.   WORD template_length;                 /* Length of template name (optional) -
  873.                                            Third string in name_buffer */
  874.   char *name_buffer;                    /* Name buffer containing 1-3 names,
  875.                                            lengths given in xxx_length fields */
  876. } HTC_OLE;              /* Composite record OLE object starting point */
  877.  
  878.  
  879.  
  880. /*******************************************************************
  881.  ***** Text List definitions
  882.  *******************************************************************/
  883.  
  884.  
  885. /*******************************************************************
  886.  ***** Datetime definitions
  887.  *******************************************************************/
  888.  
  889.  
  890. /* Datetime structure - do not manipulate directly */
  891. typedef struct
  892. {
  893.   DWORD innards [2];
  894. } HTDATETIME;           /* Datetime structure */
  895.  
  896.  
  897. typedef struct
  898. {
  899.   short int year;               /* Year (1-32767) */
  900.   short int month;              /* Month (1-12) */
  901.   short int dom;                /* Day of month (1-31) */
  902.   short int weekday;            /* Day of week (1-7 where Sunday = 1) */
  903.   short int hour;               /* Hour (0-23) */
  904.   short int minute;             /* Minute (0-59) */
  905.   short int second;             /* Second (0-59) */
  906.   short int hundsec;            /* Hundredths of second (0-99) */
  907.   HTBOOL dst;                   /* Whether daylight savings is in effect */
  908.   short int zone;               /* Time zone (-11 to 11) */ 
  909. } HTTIMESUMM;           /* Datetime component structure */
  910.  
  911.  
  912. /* Datetime information retrieval items */
  913. typedef enum
  914. {                
  915.   HTENUM_ILLEGAL_TIMEINFO = 0,
  916.   HTTIMEINFO_JULIAN = 1,        /* Julian date
  917.                                    type: HTINT */
  918.   HTTIMEINFO_TICKS = 2,         /* Ticks (1/100 seconds) since midnight GMT
  919.                                    type: HTINT */
  920.   HTTIMEINFO_HTTIMESUMM = 3,    /* Datetime components structure
  921.                                    type: HTTIMESUMM */
  922.   HTENUM_MAX_TIMEINFO
  923. } HTTIMEINFO;    /* htGetDatetimeInfo items given with type */
  924.  
  925.  
  926. /*******************************************************************
  927.  ***** Error definitions
  928.  *******************************************************************/
  929.  
  930.  
  931. typedef enum
  932. {
  933.   HTSEVERITY_NOERROR = 0,       /* No error */
  934.   HTSEVERITY_WARNING = 1,       /* Warning-level error */
  935.   HTSEVERITY_NONFATAL = 2,      /* Normal error */
  936.   HTSEVERITY_USAGE = 3,         /* Error in calling program's usage */
  937.   HTSEVERITY_FATAL = 4,         /* Fatal error */
  938.   HTSEVERITY_PROGRAM = 10       /* Internal software error - contact Edge Research */
  939. } HTSEVERITY;
  940.  
  941.  
  942. /* A return code of zero always indicates successful operation */
  943.  
  944. #define HTSUCCESS                0x0000  /* Successful operation */
  945.  
  946. #define HTFAIL_GENERAL           0x0100  /* GENERAL ERRORS */
  947. #define HTFAIL_NOTES_ERROR       0x0101  /* Notes-specific error produced */
  948. #define HTFAIL_PROGRAM           0x0102  /* Program failure */
  949. #define HTFAIL_ILLEGAL_ENUM      0x0103  /* A enumerated parameter had an illegal value */
  950. #define HTFAIL_NULL_PARAMETER    0x0104  /* A pointer parameter of NULL is illegal */
  951. #define HTFAIL_OVERFLOW          0x0105  /* Data too large for result buffer */
  952. #define HTFAIL_DUPLICATE         0x0106  /* Illegal duplicate */
  953. #define HTFAIL_BAD_FORMAT        0x0107  /* A parameter had a bad format */
  954. #define HTFAIL_END_OF_DATA       0x0108  /* There is no more data left */
  955. #define HTFAIL_DATA_UNAVAIL      0x0109  /* No data results to load */
  956.  
  957. #define HTFAIL_GLOBAL            0x0200  /* GLOBAL-LEVEL ERRORS */
  958. #define HTFAIL_INCORRECT_DLL     0x0201  /* Calling program was compiled with an
  959.                                             incompatible version of the HiTest DLL */
  960. #define HTFAIL_ALREADY_INIT      0x0202  /* htinit called when already initialized */
  961. #define HTFAIL_NOT_INIT          0x0203  /* htxxxx called before htinit */
  962. #define HTFAIL_INVALID_CONVERT   0x0204  /* An illegal conversion was attempted */
  963.  
  964. #define HTFAIL_SERVER            0x0300  /* SESSION-LEVEL ERRORS */
  965.  
  966. #define HTFAIL_DATABASE          0x0400  /* DATABASE-LEVEL ERRORS */
  967. #define HTFAIL_INVALID_DATABASE  0x0401  /* Invalid database */
  968.  
  969. #define HTFAIL_CURSOR            0x0500  /* CURSOR-LEVEL ERRORS */
  970. #define HTFAIL_INVALID_CURSOR    0x0501  /* Invalid cursor */
  971. #define HTFAIL_OPEN_DOCUMENTS    0x0502  /* htclose called with open documents */
  972. #define HTFAIL_ACTIVE_RESULT     0x0503  /* An active result prevents the operation */
  973.  
  974. #define HTFAIL_FORM              0x0700  /* FORM-LEVEL ERRORS */
  975. #define HTFAIL_INVALID_FORM      0x0701  /* Invalid form */
  976. #define HTFAIL_FORM_UNAVAIL      0x0702  /* Strict binding is on but no form is set */
  977.  
  978. #define HTFAIL_VIEW              0x0800  /* VIEW-LEVEL ERRORS */
  979. #define HTFAIL_INVALID_VIEW      0x0801  /* Invalid view */
  980.  
  981. #define HTFAIL_FIELD             0x0900  /* FIELD-LEVEL ERRORS */
  982. #define HTFAIL_INVALID_FIELD     0x0901  /* A field was not in the form with strict_bind */
  983.  
  984. #define HTFAIL_COLUMN            0x0A00  /* COLUMN-LEVEL ERRORS */
  985. #define HTFAIL_INVALID_COLUMN    0x0A01  /* A column not in the view was specified */
  986.  
  987. #define HTFAIL_MACRO             0x0B00  /* MACRO-LEVEL ERRORS */
  988. #define HTFAIL_INVALID_MACRO     0x0B01  /* Invalid macro */
  989.  
  990. #define HTFAIL_FORMULA           0x0C00  /* FORMULA-LEVEL ERRORS */
  991. #define HTFAIL_INVALID_FORMULA   0x0C01  /* An error encountered parsing a formula */
  992.  
  993. #define HTFAIL_INDEX             0x0D00  /* INDEX-LEVEL ERRORS */
  994. #define HTFAIL_INVALID_NAVTYPE   0x0D01  /* View-navigation attempted on flat index */
  995.  
  996. #define HTFAIL_DOCUMENT          0x0E00  /* DOCUMENT-LEVEL ERRORS */
  997. #define HTFAIL_INVALID_DOCUMENT  0x0E01  /* Invalid HTDOCHANDLE or HTDOCID */
  998.  
  999. #define HTFAIL_ITEM              0x0F00  /* ITEM-LEVEL ERRORS */
  1000. #define HTFAIL_INVALID_ITEM      0x0F01  /* Invalid item name */
  1001.  
  1002. #define HTFAIL_CELL              0x1000  /* CELL-LEVEL ERRORS */
  1003.  
  1004. #define HTFAIL_FILE              0x1100  /* FILE-LEVEL ERRORS */
  1005. #define HTFAIL_INVALID_DIRECTORY 0x1101  /* Invalid directory */
  1006. #define HTFAIL_INVALID_FILE_ITEM 0x1102  /* Invalid file attachment */
  1007.  
  1008. #define HTFAIL_MAIL              0x1200  /* MAIL-LEVEL ERRORS */
  1009.  
  1010. #define HTFAIL_COMPOSITE         0x1300  /* COMPOSITE-LEVEL ERRORS */
  1011. #define HTFAIL_INVALID_COMPOSITE 0x1301  /* Invalid HTCOMPHANDLE */
  1012. #define HTFAIL_INVALID_IMPEXP    0x1302  /* An invalid import/export library was used */
  1013. #define HTFAIL_INVALID_FONT      0x1303  /* A font was not in the document font table */
  1014.  
  1015. #define HTFAIL_COMPREC           0x1400  /* COMPREC-LEVEL ERRORS */
  1016.  
  1017. #ifdef OS_OS22
  1018.   #define HTAPIERR      _Optlink
  1019.   #define HTAPIERRTYPE  * HTAPIERR
  1020. #else
  1021.   #define HTAPIERR      pascal
  1022.   #define HTAPIERRTYPE  HTAPIERR *
  1023. #endif
  1024.  
  1025. /* The error callback procedure HTERRORPROC is prototyped as follows */
  1026. typedef HTSTATUS (HTAPIERRTYPE HTERRORPROC) (HTSTATUS code,
  1027.                                              HTSEVERITY severity,
  1028.                                              char *errmsg,
  1029.                                              void *buffer);
  1030.  
  1031.  
  1032. /*******************************************************************
  1033.  ***** API functions
  1034.  *******************************************************************/
  1035.  
  1036. #ifdef OS_OS22
  1037.   #define HTAPIX
  1038.   #define HTAPIV
  1039.  
  1040. #else
  1041.   #define HTAPIX pascal far _export _loadds
  1042.   #define HTAPIV  cdecl far _export _loadds
  1043. #endif
  1044.  
  1045. /* The following definition is required for Microsoft vararg exporting */
  1046. #ifndef OS_OS22
  1047.   #define htFormulaConcatf      HTFORMULACONCATF
  1048. #endif
  1049.  
  1050. /* Cursor level functions */
  1051. extern HTSTATUS HTAPIX htInit (void);
  1052. extern HTSTATUS HTAPIX htTerm (void);
  1053. extern HTSTATUS HTAPIX htSetOption (HTGLOBOPT option, HTINT number, char *string);
  1054. extern HTSTATUS HTAPIX htGetInfo (HTGLOBINFO item, void *buffer);
  1055. extern HTSTATUS HTAPIX htGetEnvString (char *name, HTINT length, char *value); 
  1056. extern HTSTATUS HTAPIX htSetEnvString (char *name, char *value, HTBOOL create,
  1057.                                        HTBOOL overwrite);
  1058. extern HTINT    HTAPIX htConvertLength (HTTYPE src_type, HTINT src_len,
  1059.                                         void *src_buffer, HTTYPE dest_type);
  1060. extern HTSTATUS HTAPIX htConvert (HTTYPE src_type, HTINT src_len, void *src_buffer,
  1061.                                   HTTYPE dest_type, HTINT dest_len, void *dest_buffer,
  1062.                                   HTINT *actual_len);
  1063.  
  1064. extern HTSTATUS HTAPIX htAddinSetStatus (HTBOOL show, char *status);
  1065. extern HTSTATUS HTAPIX htAddinPutMsg (HTBOOL error, char *string);
  1066. extern HTSTATUS HTAPIX htAddinSetInterval (HTINT interval);
  1067. extern HTSTATUS HTAPIX htAddinGetInterval (HTBOOL wait, HTINT *interval,
  1068.                                            HTINT *iteration);
  1069. extern HTSTATUS HTAPIX htAddinYield (HTINT delay_msec);
  1070.  
  1071. extern HTSTATUS HTAPIX htServerList (HTLIST operation, char *server);
  1072. extern HTSTATUS HTAPIX htServerGetInfo (char *server, HTSERVINFO item, void *buffer);
  1073. extern HTSTATUS HTAPIX htServerExec (char *server, char *command);
  1074.  
  1075. extern HTSTATUS HTAPIX htDbList (char *server, char *searchdir, HTLIST operation,
  1076.                                  HTBOOL recurse, HTBOOL *isdatabase,
  1077.                                  char *database, char *datafile);
  1078. extern HTSTATUS HTAPIX htDbListCat (char *server, HTLIST operation, char *database,
  1079.                                     char *datapath);
  1080. extern HTSTATUS HTAPIX htDbGetPath (char *server, char *directory, char *title,
  1081.                                     HTBOOL catalog, char *datapath);
  1082.  
  1083. extern HTSTATUS HTAPIX htCurOpen (char *server, char *datapath, HTCURSOR *cursor);
  1084. extern HTSTATUS HTAPIX htCurClose (HTCURSOR cursor, HTBOOL force);
  1085. extern HTSTATUS HTAPIX htCurGetInfo (HTCURSOR cursor, HTCURINFO item, void *buffer);
  1086. extern HTSTATUS HTAPIX htCurSetOption (HTCURSOR cursor, HTCUROPT option, HTINT number,
  1087.                                        char *string);
  1088. extern HTSTATUS HTAPIX htCurReset (HTCURSOR cursor);
  1089.  
  1090. extern HTSTATUS HTAPIX htFormList (HTCURSOR cursor, HTLIST operation,
  1091.                                    HTFORMSUMM *formsumm);
  1092. extern HTFORMID HTAPIX htFormGetId (HTCURSOR cursor, char *formname);
  1093. extern HTSTATUS HTAPIX htFormGetAttrib (HTCURSOR cursor, HTFORMID formid,
  1094.                                         HTFORM *form);
  1095. extern HTSTATUS HTAPIX htFormCopy (HTCURSOR src_cursor, HTFORMID src_formid,
  1096.                                    HTCURSOR dest_cursor, char *dest_formname,
  1097.                                    HTFORMID *dest_formid);
  1098. extern HTSTATUS HTAPIX htFormDelete (HTCURSOR cursor, HTFORMID formid);
  1099. extern HTSTATUS HTAPIX htFormSet (HTCURSOR cursor, HTFORMID formid);
  1100. extern HTSTATUS HTAPIX htFormTemplate (HTCURSOR cursor, char *formname);
  1101.  
  1102. extern HTSTATUS HTAPIX htViewList (HTCURSOR cursor, HTLIST operation,
  1103.                                    HTVIEWSUMM *viewsumm);
  1104. extern HTVIEWID HTAPIX htViewGetId (HTCURSOR cursor, char *viewname);
  1105. extern HTSTATUS HTAPIX htViewGetAttrib (HTCURSOR cursor, HTVIEWID viewid,
  1106.                                         HTVIEW *view);
  1107. extern HTSTATUS HTAPIX htViewCopy (HTCURSOR src_cursor, HTVIEWID src_viewid,
  1108.                                    HTCURSOR dest_cursor, char *dest_viewname,
  1109.                                    HTVIEWID *dest_viewid);
  1110. extern HTSTATUS HTAPIX htViewDelete (HTCURSOR cursor, HTVIEWID viewid);
  1111. extern HTSTATUS HTAPIX htViewSet (HTCURSOR cursor, HTVIEWID viewid);
  1112.  
  1113. extern HTSTATUS HTAPIX htFieldCount (HTCURSOR cursor, HTFORMID formid,
  1114.                                      HTINT *fieldcount);
  1115. extern HTSTATUS HTAPIX htFieldList (HTCURSOR cursor, HTFORMID formid, HTBOOL first,
  1116.                                     HTFIELD *field);
  1117. extern HTSTATUS HTAPIX htFieldGetInfo (HTCURSOR cursor, HTFORMID formid,
  1118.                                        char *fieldname, HTFIELDINFO item,
  1119.                                        void *buffer);
  1120.  
  1121. extern HTSTATUS HTAPIX htColumnCount (HTCURSOR cursor, HTVIEWID viewid,
  1122.                                       HTINT *colcount);
  1123. extern HTSTATUS HTAPIX htColumnList (HTCURSOR cursor, HTVIEWID viewid, HTBOOL first,
  1124.                                      HTCOLUMN *column);
  1125.  
  1126. extern HTSTATUS HTAPIX htMacroList (HTCURSOR cursor, HTLIST operation,
  1127.                                     HTMACROSUMM *macrosumm);
  1128. extern HTMACROID HTAPIX htMacroGetId (HTCURSOR cursor, char *macroname);
  1129. extern HTSTATUS HTAPIX htMacroCopy (HTCURSOR src_cursor, HTMACROID src_macroid,
  1130.                                     HTCURSOR dest_cursor, char *dest_macroname,
  1131.                                     HTMACROID *dest_macroid);
  1132. extern HTSTATUS HTAPIX htMacroDelete (HTCURSOR cursor, HTMACROID macroid);
  1133. extern HTSTATUS HTAPIX htMacroExec (HTCURSOR cursor, HTMACROID macroid,
  1134.                                     HTINT *total_count, HTINT *action_count);
  1135.  
  1136. extern HTSTATUS HTAPIX htFormulaConcat (HTCURSOR cursor, char *string);
  1137. extern HTSTATUS HTAPIV htFormulaConcatf (HTCURSOR cursor, char *format, ...);
  1138. extern HTINT    HTAPIX htFormulaLength (HTCURSOR cursor);
  1139. extern HTINT    HTAPIX htFormulaCopy (HTCURSOR cursor, HTINT start, HTINT count,
  1140.                                       char *buffer);
  1141. extern HTSTATUS HTAPIX htFormulaReset (HTCURSOR cursor);
  1142. extern HTSTATUS HTAPIX htFormulaExec (HTCURSOR cursor);
  1143.  
  1144. extern HTSTATUS HTAPIX htIndexGetInfo (HTCURSOR cursor, HTINDEXINFO item, void *buffer);
  1145. extern HTINT    HTAPIX htIndexCount (HTCURSOR cursor);
  1146. extern HTSTATUS HTAPIX htIndexNavigate (HTCURSOR cursor, HTNAV direction,
  1147.                                         HTDOCID *docid, HTINT *indent);
  1148. extern HTINT    HTAPIX htIndexGetPos (HTCURSOR cursor);
  1149. extern HTSTATUS HTAPIX htIndexSetPos (HTCURSOR cursor, HTINT position);
  1150. extern HTSTATUS HTAPIX htIndexGetTreePos (HTCURSOR cursor, HTINT length,
  1151.                                           char *position);
  1152. extern HTSTATUS HTAPIX htIndexSetTreePos (HTCURSOR cursor, char *position);
  1153. extern HTSTATUS HTAPIX htIndexRefresh (HTCURSOR cursor);
  1154. extern HTSTATUS HTAPIX htIndexSearch (HTCURSOR cursor, char *query, HTFLAGS flags,
  1155.                                       HTINT limit);
  1156.  
  1157. extern HTSTATUS HTAPIX htDocFetch (HTCURSOR cursor, HTDOCHANDLE *dochand);
  1158. extern HTSTATUS HTAPIX htDocPut (HTCURSOR cursor, HTDOCID *docid);
  1159. extern HTSTATUS HTAPIX htDocCopy (HTCURSOR src_cursor, HTDOCID src_docid,
  1160.                                   HTCURSOR dest_cursor, HTVIEWID viewid,
  1161.                                   HTDOCID *dest_docid);
  1162. extern HTSTATUS HTAPIX htDocOpen (HTCURSOR cursor, HTDOCID docid, HTBOOL summary,
  1163.                                   HTDOCHANDLE *dochand);
  1164. extern HTSTATUS HTAPIX htDocClose (HTDOCHANDLE dochand, HTBOOL commit);
  1165. extern HTSTATUS HTAPIX htDocCreate (HTCURSOR cursor, char *formname,
  1166.                                     HTDOCHANDLE *dochand);
  1167. extern HTSTATUS HTAPIX htDocGetInfo (HTDOCHANDLE dochand, HTDOCINFO item, void *buffer);
  1168. extern HTSTATUS HTAPIX htDocUpdate (HTCURSOR cursor);
  1169. extern HTSTATUS HTAPIX htDocDelete (HTCURSOR cursor, HTDOCID docid, HTVIEWID viewid);
  1170.  
  1171. extern HTSTATUS HTAPIX htItemBind (HTCURSOR cursor, char *itemname, HTTYPE type,
  1172.                                    HTINT length, HTTYPE itemtype, void *buffer,
  1173.                                    HTINT *datalen, HTBOOL *nullind, HTBOOL *update);
  1174. extern HTSTATUS HTAPIX htItemUnbind (HTCURSOR cursor, char *itemname);
  1175. extern HTSTATUS HTAPIX htItemCount (HTDOCHANDLE dochand, HTINT *itemcount);
  1176. extern HTSTATUS HTAPIX htItemList (HTDOCHANDLE dochand, HTBOOL first,
  1177.                                    HTBOOL getvalue, HTITEM *item);
  1178. extern HTSTATUS HTAPIX htItemGetInfo (HTDOCHANDLE dochand, char *itemname,
  1179.                                       HTITEMINFO item, void *buffer);
  1180. extern HTSTATUS HTAPIX htItemLength (HTDOCHANDLE dochand, char *itemname,
  1181.                                      HTTYPE *type, HTTYPE *itemtype, HTINT *length);
  1182. extern HTSTATUS HTAPIX htItemFetch (HTDOCHANDLE dochand, char *itemname,
  1183.                                     HTTYPE *type, HTINT *length, HTTYPE *itemtype,
  1184.                                     void *buffer);
  1185. extern HTSTATUS HTAPIX htItemGetPtr (HTDOCHANDLE dochand, char *itemname,
  1186.                                      HTTYPE *type, HTINT *length, HTTYPE *itemtype,
  1187.                                      void **buffer);
  1188. extern HTSTATUS HTAPIX htItemPut (HTDOCHANDLE dochand, char *itemname, HTTYPE type,
  1189.                                   HTINT length, HTTYPE itemtype, void *buffer);
  1190. extern HTSTATUS HTAPIX htItemDelete (HTDOCHANDLE dochand, char *itemname);
  1191.  
  1192. extern HTSTATUS HTAPIX htCellBind (HTCURSOR cursor, HTINT column, HTTYPE type,
  1193.                                    HTINT length, void *buffer, HTINT *datalen);
  1194. extern HTSTATUS HTAPIX htCellUnbind (HTCURSOR cursor, HTINT column);
  1195. extern HTSTATUS HTAPIX htCellLength (HTCURSOR cursor, HTINT column, HTTYPE type,
  1196.                                      HTINT *length);
  1197. extern HTSTATUS HTAPIX htCellFetch (HTCURSOR cursor, HTINT column, HTTYPE *type,
  1198.                                     HTINT *length, void *buffer);
  1199.  
  1200. extern HTSTATUS HTAPIX htFileList (HTDOCHANDLE dochand, HTBOOL first, char *filename);
  1201. extern HTSTATUS HTAPIX htFileFetch (HTDOCHANDLE dochand, char *directory,
  1202.                                     char *filename);
  1203. extern HTSTATUS HTAPIX htFilePut (HTDOCHANDLE dochand, char *filepath);
  1204. extern HTSTATUS HTAPIX htFileDelete (HTDOCHANDLE dochand, char *filename);
  1205.  
  1206. extern HTSTATUS HTAPIX htMailSend (HTCURSOR cursor, HTDOCID maildoc, HTMEMO *memo,
  1207.                                    HTFLAGS flags);
  1208.  
  1209. extern HTSTATUS HTAPIX htCompGetInfo (HTCOMPHANDLE comphand, HTCOMPINFO item,
  1210.                                       void *buffer);
  1211. extern HTSTATUS HTAPIX htCompMerge (HTCOMPHANDLE maincomp, HTCOMPHANDLE addcomp,
  1212.                                     HTINT index);
  1213. extern HTSTATUS HTAPIX htCompCreate (HTDOCHANDLE dochand, char *itemname,
  1214.                                      HTCOMPHANDLE *newcomp);
  1215. extern HTSTATUS HTAPIX htCompCopy (HTCOMPHANDLE src_comphand,
  1216.                                    HTDOCHANDLE dest_dochand, char *itemname,
  1217.                                    HTCOMPHANDLE *dest_comphand);
  1218. extern HTSTATUS HTAPIX htCompCopySubset (HTCOMPHANDLE src_comphand, HTINT start,
  1219.                                          HTINT count, HTDOCHANDLE dest_dochand,
  1220.                                          char *itemname, HTCOMPHANDLE *dest_comphand);
  1221. extern HTSTATUS HTAPIX htCompListText (HTCOMPHANDLE comphand, HTBOOL first,
  1222.                                        HTINT word_wrap, HTINT tab_spaces,
  1223.                                        char *newline, HTINT length, char *buffer,
  1224.                                        HTINT *actual_len);
  1225. extern HTSTATUS HTAPIX htCompImportList (HTBOOL first, char *format, char *extensions);
  1226. extern HTSTATUS HTAPIX htCompExportList (HTBOOL first, char *format, char *extensions);
  1227. extern HTSTATUS HTAPIX htCompImport (HTDOCHANDLE dochand, char *itemname,
  1228.                                      char *filename, char *format,
  1229.                                      HTFONT *default_font, HTCOMPHANDLE *comphand);
  1230. extern HTSTATUS HTAPIX htCompExport (HTCOMPHANDLE comphand, char *filename,
  1231.                                      char *format);
  1232.  
  1233. #if defined (OS_WIN)
  1234.   #define OSFONT        LOGFONT
  1235. #endif
  1236.  
  1237. #ifdef OSFONT
  1238.   extern HTSTATUS HTAPIX htCompGetOSFont (HTCOMPHANDLE comphand, HTFONT *htfont,
  1239.                                           OSFONT *osfont);
  1240.   extern HTSTATUS HTAPIX htCompPutOSFont (HTCOMPHANDLE comphand, OSFONT *osfont,
  1241.                                           HTFONT *htfont);
  1242. #endif
  1243.                                 
  1244. extern HTSTATUS HTAPIX htComprecCount (HTCOMPHANDLE comphand, HTINT *count);
  1245. extern HTSTATUS HTAPIX htComprecList (HTCOMPHANDLE comphand, HTBOOL first,
  1246.                                       HTCOMP *comptype, HTINT *index);
  1247. extern HTSTATUS HTAPIX htComprecInsert (HTCOMPHANDLE comphand, HTINT index,
  1248.                                         HTCOMP comptype, void *compdata);
  1249. extern HTSTATUS HTAPIX htComprecUpdate (HTCOMPHANDLE comphand, HTINT index,
  1250.                                         HTCOMP comptype, void *compdata);
  1251. extern HTSTATUS HTAPIX htComprecDelete (HTCOMPHANDLE comphand, HTINT start,
  1252.                                         HTINT count);
  1253. extern HTSTATUS HTAPIX htComprecLength (HTCOMPHANDLE comphand, HTINT index,
  1254.                                         HTCOMP *comptype, HTINT *length);
  1255. extern HTSTATUS HTAPIX htComprecFetch (HTCOMPHANDLE comphand, HTINT index,
  1256.                                        HTCOMP *comptype, void *compdata);
  1257. extern HTSTATUS HTAPIX htComprecGetPtr (HTCOMPHANDLE comphand, HTINT index,
  1258.                                         HTCOMP *comptype, void *compdata);
  1259.  
  1260. extern HTINT    HTAPIX htTextListCount (void *textlist);
  1261. extern HTINT    HTAPIX htTextListLength (void *textlist, HTINT index);
  1262. extern HTINT    HTAPIX htTextListFetch (void *textlist, HTINT index, char *buffer);
  1263. extern char *   HTAPIX htTextListGetPtr (void *textlist, HTINT index, HTINT *length);
  1264.  
  1265. extern HTSTATUS HTAPIX htDatetimeCreate (HTTIMESUMM *timesumm, HTBOOL autozone,
  1266.                                          HTDATETIME *datetime);
  1267. extern HTSTATUS HTAPIX htDatetimeGetInfo (HTDATETIME *datetime, HTTIMEINFO item,
  1268.                                           void *buffer);
  1269. extern HTINT    HTAPIX htDatetimeCompare (HTDATETIME *datetime1, HTDATETIME *datetime2);
  1270. extern HTINT    HTAPIX htDatetimeDiff (HTDATETIME *datetime1, HTDATETIME *datetime2);
  1271. extern HTSTATUS HTAPIX htDatetimeUpdate (HTTIMESUMM *timesumm, HTDATETIME *datetime);
  1272.  
  1273. extern HTINT    HTAPIX htErrorFetch (HTINT length, HTSTATUS *status,
  1274.                                      HTSEVERITY *severity, char *message);
  1275. extern void     HTAPIX htErrorSetBuffer (HTINT length, char *buffer, HTSTATUS *status,
  1276.                                          HTSEVERITY *severity);
  1277. extern HTERRORPROC HTAPIX htErrorSetProc (HTERRORPROC errproc, void *errparam);
  1278.  
  1279.  
  1280. /* The following definitions should be ignored - the htInit function should
  1281.    be called as in the prototype above (eg: htInit () ). */
  1282. #define LIBRARY_INTERFACE_VERSION       0x0203
  1283. #define htInit()                _htInit (LIBRARY_INTERFACE_VERSION)
  1284. extern HTSTATUS HTAPIX _htInit (HTINT libver);
  1285.  
  1286.  
  1287. #endif  /* HTNOTES_INCL */
  1288.