/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef __FTSIFACE_H__ #define __FTSIFACE_H__ #ifdef __cplusplus extern "C" { #endif typedef HANDLE HINDEX; typedef HANDLE HSEARCHER; typedef HANDLE HCOMPRESSOR; typedef HANDLE HHILITER; typedef INT ERRORCODE; typedef struct { int base; int limit; } HILITE; #define NO_TITLE UINT(-1) #define NOT_INDEXER UINT(-2) #define NOT_SEARCHER UINT(-3) #define NOT_COMPRESSOR UINT(-4) #define CANNOT_SAVE UINT(-5) #define OUT_OF_MEMORY UINT(-6) #define CANNOT_OPEN UINT(-7) #define CANNOT_LOAD UINT(-8) #define INVALID_INDEX UINT(-9) #define ALREADY_WEIGHED UINT(-10) #define NO_TEXT_SCANNED UINT(-11) #define ALIGNMENT_ERROR UINT(-12) #define INVALID_PHRASE_TABLE UINT(-13) #define INVALID_LCID UINT(-14) #define NO_INDICES_LOADED UINT(-15) #define INDEX_LOADED_ALREADY UINT(-16) #define GROUP_LOADED_ALREADY UINT(-17) #define DIALOG_ALREADY_ACTIVE UINT(-18) #define EMPTY_PHRASE_TABLE UINT(-19) #define OUT_OF_DISK UINT(-20) #define DISK_READ_ERROR UINT(-21) #define DISK_WRITE_ERROR UINT(-22) #define SEARCH_ABORTED UINT(-23) #define UNKNOWN_EXCEPTION UINT(-24) #define SYSTEM_ERROR UINT(-25) #define NOT_HILITER UINT(-26) #define INVALID_CHARSET UINT(-27) #define INVALID_SOURCE_NAME UINT(-28) #define INVALID_TIMESTAMP UINT(-29) #define ERR_NO_DISK_SPACE 0xE0000001 #define ERR_DISK_CREATE_ERROR 0xE0000002 #define ERR_DISK_OPEN_ERROR 0xE0000003 #define ERR_DISK_READ_ERROR 0xE0000004 #define ERR_DISK_WRITE_ERROR 0xE0000005 #define ERR_SYSTEM_ERROR 0xE0000006 #define ERR_ABORT_SEARCH 0xE0000007 #define ERR_INVALID_TIMESTAMP 0xE0000008 #define ERR_INVALID_SOURCE_NAME 0xE0000009 #define ERR_FILE_MAP_FAILED 0xE000000A #define ERR_INVALID_FILE_TYPE 0xE000000B #define ERR_DAMAGED_FILE 0xE000000C #define ERR_FUTURE_VERSION 0xE000000D #define TOPIC_SEARCH 0x00000001 #define PHRASE_SEARCH 0x00000002 #define PHRASE_FEEDBACK 0x00000004 #define VECTOR_SEARCH 0x00000008 #define WINHELP_INDEX 0x00000010 #define USE_VA_ADDR 0x00000020 #define USE_QWORD_JUMP 0x00000040 #define USE_DEFAULT UINT(-1) HINDEX WINAPI NewIndex(const PBYTE pbSourceName,UINT uiTime1,UINT uiTime2,UINT iCharsetDefault,UINT lcidDefault,UINT fdwOptions); ERRORCODE WINAPI ScanTopicTitle(HINDEX hinx,PBYTE pbTitle,UINT cbTitle,UINT iTopic,HANDLE hTopic,UINT iCharset,UINT lcid); ERRORCODE WINAPI ScanTopicText (HINDEX hinx,PBYTE pbText,UINT cbText,UINT iCharset,UINT lcid); ERRORCODE WINAPI SaveIndex (HINDEX hinx,PSZ pszFileName); ERRORCODE WINAPI DeleteIndex (HINDEX hinx); typedef void (WINAPI *ANIMATOR)(void); ERRORCODE WINAPI RegisterAnimator(ANIMATOR pAnimator,HWND hwndAnimator); WINBOOL WINAPI IsValidIndex(PSZ pszFileName,UINT dwOptions); void WINAPI SetDirectoryLocator(HWND hwndLocator); HSEARCHER WINAPI NewSearcher(); INT WINAPI OpenIndex(HSEARCHER hsrch,PSZ pszIndexFileName,PBYTE pbSourceName,PUINT pcbSourceNameLimit,PUINT pTime1,PUINT pTime2); ERRORCODE WINAPI DiscardIndex (HSEARCHER hsrch,INT iIndex); ERRORCODE WINAPI QueryOptions (HSEARCHER hsrch,INT iIndex,PUINT pfdwOptions); ERRORCODE WINAPI SaveGroup (HSEARCHER hsrch,PSZ pszFileName); ERRORCODE WINAPI LoadGroup (HSEARCHER hsrch,PSZ pszFileName); HWND WINAPI OpenDialog (HSEARCHER hsrch,HWND hwndParent); ERRORCODE WINAPI DeleteSearcher(HSEARCHER hsrch); #define MSG_FTS_JUMP_HASH (WM_USER + 32) #define MSG_FTS_JUMP_VA (WM_USER + 33) #define MSG_FTS_GET_TITLE (WM_USER + 34) #define MSG_FTS_JUMP_QWORD (WM_USER + 35) #define MSG_REINDEX_REQUEST (WM_USER + 36) #define MSG_FTS_WHERE_IS_IT (WM_USER + 37) #define MSG_GET_DEFFONT (WM_USER + 45) typedef struct _QWordAddress { UINT iSerial; HANDLE hTopic; } QWordAddress,*PQWordAddress; HCOMPRESSOR WINAPI NewCompressor(UINT iCharsetDefault); ERRORCODE WINAPI ScanText(HCOMPRESSOR hcmp,PBYTE pbText,UINT cbText,UINT iCharset); ERRORCODE WINAPI GetPhraseTable(HCOMPRESSOR hcmp,PUINT pcPhrases,PBYTE *ppbImages,PUINT pcbImages,PBYTE *ppacbImageCompressed,PUINT pcbCompressed); ERRORCODE WINAPI SetPhraseTable(HCOMPRESSOR hcmp,PBYTE pbImages,UINT cbImages,PBYTE pacbImageCompressed,UINT cbCompressed); INT WINAPI CompressText (HCOMPRESSOR hcmp,PBYTE pbText,UINT cbText,PBYTE *ppbCompressed,UINT iCharset); INT WINAPI DecompressText(HCOMPRESSOR hcmp,PBYTE pbCompressed,UINT cbCompressed,PBYTE pbText); ERRORCODE WINAPI DeleteCompressor(HCOMPRESSOR hcmp); HHILITER WINAPI NewHiliter(HSEARCHER hSearch); ERRORCODE WINAPI DeleteHiliter(HHILITER hhil); ERRORCODE WINAPI ScanDisplayText(HHILITER hhil,PBYTE pbText,int cbText,UINT iCharset,LCID lcid); ERRORCODE WINAPI ClearDisplayText(HHILITER hhil); int WINAPI CountHilites(HHILITER hhil,int base,int limit); int WINAPI QueryHilites(HHILITER hhil,int base,int limit,int cHilites,HILITE *paHilites); #ifdef __cplusplus } #endif #endif