mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.4 KiB
99 lines
2.4 KiB
/***************************************************************************\
|
|
*
|
|
* SRCH.H
|
|
*
|
|
* Copyright (C) Microsoft Corporation 1989-1994.
|
|
* All Rights reserved.
|
|
*
|
|
****************************************************************************
|
|
*
|
|
* Program Description: Search type definitions and function prototypes
|
|
*
|
|
\***************************************************************************/
|
|
|
|
#define SEARCH_LOCAL_INDEX TRUE
|
|
|
|
// Are there similar defines for the HC?
|
|
|
|
#define MAXKEYLEN 256
|
|
#define MAX_KEY_MACRO (4 * 1024)
|
|
|
|
#ifdef _X86_
|
|
typedef struct {
|
|
short iCount; // no. of occurences of the keyword
|
|
LONG lOffset; // offset to the occurence data
|
|
} RECKW; // KeyWord B-TREE record
|
|
// sdff version defined in filedefs.h
|
|
#endif
|
|
|
|
typedef LONG MADR; // Master address; used as key to title btree
|
|
|
|
// Master keyword btree record
|
|
// cb == cmadr * sizeof(ADDR)
|
|
// amadr is as big as it needs to be...
|
|
|
|
typedef struct
|
|
{
|
|
DWORD idHelpFile;
|
|
ADDR addr;
|
|
} MASTER_TITLE_RECORD;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD cb;
|
|
MASTER_TITLE_RECORD mtr[MAX_TITLES];
|
|
} MASTER_RECKW;
|
|
|
|
#define HssToReckw(hss) ((MASTER_RECKW*) (((PBYTE) hss) + sizeof(ISS)))
|
|
|
|
// Size of array implicit in file size.
|
|
|
|
typedef struct
|
|
{
|
|
DWORD TimeStamp; // zero if the file has no keywords
|
|
char szFileName[_MAX_PATH];
|
|
} HELPFILE_DIRECTORY_ENTRY;
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
|
|
/*
|
|
* SSREC : One for each search hit. In Help 3.0, this is an FCL. In Help
|
|
* 3.1, this is a physical address. Both are LONG REVIEW: This is rather
|
|
* gross. We want to hide the actual on-disk size somehow.
|
|
*/
|
|
|
|
typedef LONG SSREC;
|
|
typedef SSREC *QSSREC;
|
|
|
|
// SS -- The "hit list" : a find count followed by a bunch of SSRECs
|
|
|
|
typedef int ISS; // The find count
|
|
typedef struct {
|
|
ISS cSSREC;
|
|
SSREC ssrecFirst;
|
|
} SS, *QSS;
|
|
|
|
#define CONTEXT_SEARCH -3
|
|
#define FTS_HASH_SEARCH -4
|
|
#define FTS_VA_SEARCH -5
|
|
#define NO_TABS -6
|
|
#define EXT_TAB_CONTEXT -7
|
|
#define EXT_TAB_MACRO -8
|
|
#define TAB_ALREADY_UP -9
|
|
|
|
/*
|
|
* The error variable: set within Search layer to help callers decide
|
|
* what might have gone wrong.
|
|
*/
|
|
|
|
extern RC rcSearchError;
|
|
#define RcGetSearchError() rcSearchError
|
|
#define SetSearchErrorRc(rc) (rcSearchError = (rc))
|
|
|
|
// The search code saves the keyword used in the previous search (if any)
|
|
|
|
extern char szSavedKeyword[];
|
|
extern char szSavedContext[];
|
|
|
|
#define SetSearchKeyword(sz) lstrcpy(szSavedKeyword, sz)
|
|
#define chBtreePrefixDefault 'K'
|