home *** CD-ROM | disk | FTP | other *** search
- // BDE32 3.x - (C) Copyright 1996 by Borland International
-
- #include <idapi.h>
- #include <windows.h>
- #include <windowsx.h>
- #include <commdlg.h>
- #include <ctl3d.h>
- #include <cderr.h>
- #include <string.h>
- #include <io.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <dos.h> // for date structure and getdate function
- #include <direct.h>
- #include <errno.h>
- #include <malloc.h>
- #include <ctype.h>
- #include "id_defs.h"
- #include "macro.h"
-
- // Macro for Subclassing the edit control.
- #define SubClassWindow(hWnd, lpfn) \
- ((WNDPROC)SetWindowLong((hWnd), GWL_WNDPROC, \
- (LPARAM)(WNDPROC)(lpfn)))
-
- // Define used for Microsoft compilers
- #if defined(_MSC_VER)
- #define farmalloc(parm) _fmalloc(parm)
- #define farfree(parm) _ffree(parm)
- // Leave it blank on purpose as VC++ minds having far declared.
- #define ABFAR
- #endif
-
- #if defined(__TURBOC__) && defined(_Windows)
- #define ABFAR far
- #endif
-
- // Definitions needed for engine.c
- #define NAMELEN 20
- #define ADDRESSLEN 40
- #define CITYLEN 20
- #define STATELEN 3
- #define ZIPLEN 13
- #define PHONELEN 21
- #define DATELEN 11
- #define COMMENTLEN 300
-
- #define TOP 0
- #define BOTTOM 2
- #define PREV_REC -1
- #define NEXT_REC 1
- #define RANGEERROR 2
- #define STRLEN 256
- #define MAXFILENAMELEN 256
- #define MAXFILETITLELEN 256
- #define MAXPASSLEN 30
- #define MAXALIAS 256
- #define szINTERBASE "INTERBASE TABLE"
- #define szSYBASE "SYBASE"
- #define szORACLE "ORACLE"
- #define szPERSONAL "Personal"
- #define szBUSINESS "Business"
- #define NEW 1
- #define OPEN 2
- #define MAXCHARLEN 60000L
- #define FILEHANDLESNEEDED 40
-
- typedef UINT (CALLBACK* FARHOOK)(HWND, UINT, WPARAM, LPARAM);
-
- // Externs for global data
- extern HINSTANCE hInst;
- extern HWND hMainWnd;
- extern HWND hErrorWnd;
- extern BOOL NewRecMode;
- extern BOOL RangeSet;
- extern WNDPROC _wpOrigWndProc;
- extern FARHOOK lpfnFileHook;
- extern UINT iMSGFileOK;
- extern BOOL bIsServer;
-
- // Variables for table creation
- extern const UINT16 uNumFields; // used in engine.c
- extern const UINT16 uNumIndexes; // used in engine.c
- extern const UINT16 uNumRecs; // Number of records to insert
-
- // The name of the table to use and the directory of where to put it.
- extern const char far szTblName[];
- extern char far szTblDirectory[];
- extern char far szPrivDirectory[];
- extern const char far szTblType[];
-
- // Structures used throughout the code.
- extern FLDDesc ABFAR fldDesc[];
- extern IDXDesc ABFAR idxDBDesc[];
- extern IDXDesc ABFAR idxIBPDDesc[];
-
- // Variables for ENGINE.C
- typedef struct {
- CHAR FName[NAMELEN];
- CHAR LName[NAMELEN];
- CHAR Spouse[ADDRESSLEN];
- CHAR Addrs1[ADDRESSLEN];
- CHAR Addrs2[ADDRESSLEN];
- CHAR City[CITYLEN];
- CHAR State[STATELEN];
- CHAR Zip[ZIPLEN];
- CHAR Phone1[PHONELEN];
- CHAR Phone2[PHONELEN];
- CHAR Date1[DATELEN];
- CHAR Comment[COMMENTLEN];
- } RecordType;
-
- // Structures for OpenFile dialog.
- typedef struct
- {
- OPENFILENAME ofn;
- CHAR szFile[MAXFILENAMELEN];
- CHAR szFileTitle[MAXFILETITLELEN];
- CHAR szDirectory[DBIMAXPATHLEN + 1];
- CHAR szTitle[DBIMAXNAMELEN];
- }FOCHUNK;
-
- typedef FOCHUNK FAR *LPFOCHUNK;
-
- typedef struct
- {
- CHAR Password[MAXPASSLEN];
- CHAR Alias[DBIMAXTBLNAMELEN];
- CHAR Database[DBIMAXTBLNAMELEN];
- }PASSSTRUCT;
-
- typedef struct
- {
- phDBIDb phDb;
- UINT16 uType;
- }ABCREATESTRUCT;
-
- typedef ABCREATESTRUCT FAR *pCS;
-
- typedef struct
- {
- DBINAME szTagName;
- DBIKEYEXP szKeyExp;
- UINT16 iFldsInKey;
- DBIKEY aiKeyFld;
- DBIKEY aiKeyLen;
- }ABIDXDESC;
- typedef ABIDXDESC FAR *pABIDXDESC;
-
- typedef struct
- {
- phDBICur phCur;
- hDBIDb hDb;
- }ABHANDLES;
- typedef ABHANDLES FAR *pAbHandles;
-
- typedef struct
- {
- CHAR FieldName[DBIMAXNAMELEN + 2];
- }FIELDNAME;
- typedef FIELDNAME FAR *pFIELDName;
-
- // Function prototypes for ADR_MAIN.C
- BOOL InitApp(int nCmdShow);
- LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
- BOOL FillStruct(RecordType *, UINT16, pCHAR);
- BOOL DisplayTable(hDBICur hCur);
- BOOL TableExist(pCHAR);
- BOOL FillTable (hDBICur hCur, pCHAR ABType);
- BOOL DispRec(RecordType *);
- DBIResult MoveRec (hDBICur hCur, INT16);
- void CheckButtons(hDBICur hCur);
- void SetupEdits(void);
- BOOL SaveRec(hDBICur hCur, BOOL);
- BOOL GetRec(RecordType *);
- BOOL DeleteRecord(hDBICur hCur);
- void SetControl(UINT16, BOOL);
- UINT16 FillDropList (HWND, UINT16, UINT16, pABIDXDESC, pCHAR);
- void SetFNameFocus(void);
- BOOL ClearDlg(void);
- BOOL Varified(void);
- BOOL CanContinue(pCHAR, UINT16);
- void EndNewRec(hDBICur hCur);
- DBIResult SetDefaultDate (void);
- void FillFieldList(HWND);
- void GetField(RecordType *, pCHAR, UINT16);
- void PutField(RecordType *, pCHAR, UINT);
- DBISearchCond GetCond(HWND);
- void FillAliasCBBox(pDBDesc pAliases, UINT32 uNumAliases,
- UINT16 CBId, HWND hWnd);
- BOOL FillFileList (HWND hWnd, UINT16 LBId, hDBIDb hDb);
- void SetFieldNames(hDBICur hCur);
- pCHAR Proper(pCHAR String);
- void SetAll(BOOL bAction);
- BOOL HourGlassCursor (BOOL turnOn);
-
- // Function prototypes for ADR_UTIL.C
- UINT16 WinMsg(pCHAR, UINT, UINT);
- void ChangeEntryMode(hDBICur hCur);
- int MakeFullPath(pCHAR pszDirectory, pCHAR pszRelativeDirectory);
-
- // Functions for ENGINE.C
- DBIResult DbInit(void);
- DBIResult DbExit(void);
- DBIResult CreateTable(hDBIDb hDb, phDBICur phCur, pCHAR);
- DBIResult AddRecord(hDBICur hCur, RecordType *, BOOL);
- DBIResult SetDate(pDBIDATE Date, pCHAR pszString);
- DBIResult GetTable(hDBIDb hDb, phDBICur phCur);
- DBIResult CloseDb(phDBIDb phDb);
- DBIResult GetData(hDBICur hCur, RecordType *);
- DBIResult FillRec(hDBICur hCur, pBYTE, RecordType *);
- DBIResult GoTop(hDBICur hCur, BOOL bMoveRec);
- DBIResult GetNextRec(hDBICur hCur);
- DBIResult GetPrevRec(hDBICur hCur);
- DBIResult GoBottom(hDBICur hCur, BOOL bMoveRec);
- DBIResult SetIndex(phDBICur phCur, pCHAR szTagName);
- DBIResult SetupIndex(phDBICur phCur, pCHAR szName, pCHAR szTagName,
- UINT16 IndexId);
- BOOL AtEOF(hDBICur hCur);
- BOOL AtBOF(hDBICur hCur);
- DBIResult FillIndexStr(hDBICur hCur, hDBIDb hDb, pABIDXDESC *pIndexes,
- pCHAR pszActIdx, pUINT16 puIndexes);
- DBIResult DeleteRec(hDBICur hCur);
- DBIResult SetRange(RecordType *pHighRec, RecordType *pLowRec,
- BOOL bHighInclude, BOOL bLowInclude, hDBICur hCur,
- BOOL bHighEmpty, BOOL bLowEmpty);
- DBIResult FillBuf(hDBICur hCur, pBYTE pRecBuf, RecordType* pString);
- DBIResult Search(hDBICur hCur, DBISearchCond eCond, BOOL bDirect,
- UINT16 iFlds, UINT16 iLen, RecordType *pKey);
- DBIResult ResetRange(hDBICur hCur);
- DBIResult DateEncode(UINT mon, UINT day, int year, pDBIDATE pTempDate);
- DBIResult AdrGetDateFormat(pFMTDate pDate);
- DBIResult GetDirectory(hDBIDb hDb, pCHAR pszBuffer);
- DBIResult FillAliasStr(pDBDesc *Alias, pUINT32 plNumAliases);
- DBIResult OpenDB(phDBIDb phDb, pCHAR pszTableType, pCHAR pszPassword,
- pCHAR pszAlias);
- DBIResult DisplayError(DBIResult rslt, pCHAR* pMsg);
- DBIResult GetFieldInfo(pCHAR pFld, pUINT16 FldNum, pUINT16 FldLen,
- hDBICur hCur, UINT16 iFields);
- void StripChar (pCHAR Dest, pCHAR Src, CHAR Char);
- DBIResult GetMdxName(hDBICur hCur, pCHAR MdxName);
- DBIResult GetIndexDescs(hDBIDb hDb, pIDXDesc AllDesc);
- DBIResult GetFldNames(hDBICur hCur, pFIELDName pFieldNames);
- DBIResult CloseTable(phDBICur pCur);
- DBIResult CheckTable(hDBICur hCur, pBOOL pbFlag);
- DBIResult GetTblType(hDBICur hCur, pCHAR szTableType);
- DBIResult InitIndex1(phDBICur phCur);
- DBIResult GetTableList(hDBIDb hDb, phDBICur phTblCur);
- DBIResult GetNextTblRec(hDBICur hTblCur, pTBLBaseDesc pbaseDesc);
- DBIResult DeleteTable(phDBICur phCur, hDBIDb hDb, pCHAR TblName,
- pCHAR TblType);
-
- // Functions for ADRCMDLG.C
- BOOL FAR CALLBACK _export PasswdDlg (HWND, UINT, WPARAM, LPARAM);
- BOOL FAR CALLBACK _export TypeDlg (HWND, UINT, WPARAM, LPARAM);
- BOOL FAR CALLBACK _export FileHook(HWND, UINT, WPARAM, LPARAM);
- void InitializeStruct(LPSTR, pCS);
- void ProcessCDError(UINT32 dwErrorCode);
- BOOL ChkExt(pCHAR szFileName);
- BOOL IsStandard(pCHAR szAlias, pDBDesc pAliases, UINT32 uNumAliases);
- void SetupDialog(HWND hDlg, INT16 Action);
-
- // Functions for ADR_DLGS.C
- long CALLBACK EditSubClassProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK AboutDlg(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK OrderDlg(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK RangeDlg(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK SearchDlg(HWND, UINT, WPARAM, LPARAM);
-
-