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.
227 lines
9.5 KiB
227 lines
9.5 KiB
// ***********************************************************************
|
|
// HEADER FILE FOR: Windows Comparision Tool
|
|
// FILE NAME: WCTGLOB.H
|
|
//
|
|
// Copyright (c) Microsoft 1990
|
|
// ***********************************************************************
|
|
|
|
// ***********************************************************************
|
|
// REVISION HISTORY:
|
|
//
|
|
// [0] 03/30/90 GARYSP CREATED FILE
|
|
// [1] 04/24/90 GARYSP ADDED PROPER COMMENTING
|
|
// [2] 05/23/90 GARYSP ADDED FILE DATA STRUCTURES
|
|
// [3] 07/30/90 GARYSP CHANGED TO USE SDMTOWCT.H
|
|
//
|
|
// ***********************************************************************
|
|
|
|
// INCLUDE SDM to WCT FILE - contains data structure for
|
|
// control definition.
|
|
#define WIN
|
|
#define VerCur 2 /* Version number of WCT */
|
|
#define EnvCur 1 /* Program env: 1 = Windows, 2 = PM */
|
|
#include "sdmtowct.h"
|
|
#include "wcterr.h"
|
|
|
|
#define PRIVATE PASCAL
|
|
#define PUBLIC PASCAL
|
|
#define VOID void
|
|
|
|
#define FARPRIVATE APIENTRY
|
|
#define FARPUBLIC APIENTRY
|
|
|
|
typedef HFILE FD; /* file handle */
|
|
typedef LONG LFO; /* file offset */
|
|
|
|
#define SIZEOF_LFO 4
|
|
|
|
typedef VOID ( APIENTRY *TrapCallBack)(INT);
|
|
typedef BOOL ( APIENTRY *IMPORTERR)(INT, LPSTR);
|
|
|
|
#define cdlgMax 100 /* limit of dialogs dumps per file */
|
|
#define MaxSize 60000 /* max size for each segment of dialog */
|
|
#define MaxCb 3 /* max number of segment per dialog */
|
|
#define cchMaxDsc 20 /* max chars in a description */
|
|
|
|
#define cchFuzzyCharMax 5 /* max chars in fuzzy compare */
|
|
|
|
#define ID_EDIT 0 /* Internal Control ID values */
|
|
#define ID_COMBO 1
|
|
#define ID_STATIC 2
|
|
#define ID_LIST 3
|
|
#define ID_PUSH 4
|
|
#define ID_RADIO 5
|
|
#define ID_CHECK 6
|
|
#define ID_GROUP 7
|
|
#define ID_SCROLLV 8
|
|
#define ID_SCROLLH 9
|
|
#define ID_OTHER 10
|
|
|
|
#define cchMaxfileName 256 /* Max limits defines */
|
|
|
|
/* ------------------------------------------------------ */
|
|
/* DLG - Dialog table data structure, containing: */
|
|
/* cb[MaxCb] number of bytes in the diff 64k alloc */
|
|
/* cbComp which 64k alloc has been compressed */
|
|
/* lfo offset to the dialog in the file */
|
|
/* cCtrls count of controls in the dialog */
|
|
/* szDsk[] a description of the dialog */
|
|
/* ------------------------------------------------------ */
|
|
/* Extra note: the following table is 64 bytes... */
|
|
typedef struct{
|
|
LFO lfo ; /* offset to the screen */
|
|
WORD cCtrls ; /* Count of controls in this dialogs */
|
|
WORD fFullDlg ; /* is the dialog the entire dialog??? */
|
|
CHAR szDsc[cchMaxDsc]; /* Description of this dialog */
|
|
}
|
|
DLG; /* Dialog Table */
|
|
|
|
#define SIZEOF_DLG (4 + 2 + 2 + cchMaxDsc)
|
|
typedef DLG FAR * LPDLG;
|
|
|
|
/* ------------------------------------------------------ */
|
|
/* FST - File stamp data structure, containing: */
|
|
/* FileId[3] Identify file as a WCT file. */
|
|
/* Ver version number of the Wct file */
|
|
/* Env programming env (windows/pm) */
|
|
/* ------------------------------------------------------ */
|
|
typedef struct{
|
|
CHAR FileId[3] ; /* Indentify file as WCT file. */
|
|
BYTE Ver ; /* Version number of screen file */
|
|
BYTE Env ; /* programming environment */
|
|
}
|
|
FST ; /* file stamp */
|
|
|
|
#define SIZEOF_FST 5
|
|
|
|
/* ------------------------------------------------------ */
|
|
/* FSS - Header for a WCT file, containing: */
|
|
/* fst File stamp for the file */
|
|
/* cdlg total number of dialogs in the file */
|
|
/* lfo offset to the dialog table in the file. */
|
|
/* ------------------------------------------------------ */
|
|
typedef struct{
|
|
FST fst ; /* Indentify file as WCT file. */
|
|
WORD cdlg ; /* total number of dialogs in file */
|
|
LFO lfo ; /* File offset to dialog tables */
|
|
}
|
|
FSS; /* Header for Screen file. */
|
|
|
|
#define SIZEOF_FSS (SIZEOF_FST + 2 + SIZEOF_LFO)
|
|
|
|
|
|
#define TRUE 1 /* boolean definitions */
|
|
#define FALSE 0
|
|
|
|
#define omRead 0x80 /* DOS file open modes */
|
|
#define omReadWrite 0x82
|
|
|
|
#define smFromBegin 0 /* file seraching methods */
|
|
#define smFromCurrent 1
|
|
#define smFromEnd 2
|
|
|
|
#define fdNull HFILE_ERROR /* invalid file handle */
|
|
//#define fdNull 0xFFFF /* invalid file handle */
|
|
|
|
#define Append 0 /* action code for appending a screen */
|
|
#define Replace 1 /* action code for replacing a screen */
|
|
#define Insert 2 /* action code for inserting a screen */
|
|
|
|
// fPumpHandleForInfo operation codes
|
|
//---------------------------------------------------------------------
|
|
#define PUMP_CTL 0 // Get control only
|
|
#define PUMP_ALL 1 // Get all child windows
|
|
#define PUMP_MENU 2 // Get menu bar
|
|
|
|
// fDoCompare defines (Fuzzy Match defines)
|
|
//-----------------------------------------
|
|
#define MATCH_EXACT 131071 // Match Everything
|
|
#define MATCH_DEFAULT 6 // Default Fuzzy Match (Class & Name) no case
|
|
|
|
#define MATCH_CASE 1 // Case sensitive Flag
|
|
#define MATCH_CLASS 2 // Match Class Name
|
|
#define MATCH_NAME 4 // Match Control Name
|
|
#define MATCH_RECT 8 // Match Rectangle Coordinate
|
|
#define MATCH_TAB 16 // Match Tab Order
|
|
#define MATCH_STATE 32 // Match Style Bits (States)
|
|
|
|
/* global variables */
|
|
|
|
FSS fssDialog ; /* header for a valid screen file */
|
|
DLG rgdlg[cdlgMax]; /* Screen tables. */
|
|
HANDLE hInst ; /* Instance handle */
|
|
HANDLE hDlgMem, hCompMem; /* The dialog memory handle, and */
|
|
/* the handle to memory to compare it to */
|
|
LONG lMatchPref; /* Fuzzy Match Pref */
|
|
|
|
/* Local Procedures */
|
|
INT PRIVATE ValidateFile (FD, BOOL) ;
|
|
FD PRIVATE fReadHeader (LPSTR, BYTE, BOOL, INT FAR *) ;
|
|
INT PRIVATE fReadTables (FD) ;
|
|
INT PRIVATE ProcessWctFile (LPSTR, FD FAR *, INT, BYTE) ;
|
|
|
|
INT PRIVATE fWriteScreen (FD, DLG *, INT FAR *) ;
|
|
INT PRIVATE fAddScreen (FD, DLG *, INT, INT FAR *) ;
|
|
INT PRIVATE CopyBytes (FD, LFO, FD, LFO, WORD) ;
|
|
INT PRIVATE CpBlock (FD, LFO, FD, LFO, LFO) ;
|
|
INT PRIVATE fReWriteTables (FD) ;
|
|
|
|
VOID PRIVATE CreateHeader (VOID) ;
|
|
INT PRIVATE WriteCompBytes (FD, LPSTR, WORD, WORD FAR *, INT FAR *) ;
|
|
INT PRIVATE fAppendSrn (FD, INT) ;
|
|
INT PRIVATE ReplaceSrnTable (FD, FD, DLG FAR *, INT) ;
|
|
INT PRIVATE AddSrnTable (FD, FD, DLG FAR *, INT) ;
|
|
INT PRIVATE fUpdateSrnFile (LPSTR, INT, INT, INT) ;
|
|
INT PRIVATE fAppendDlg(FD, LPSTR);
|
|
INT PRIVATE fUpdateDlgFile(LPSTR, INT, INT, LPSTR, DLG *);
|
|
INT PRIVATE ReplaceDlgTable(FD, FD, DLG FAR *, INT);
|
|
INT PRIVATE AddDlgTable(FD, FD, DLG FAR *, INT);
|
|
|
|
INT PRIVATE FBadWindow(HWND hwnd);
|
|
BOOL PRIVATE FWinExceptNULLTrap(HWND hWnd);
|
|
INT PRIVATE ErrorTrap(INT result);
|
|
INT PRIVATE NoTrap( INT n );
|
|
|
|
/* routines from LibMain.c */
|
|
INT PRIVATE fAddDialog(FD, DLG *, LPSTR);
|
|
INT PRIVATE fWriteDialog(FD, DLG *, LPSTR);
|
|
WORD PRIVATE ReadDlgBytes(LPSTR, FD, WORD);
|
|
WORD PRIVATE ReadDlgStruct (LPCTLDEF, FD, WORD);
|
|
|
|
/* Exported entry points */
|
|
INT FARPUBLIC fDelDialog (LPSTR, INT) ;
|
|
INT FARPUBLIC fDumpDialog (LPSTR, HWND, INT, INT) ;
|
|
INT FARPUBLIC fDialogInfo (LPSTR, INT, LPSTR, INT FAR *, INT FAR *) ;
|
|
INT FARPUBLIC fGetDLLVersion (LPSTR) ;
|
|
INT FARPUBLIC fGetCountDialogs (LPSTR) ;
|
|
INT FARPUBLIC fGetOS (LPSTR) ;
|
|
INT FARPUBLIC MaxDialogsPerFile (VOID) ;
|
|
INT FARPUBLIC fGetDialogs(LPSTR, WORD, LPSTR);
|
|
INT FARPUBLIC fGetControls(LPSTR, INT, WORD, LPSTR);
|
|
INT FARPUBLIC fValidWctFile(LPSTR);
|
|
INT FARPUBLIC DODUMP(LPSTR lpszStr);
|
|
INT FARPUBLIC fSaveDialog (LPSTR, LPSTR, INT, LPSTR, INT, INT, INT) ;
|
|
INT FARPUBLIC fCtlFromHwnd(HWND hWnd, CTLDEF FAR *pctl);
|
|
INT FARPUBLIC fCompareMem (LPCTLDEF, INT, LPCTLDEF, INT, INT, LPSTR);
|
|
INT FARPUBLIC fInitBlock(HANDLE FAR *, INT);
|
|
INT FARPUBLIC fReallocBlock(HANDLE, INT);
|
|
INT FARPUBLIC fAddCtl(HANDLE, LPCTLDEF, INT FAR *);
|
|
INT FARPUBLIC fDelCtl(HANDLE, INT, INT FAR *);
|
|
INT FARPUBLIC fRepCtl(HANDLE, LPCTLDEF, INT, INT FAR *);
|
|
INT FARPUBLIC fInsCtl(HANDLE, LPCTLDEF, INT, INT FAR *);
|
|
INT FARPUBLIC fAddControlToList (HWND, HANDLE, INT FAR *, LPRECT);
|
|
INT FARPUBLIC fPumpHandleForInfo (HWND, HANDLE, INT FAR *, INT);
|
|
INT FARPUBLIC fDoCompare (LPSTR, HWND, INT, INT, LPSTR, HANDLE, INT);
|
|
INT FARPUBLIC GetDlgControlCount (INT nDialog);
|
|
VOID FARPUBLIC WSCR_WindowMissing(INT TrapID, INT Action, TrapCallBack CallBack);
|
|
VOID FARPUBLIC WSCR_EventError(INT TrapID, INT Action, TrapCallBack CallBack);
|
|
INT FARPUBLIC TESTDlgsInit (VOID);
|
|
INT FARPUBLIC fTDLExport(LPSTR, LPSTR);
|
|
INT FARPUBLIC fTDLImport(LPSTR , LPSTR, IMPORTERR);
|
|
BOOL FARPUBLIC WctCalDlgSize(LPRECT, LPCTLDEF, INT);
|
|
VOID FARPUBLIC fPutMatchPref(LONG);
|
|
LONG FARPUBLIC fGetMatchPref(VOID);
|
|
|
|
#ifdef WIN32
|
|
#define GetActiveWindow GetForegroundWindow
|
|
#endif
|