Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

510 lines
14 KiB

/*
* cardfile.h main include file for CARDFILE
*/
#include <windows.h>
#include "indexrc.h"
#include <commdlg.h> /* Standard dialogs */
#include "ecda.h" /* OLE */
/*
* WIN16/32 compatability
*/
#if defined(WIN32)
#define HFILE HANDLE
#define HUGE
#define WPARAM DWORD
#define MYPOINT POINTS
#define LPMYPOINT POINTS *
#define MYMAKEPOINT(l) MAKEPOINTS(l)
#define MYPOINTTOPOINT( pt, pts ) { (pt).x = (LONG)(pts).x ; \
(pt).y = (LONG)(pts).y ; }
#define MyGetTextExtent( a, b, c, d ) GetTextExtentPoint( a, b, c, &d )
#ifndef JAPAN
#define IsDBCSLeadByte(a) a,FALSE
#endif
#define LockData(h) (h)
#define UnlockData(h) (h)
#else
#define HFILE int
#define HUGE huge
#define WPARAM WORD
#define UINT unsigned int
#define WNDPROC FARPROC
#define MYPOINT POINT
#define MYMAKEPOINT(l) MAKEPOINT(l)
#define MyGetTextExtent( a, b, c, d ) d = GetTextExtent( a, b, c )
#endif
#define KEYNAMESIZE 300
#define OBJSTRINGSMAX 64
#ifdef DEBUG
#define NOEXPORT
#else
#define NOEXPORT static
#endif
#define ABOUT 100
#define NEW 101
#define OPEN 102
#define SAVE 103
#define SAVEAS 104
#define PRINT 105
#define PRINTALL 106
#define MERGE 107
#define EXIT 108
#define PAGESETUP 109
#define PRINTSETUP 110
#define CCARDFILE 141
#define PHONEBOOK 142
#define VIEW 143
#define UNDO 118
#define HEADER 111
#define RESTORE 112
#define CUT 113
#define COPY 114
#define PASTE 115
#define I_TEXT 116
#define I_OBJECT 117
#define IDM_SETFONT 120
#define ADD 121
#define CARDDELETE 122
#define DUPLICATE 123
#define DIAL 124
#define GOTO 131
#define FIND 132
#define FINDNEXT 133
#define IDM_PASTESPECIAL 134
#define IDM_INSERTOBJECT 135
/* Use standard help numbers */
#define ID_INDEX 301 //0xFFFF
#define ID_SEARCH 302 //0x0021
#define ID_USEHELP 303 //0XFFFC
#define EDITWINDOW 200
#define LEFTWINDOW 201
#define RIGHTWINDOW 202
#define SCROLLWINDOW 203
#define LISTWINDOW 204
#define CARDWINDOW 205
/* -------------------------------------------------------------------- */
/* Added conditional compilation for long filename support under OS/2 */
/* t-carlh - August, 1990 */
/* -------------------------------------------------------------------- */
#ifdef OS2
#define PATHMAX 260 /* Maximum OS/2 filename length */
#else
#if defined(WIN32)
#define PATHMAX MAX_PATH
#else
#define PATHMAX 128 /* Maximum filename length */
#endif
#endif
#define PT_LEN 50 /* max length of page setup strings */
#if DBG
extern TCHAR dbuf[100];
#endif
extern TCHAR szText[]; /* buffer for reading in card text, etc */
extern TCHAR DefaultNullStr[];
extern BOOL bAskForUpdate;
extern UINT wFRMsg; /* Registered "Find/Replace" message */
extern TCHAR *szOpenMergeText;
extern HWND hListWnd;
extern HWND hCardWnd;
extern HWND hIndexWnd;
extern HWND hEditWnd;
extern HWND hLeftWnd;
extern HWND hRightWnd;
extern HWND hScrollWnd;
extern HWND hEditWnd;
extern HWND hDlgFind;
extern BOOL fInSaveAsDlg;
extern BOOL fValidate;
extern TCHAR szValidateFileWrite[];
extern HANDLE hAccel;
extern HANDLE hEditCurs;
extern HANDLE hIndexInstance;
extern HDC hMemoryDC;
extern HDC hDisplayDC;
#define INITPOINTSIZE 120 // initial point size of font in edit control
extern LOGFONT FontStruct; // logical font in edit control
extern INT iPointSize; // current point size of FontStruct
extern HFONT hFont; // current font in edit control
extern INT EditWidth;
extern INT EditHeight;
extern INT xCardWnd; /* size of the Card window */
extern INT yCardWnd;
extern INT cxHScrollBar;
extern INT cyHScrollBar;
extern int CardPhone;
extern int fCanPrint;
extern BOOL bPrinterSetupDone;
extern int fNeedToUpdateObject;
extern int fSettingText;
extern OPENFILENAME OFN;
extern FINDREPLACE FR;
extern PRINTDLG PD;
extern TCHAR szFileName[];
extern TCHAR TempFile[];
extern TCHAR szOpenCaption[]; /* File open dialog caption text */
extern TCHAR szSaveCaption[]; /* File Save as dialog caption text */
extern TCHAR szMergeCaption[]; /* File Merge dialog caption text */
extern TCHAR chPageText[6][PT_LEN];
extern TCHAR SavedIndexLine[];
extern int DBcmd;
extern int ySpacing;
extern TCHAR szPrinter[];
extern TCHAR szMarginError[160];
extern TCHAR szDec[];
extern int fEnglish; /* true if using English measure system */
extern TCHAR CurIFile[PATHMAX];
extern TCHAR szSearch[40];
extern BOOL fCase, fReverse, fRepeatSearch;
extern FARPROC lpfnAbortProc;
extern FARPROC lpfnAbortDlgProc;
extern FARPROC lpfnPageDlgProc;
extern FARPROC lpPrinterSetDlg;
extern FARPROC lpDlgProc;
extern FARPROC lpfnOpen;
extern FARPROC lpfnSave;
extern FARPROC lpfnDial;
extern FARPROC lpEditWndProc;
extern FARPROC lpfnLinksDlg; /* OLE */
extern FARPROC lpfnInvalidLink; /* OLE */
extern TCHAR szCardView[25];
extern TCHAR szListView[25];
extern HANDLE fhMain; /* file handle for source file */
extern WORD fFileType; /* file type indicator (OLD_FORMAT, ANSI_FILE or UNICODE_FILE) */
extern int fReadOnly;
extern TCHAR szValidateFileWrite[];
extern BOOL fValidate; /* TRUE if validating on save */
extern TCHAR TempFile[];
extern int fNoTempFile;
extern BYTE chDKO[]; /* Unicode cardfile signature.(OLE) */
extern BYTE chRRG[]; /* new cardfile signature.(OLE) */
extern BYTE chMGC[]; /* old cardfile signature. */
extern TCHAR SavedIndexLine[];
/* these must be in the same order as the openfile dialog filter */
#define UNICODE_FILE 1 /* new Unicode format type */
#define ANSI_FILE 2 /* new OLE ANSI format type */
#define OLD_FORMAT 3 /* 3.0 Cardfile format type */
#define LINELENGTH 40
#define CARDLINES 11
#define CARDTEXTSIZE ((LINELENGTH+1) * CARDLINES)
#define CARDCY 12
typedef struct tagTIME
{
TCHAR szSep[2]; /* Separator character for date string */
TCHAR sz1159[6]; /* string for AM */
TCHAR sz2359[6]; /* string for PM */
int iTime; /* time format */
int iTLZero; /* lead zero for hour */
} TIME;
/* max size of short date format string */
#define MAX_FORMAT 12
typedef struct tagDATE
{
TCHAR szFormat[MAX_FORMAT];
} DATE;
typedef struct
{
BYTE reserved[6]; /* bytes available for future use */
DWORD lfData; /* file offset of data */
BYTE flags; /* flags */
CHAR line[LINELENGTH+1]; /* 40 character lines plus null */
} CARDHEADERA;
typedef CARDHEADERA *PCARDHEADERA;
typedef CARDHEADERA far *LPCARDHEADERA;
typedef struct
{
BYTE reserved[6]; /* bytes available for future use */
DWORD lfData; /* file offset of data */
BYTE flags; /* flags */
WCHAR line[LINELENGTH+1]; /* 40 character lines plus null */
} CARDHEADERW;
typedef CARDHEADERW *PCARDHEADERW;
typedef CARDHEADERW far *LPCARDHEADERW;
#ifdef UNICODE
#define CARDHEADER CARDHEADERW
#else
#define CARDHEADER CARDHEADERA
#endif
typedef CARDHEADER *PCARDHEADER;
typedef CARDHEADER far *LPCARDHEADER;
// do something to get rid of warnings
#ifndef OLE_20
#define OLECHAR CHAR
#else
#define OLECHAR TCHAR
#endif
#define ODS OutputDebugString
// FOR PACKING/NON_PACKING PORTABILITY
#if !defined (WIN32)
#define SIZEOFCARDHEADERA sizeof(CARDHEADERA)
#define SIZEOFCARDHEADERW sizeof(CARDHEADERW)
#else
#define SIZEOFCARDHEADERW (11 + (LINELENGTH + 1) * sizeof(WCHAR))
#define SIZEOFCARDHEADERA (11 + LINELENGTH + 1)
#ifdef UNICODE
#define SIZEOFCARDHEADER SIZEOFCARDHEADERW
#else
#define SIZEOFCARDHEADER SIZEOFCARDHEADERA
#endif
#endif
typedef struct
{
/*
* For OLE, the BITMAP is just a special frozen object.
*
* If we're in compatibility mode (lpObject is an HBITMAP) the
* selector of lpObject will be NULL.
*/
DWORD idObject; /* What is the object name? */
OBJECTTYPE otObject; /* What kind of object is this? */
RECT rcObject; /* Where should the object be drawn? */
LPOLEOBJECT lpObject; /* Handle to the object */
HANDLE hText;
} CARD, FAR *PCARD;
extern DWORD idObjectMax;
extern int cCards; /* the current count of cards */
extern HANDLE hCards; /* the handle to the buffer */
extern INT CharFixWidth; /* the character width */
extern INT CharFixHeight; /* the character height */
extern INT ExtLeading; /* the external leading */
extern int CardWidth;
extern int CardHeight;
extern int fColor;
extern HBRUSH hbrCard;
extern HBRUSH hbrBorder;
extern HANDLE hArrowCurs;
extern HANDLE hWaitCurs;
extern CARDHEADER CurCardHead;
extern CARD CurCard;
#define FNEW 0x01
#define FDIRTY 0x02
#define FTMPFILE 0x04
/* Return values from OleError: No problem, error with/without warning */
#define FOLEERROR_OK 0x00
#define FOLEERROR_GIVEN 0x01
#define FOLEERROR_NOTGIVEN 0x02
extern RECT dragRect;
extern int iTopScreenCard;
extern int iCurCard;
extern int iFirstCard;
#define LEFTMARGIN 8
#define TOPMARGIN 8
#define BOTTOMMARGIN 8
extern int cScreenHeads;
extern int cScreenCards;
extern int cFSHeads; /* count of fully visible headers */
#define SBINDEX SB_HORZ
extern int ySpacing;
extern int xFirstCard;
extern int yFirstCard;
extern int EditMode;
extern TCHAR *pcComNum;
extern TCHAR *pcTonePulse;
extern TCHAR *pcSpeedNum;
extern TCHAR szMerge[3]; /* two characters for string insertion */
extern BOOL fFileDirty; /* does disk match current set of cards? */
extern BOOL fFullSize;
extern BOOL fInsertComplete; /* If insertObject in progress, it is FALSE */
/* Reset to TRUE when InsertObjectis complete */
#ifdef JAPAN //KKBUGFIX #3082: 02/02/1993: Disabling IME while Picture mode
extern BOOL fNowFocus;
#endif
#define INDEXICON 1
#define MAINACC 1
#define MTINDEX 1
/* prompts */
#define IDELCURCARD 0
#define ICREATEFILE 1
#define IOKTOSAVE 2
#define ICARDS 3
#define ICARD 4
#define IONECARD 5
#define IUNTITLED 6
#define ICARDDATA 7
#define IWARNING 8
#define INOTE 9
#define IPICKUPPHONE 10
#define ICARDFILE 11
#define IMARGINERR 12
#define IMERGE 13
#define IOPEN 14
#define ICARDVIEW 15
#define ILISTVIEW 16
#define IHELPFILE 18
/* errors */
#define ECANTDIAL 19
#define ECANTPRINTPICT 20
#define EINSMEMORY 21
#define EINVALIDFILE 23
#define ECLIPEMPTYTEXT 24
#define ENOTEXTSEL 25
#define EDISKFULLFILE 26
#define ECANTMAKETEMP 27
#define EINSMEMSAVE 28
#define EDISKFULLSAVE 29
#define EOPENTEMPSAVE 30
#define ECANTREADPICT 31
#define EINSMEMRUN 32
#define ENOTVALIDFILE 33
#define ECANTFIND 34
#define EINSMEMREAD 35
#define ECANTPRINT 36
#define ECLIPEMPTYPICT 37
#define ENOMODEM 38
#define ENOPICTURES 39
#define ECANTMAKEFILE 40
#define EMEMPRINT 41
#define EDISKPRINT 42
#define ISTRINGINSERT 43
#define IFILEEXTENSION 44
#define E_NOUNICODEFONT 45
#define E_UNICODETEXT 46
/**** WARNING! DO NOT CHANGE THE ORDER OF THESE! ***/
#define IHEADER 50
#define IFOOTER 51
#define ILEFT 52
#define IRIGHT 53
#define ITOP 54
#define IBOT 55
/*** END OF WARNING ***/
#define IDS_LETTERS 60
/* A whole slew of E_ errors defined in ecda.h, starting at 0x100 */
/* A few W_ errors defined in ecda.h, starting at 0x200 */
#define E_CANT_REOPEN_FILE 61
#define E_FILEUPDATEFAILED 62
#define E_FILEWRITEFAILED 63
#define E_FILECANTWRITE 64
#define IDS_CANNOTQUIT 65
#define E_CANTSAVETOREADONLYFILE 66
#define W_OPENFILEFORREADONLY 67
#define E_PASTEDTEXTTOOLONG 68
#define E_FILESAVE 69
#define CAPTIONMAX 30 /* max size of captions in dialogs */
#define OBJNAMEMAX 30 /* Length of IDS_OBJNAME w/o the %d */
#define IDS_FILTERSPEC 0x300 /* file open/save dlg. filter spec. string */
#define IDS_FILTERSPEC2 0x301
#define IDS_FILTERSPEC3 0x302
#define IDS_FILTERSPEC4 0x303
#define IDS_OPENDLGTITLE 0x304 /* caption of the open dialog */
#define IDS_SAVEDLGTITLE 0x305 /* caption of the saveas dialog */
#define IDS_MERGEDLGTITLE 0x306 /* caption of the merge dialog */
#define IDS_LINKTITLE 0x307 /* Caption of the link repair dialog */
#define IDS_VALIDATE 0x308 /* Validate check box text */
#define IDS_OBJNAME 0x309 /* Used to construct OLE object names */
#define IDS_UPDATEEMBOBJECT 0x30A
#define IDS_RETRYAFTERINSERT 0x30B
#define IDS_OBJECTCMD 0x30C
#define IDS_PICTUREFMT 0x30D
#define IDS_BITMAPFMT 0x30E
#define IDS_UPDATELINK 0x30F
#define IDS_OBJECTFMT 0x310
#define IDS_PopupVerbs 0x311
#define IDS_SingleVerb 0x312
#define IDS_Edit 0x313
#define IDS_NOOLESERVERS 0x314
#define IDS_SPACEISINCH 0x315
#define IDS_SPACEISCENTI 0x316
extern TCHAR szCardfile[40];
extern TCHAR szCardClass[];
extern TCHAR szWindows[];
extern TCHAR szDevice[];
extern TCHAR NotEnoughMem[160];
extern TCHAR szHelpFile[30];
extern TCHAR szUntitled[30];
extern TCHAR szWarning[30];
extern TCHAR szNote[30];
extern TCHAR szFileExtension[5];
extern int iTopCard;
extern TCHAR szServerFilter[]; /* default filter spec. for servers */
extern TCHAR szFilterSpec[]; /* default filter spec. */
extern TCHAR szLinkCaption[];
extern TCHAR szLastDir[];
HANDLE hFind;
extern TCHAR szCustFilterSpec[]; /* buffer for custom filters created */
extern BOOL fValidDB; /* Validate on/off in Save dialog box */
#include "funcs.h"
#include "uniconv.h"