Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __FTSIFACE_H__
      7 #define __FTSIFACE_H__
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13   typedef HANDLE HINDEX;
     14   typedef HANDLE HSEARCHER;
     15   typedef HANDLE HCOMPRESSOR;
     16   typedef HANDLE HHILITER;
     17   typedef INT ERRORCODE;
     18   typedef struct { int base; int limit; } HILITE;
     19 
     20 #define NO_TITLE UINT(-1)
     21 #define NOT_INDEXER UINT(-2)
     22 #define NOT_SEARCHER UINT(-3)
     23 #define NOT_COMPRESSOR UINT(-4)
     24 #define CANNOT_SAVE UINT(-5)
     25 #define OUT_OF_MEMORY UINT(-6)
     26 #define CANNOT_OPEN UINT(-7)
     27 #define CANNOT_LOAD UINT(-8)
     28 #define INVALID_INDEX UINT(-9)
     29 #define ALREADY_WEIGHED UINT(-10)
     30 #define NO_TEXT_SCANNED UINT(-11)
     31 #define ALIGNMENT_ERROR UINT(-12)
     32 #define INVALID_PHRASE_TABLE UINT(-13)
     33 #define INVALID_LCID UINT(-14)
     34 #define NO_INDICES_LOADED UINT(-15)
     35 #define INDEX_LOADED_ALREADY UINT(-16)
     36 #define GROUP_LOADED_ALREADY UINT(-17)
     37 #define DIALOG_ALREADY_ACTIVE UINT(-18)
     38 #define EMPTY_PHRASE_TABLE UINT(-19)
     39 #define OUT_OF_DISK UINT(-20)
     40 #define DISK_READ_ERROR UINT(-21)
     41 #define DISK_WRITE_ERROR UINT(-22)
     42 #define SEARCH_ABORTED UINT(-23)
     43 #define UNKNOWN_EXCEPTION UINT(-24)
     44 #define SYSTEM_ERROR UINT(-25)
     45 #define NOT_HILITER UINT(-26)
     46 #define INVALID_CHARSET UINT(-27)
     47 #define INVALID_SOURCE_NAME UINT(-28)
     48 #define INVALID_TIMESTAMP UINT(-29)
     49 
     50 #define ERR_NO_DISK_SPACE 0xE0000001
     51 #define ERR_DISK_CREATE_ERROR 0xE0000002
     52 #define ERR_DISK_OPEN_ERROR 0xE0000003
     53 #define ERR_DISK_READ_ERROR 0xE0000004
     54 #define ERR_DISK_WRITE_ERROR 0xE0000005
     55 #define ERR_SYSTEM_ERROR 0xE0000006
     56 #define ERR_ABORT_SEARCH 0xE0000007
     57 #define ERR_INVALID_TIMESTAMP 0xE0000008
     58 #define ERR_INVALID_SOURCE_NAME 0xE0000009
     59 #define ERR_FILE_MAP_FAILED 0xE000000A
     60 #define ERR_INVALID_FILE_TYPE 0xE000000B
     61 #define ERR_DAMAGED_FILE 0xE000000C
     62 #define ERR_FUTURE_VERSION 0xE000000D
     63 
     64 #define TOPIC_SEARCH 0x00000001
     65 #define PHRASE_SEARCH 0x00000002
     66 #define PHRASE_FEEDBACK 0x00000004
     67 #define VECTOR_SEARCH 0x00000008
     68 #define WINHELP_INDEX 0x00000010
     69 #define USE_VA_ADDR 0x00000020
     70 #define USE_QWORD_JUMP 0x00000040
     71 
     72 #define USE_DEFAULT UINT(-1)
     73 
     74   HINDEX WINAPI NewIndex(const PBYTE pbSourceName,UINT uiTime1,UINT uiTime2,UINT iCharsetDefault,UINT lcidDefault,UINT fdwOptions);
     75   ERRORCODE WINAPI ScanTopicTitle(HINDEX hinx,PBYTE pbTitle,UINT cbTitle,UINT iTopic,HANDLE hTopic,UINT iCharset,UINT lcid);
     76   ERRORCODE WINAPI ScanTopicText (HINDEX hinx,PBYTE pbText,UINT cbText,UINT iCharset,UINT lcid);
     77   ERRORCODE WINAPI SaveIndex (HINDEX hinx,PSZ pszFileName);
     78   ERRORCODE WINAPI DeleteIndex (HINDEX hinx);
     79 
     80   typedef void (WINAPI *ANIMATOR)(void);
     81 
     82   ERRORCODE WINAPI RegisterAnimator(ANIMATOR pAnimator,HWND hwndAnimator);
     83   WINBOOL WINAPI IsValidIndex(PSZ pszFileName,UINT dwOptions);
     84   void WINAPI SetDirectoryLocator(HWND hwndLocator);
     85   HSEARCHER WINAPI NewSearcher();
     86   INT WINAPI OpenIndex(HSEARCHER hsrch,PSZ pszIndexFileName,PBYTE pbSourceName,PUINT pcbSourceNameLimit,PUINT pTime1,PUINT pTime2);
     87   ERRORCODE WINAPI DiscardIndex (HSEARCHER hsrch,INT iIndex);
     88   ERRORCODE WINAPI QueryOptions (HSEARCHER hsrch,INT iIndex,PUINT pfdwOptions);
     89   ERRORCODE WINAPI SaveGroup (HSEARCHER hsrch,PSZ pszFileName);
     90   ERRORCODE WINAPI LoadGroup (HSEARCHER hsrch,PSZ pszFileName);
     91   HWND WINAPI OpenDialog (HSEARCHER hsrch,HWND hwndParent);
     92   ERRORCODE WINAPI DeleteSearcher(HSEARCHER hsrch);
     93 
     94 #define MSG_FTS_JUMP_HASH (WM_USER + 32)
     95 #define MSG_FTS_JUMP_VA (WM_USER + 33)
     96 #define MSG_FTS_GET_TITLE (WM_USER + 34)
     97 #define MSG_FTS_JUMP_QWORD (WM_USER + 35)
     98 #define MSG_REINDEX_REQUEST (WM_USER + 36)
     99 #define MSG_FTS_WHERE_IS_IT (WM_USER + 37)
    100 #define MSG_GET_DEFFONT (WM_USER + 45)
    101 
    102   typedef struct _QWordAddress {
    103     UINT iSerial;
    104     HANDLE hTopic;
    105   } QWordAddress,*PQWordAddress;
    106 
    107   HCOMPRESSOR WINAPI NewCompressor(UINT iCharsetDefault);
    108   ERRORCODE WINAPI ScanText(HCOMPRESSOR hcmp,PBYTE pbText,UINT cbText,UINT iCharset);
    109   ERRORCODE WINAPI GetPhraseTable(HCOMPRESSOR hcmp,PUINT pcPhrases,PBYTE *ppbImages,PUINT pcbImages,PBYTE *ppacbImageCompressed,PUINT pcbCompressed);
    110   ERRORCODE WINAPI SetPhraseTable(HCOMPRESSOR hcmp,PBYTE pbImages,UINT cbImages,PBYTE pacbImageCompressed,UINT cbCompressed);
    111   INT WINAPI CompressText (HCOMPRESSOR hcmp,PBYTE pbText,UINT cbText,PBYTE *ppbCompressed,UINT iCharset);
    112   INT WINAPI DecompressText(HCOMPRESSOR hcmp,PBYTE pbCompressed,UINT cbCompressed,PBYTE pbText);
    113   ERRORCODE WINAPI DeleteCompressor(HCOMPRESSOR hcmp);
    114   HHILITER WINAPI NewHiliter(HSEARCHER hSearch);
    115   ERRORCODE WINAPI DeleteHiliter(HHILITER hhil);
    116   ERRORCODE WINAPI ScanDisplayText(HHILITER hhil,PBYTE pbText,int cbText,UINT iCharset,LCID lcid);
    117   ERRORCODE WINAPI ClearDisplayText(HHILITER hhil);
    118   int WINAPI CountHilites(HHILITER hhil,int base,int limit);
    119   int WINAPI QueryHilites(HHILITER hhil,int base,int limit,int cHilites,HILITE *paHilites);
    120 
    121 #ifdef __cplusplus
    122 }
    123 #endif
    124 #endif
    125