extern HWND hWndCardfile;
extern HWND hCurrCard;
extern BYTE szSearchString[256];

extern HWND hActiveEdit;


extern LONG PASCAL CardfileWndProc(HWND, WORD, WORD, DWORD);
extern LONG PASCAL CardWndProc(HWND, WORD, WORD, DWORD);
extern LONG PASCAL IndexEditWndProc(HWND, WORD, WORD, DWORD);
extern LONG PASCAL CardEditWndProc(HWND, WORD, WORD, DWORD);

extern INT  PASCAL GenericDialogDriver(WORD idDlg, INT (PASCAL *pfnDlg)());
extern INT  PASCAL FindDialogProc(HDLG, WORD, WORD, DWORD);
extern INT  PASCAL GotoDialogProc(HDLG, WORD, WORD, DWORD);
extern INT  PASCAL IndexDialogProc(HDLG, WORD, WORD, DWORD);
extern INT  PASCAL SaveFileDialogProc(HDLG, WORD, WORD, DWORD);
extern INT  PASCAL DialDialogProc(HDLG, WORD, WORD, DWORD);
extern INT  PASCAL HelpDialogProc(HDLG, WORD, WORD, DWORD);

/*
  Defines for Get/SetWindowWord()
*/
#define GWW_HWNDINDEX   0   /* handle of index edit field */
#define GWW_HWNDEDIT    1   /* handle of the multiline edit field */

#define MAXINDEXLEN    50

typedef struct tagIndex
{
  LONG  ulRecordSeekPos;
  BYTE  szIndex[MAXINDEXLEN];
} INDEX;

typedef struct tagRecord
{
  HWND  hWnd;
  BYTE  szIndex[MAXINDEXLEN];
  LONG  ulSeekPos;
  WORD  nChars;
  BYTE  *pszText;
} RECORD;

typedef struct tagCardFile
{
  WORD  nMagicCookie;
  WORD  nRecords;
  WORD  iCurrRecord;
  WORD  iTopLine;
  WORD  fd;
/*
  INDEX indices[nRecords];
  RECORD records[nRecords];
*/
} CARDFILE;
CARDFILE CurrCardFile;

#define MAGIC_COOKIE   0x414D    /* MA */

extern BYTE  szCurrFileName[13];
extern LIST  *CurrIndexList;
extern LIST  *CurrRecordList;

extern BOOL fCardfileState;
#define STATE_ADDING    0x01
#define STATE_NOREFRESH 0x02
#define STATE_VIEWLIST  0x04




#define ID_CARDFILE   100
#define ID_EDIT       500

#define ID_NEW        100
#define ID_OPEN       101
#define ID_SAVE       102
#define ID_MERGE      103
#define ID_PRINT      104
#define ID_PRINTALL   105
#define ID_EXIT       106
#define ID_ABOUT      107

#define ID_UNDO       110
#define ID_CUT        111
#define ID_COPY       112
#define ID_PASTE      113
#define ID_RESTORE    114
#define ID_INDEX      115

#define ID_ADD        120
#define ID_DELETE     121
#define ID_DUPLICATE  122
#define ID_DIAL       123

#define ID_VIEWCARD   130
#define ID_VIEWLIST   131

#define ID_GOTO       140
#define ID_FIND       141
#define ID_FINDNEXT   142

#define ID_HELP       150

#define ID_FORWARD    160
#define ID_BACKWARD   161
#define ID_FIRSTTOFRONT 162
#define ID_LASTTOFRONT  163

#define DLG_GOTO      200
#define DLG_FIND      201
#define DLG_INDEX     202

#define DLG_DIAL      300
#define ID_NUMBER     301
#define ID_PREFIX     302
#define ID_USEPRE     303
#define ID_SETUP      304
#define ID_TONE       305
#define ID_PULSE      306
#define ID_COM1       307
#define ID_COM2       308
#define ID_COM3       309
#define ID_COM4       310
#define ID_110        311
#define ID_300        312
#define ID_1200       313
#define ID_2400       314
#define ID_4800       315
#define ID_9600       316
#define ID_19200      317

#define DLG_HELP      99 
#define ID_HELPLB     99
#define ID_TOPICS     3 

