168 lines
6.5 KiB
C
168 lines
6.5 KiB
C
|
// 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__
|