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 10extern "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