diff options
Diffstat (limited to 'public/sdk/inc/ftsiface.h')
-rw-r--r-- | public/sdk/inc/ftsiface.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/public/sdk/inc/ftsiface.h b/public/sdk/inc/ftsiface.h new file mode 100644 index 000000000..52cd46e06 --- /dev/null +++ b/public/sdk/inc/ftsiface.h @@ -0,0 +1,167 @@ +// FTSIFACE.h -- DLL interface for FTSrch.dll + +#ifndef __FTSIFACE_H__ +#define __FTSIFACE_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + + +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) // ERRORCODE values +#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 // Values reported by GetLastError +#define ERR_DISK_CREATE_ERROR 0xE0000002 // when an explicit error result +#define ERR_DISK_OPEN_ERROR 0xE0000003 // isn't available. +#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 + +// -------------- Index Construction Interface --------------------------- + +#define TOPIC_SEARCH 0x00000001 // Options for NewIndex +#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) // Surrogate for default charset or default lcid + +HINDEX APIENTRY NewIndex(const PBYTE pbSourceName, + UINT uiTime1, UINT uiTime2, + UINT iCharsetDefault, UINT lcidDefault, UINT fdwOptions + ); + +ERRORCODE APIENTRY ScanTopicTitle(HINDEX hinx, PBYTE pbTitle, UINT cbTitle, + UINT iTopic, HANDLE hTopic, UINT iCharset, UINT lcid + ); +ERRORCODE APIENTRY ScanTopicText (HINDEX hinx, PBYTE pbText, UINT cbText, UINT iCharset, UINT lcid); +ERRORCODE APIENTRY SaveIndex (HINDEX hinx, PSZ pszFileName); +ERRORCODE APIENTRY DeleteIndex (HINDEX hinx); + +typedef void (__stdcall *ANIMATOR)(void); + +ERRORCODE APIENTRY RegisterAnimator(ANIMATOR pAnimator, HWND hwndAnimator); + +// ----------------- Querying the Validity of an Index File -------------- + +BOOL APIENTRY IsValidIndex(PSZ pszFileName, UINT dwOptions); + +void APIENTRY SetDirectoryLocator(HWND hwndLocator); + +// ----------------- Searcher Interface ---------------------------------- + +HSEARCHER APIENTRY NewSearcher(); + +INT APIENTRY OpenIndex(HSEARCHER hsrch, PSZ pszIndexFileName, // returns iIndex for index file + PBYTE pbSourceName, PUINT pcbSourceNameLimit, // or -ErrorCode + PUINT pTime1, PUINT pTime2 + ); + +ERRORCODE APIENTRY DiscardIndex (HSEARCHER hsrch, INT iIndex); +ERRORCODE APIENTRY QueryOptions (HSEARCHER hsrch, INT iIndex, PUINT pfdwOptions); +ERRORCODE APIENTRY SaveGroup (HSEARCHER hsrch, PSZ pszFileName); +ERRORCODE APIENTRY LoadGroup (HSEARCHER hsrch, PSZ pszFileName); +HWND APIENTRY OpenDialog (HSEARCHER hsrch, HWND hwndParent); +ERRORCODE APIENTRY DeleteSearcher(HSEARCHER hsrch); + +// Messages for talking to WinHelp + +#define MSG_FTS_JUMP_HASH (WM_USER + 32) // wParam = index, lParam = HashValue +#define MSG_FTS_JUMP_VA (WM_USER + 33) // wParam = index, lParam = VirtualAddress +#define MSG_FTS_GET_TITLE (WM_USER + 34) // wParam = index, lParam = &pszTitle +#define MSG_FTS_JUMP_QWORD (WM_USER + 35) // wParam = index, lParam = address of QWordAddress structure +#define MSG_REINDEX_REQUEST (WM_USER + 36) // wParam = unused,lParam = unused +#define MSG_FTS_WHERE_IS_IT (WM_USER + 37) // wParam = fStartEnumeration, lParam = &pszFile +#define MSG_GET_DEFFONT (WM_USER + 45) // return default font handle + +typedef struct _QWordAddress + { + UINT iSerial; + HANDLE hTopic; + + } QWordAddress, *PQWordAddress; + +// ------------------- Phrase Compression Interface ---------------------- + +HCOMPRESSOR APIENTRY NewCompressor(UINT iCharsetDefault); + +ERRORCODE APIENTRY ScanText(HCOMPRESSOR hcmp, PBYTE pbText, UINT cbText, UINT iCharset); + +ERRORCODE APIENTRY GetPhraseTable(HCOMPRESSOR hcmp, PUINT pcPhrases, PBYTE *ppbImages, PUINT pcbImages, + PBYTE *ppacbImageCompressed, PUINT pcbCompressed + ); + +ERRORCODE APIENTRY SetPhraseTable(HCOMPRESSOR hcmp, PBYTE pbImages, UINT cbImages, + PBYTE pacbImageCompressed, UINT cbCompressed + ); + +INT APIENTRY CompressText (HCOMPRESSOR hcmp, PBYTE pbText, UINT cbText, PBYTE *ppbCompressed, UINT iCharset); +INT APIENTRY DecompressText(HCOMPRESSOR hcmp, PBYTE pbCompressed, UINT cbCompressed, PBYTE pbText ); + +ERRORCODE APIENTRY DeleteCompressor(HCOMPRESSOR hcmp); + +//----------------------- Hiliting Interface ------------------------------ + +HHILITER APIENTRY NewHiliter(HSEARCHER hSearch); +ERRORCODE APIENTRY DeleteHiliter(HHILITER hhil); +ERRORCODE APIENTRY ScanDisplayText(HHILITER hhil, PBYTE pbText, int cbText, + UINT iCharset, LCID lcid); + +ERRORCODE APIENTRY ClearDisplayText(HHILITER hhil); +int APIENTRY CountHilites(HHILITER hhil, int base, int limit); +int APIENTRY QueryHilites(HHILITER hhil, int base, int limit, + int cHilites, HILITE* paHilites); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + + +#endif // __FTSIFACE_H__ |