194 lines
5.7 KiB
C
194 lines
5.7 KiB
C
|
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef _LCLWN_H
|
|||
|
#define _LCLWN_H 1
|
|||
|
|
|||
|
/************************ Structures And Types *****************************/
|
|||
|
|
|||
|
typedef enum {
|
|||
|
vibUndefined = 0, // We don't know what this vib is
|
|||
|
vibSymbol = 1, // vib is a local
|
|||
|
vibWatch = 2, // vib is a watch
|
|||
|
vibChild = 3, // vib is the root of a tree
|
|||
|
vibGeneric = 4, // vib is a array/structure entry
|
|||
|
vibPointer = 5, // vib is a pointer
|
|||
|
vibType = 6 // vib is a type
|
|||
|
} EVIB;
|
|||
|
|
|||
|
typedef enum {
|
|||
|
OK = 0,
|
|||
|
INITLOCSTATUS = 100,
|
|||
|
INITWATCHSTATUS = 200,
|
|||
|
CODEVIEWMSG = 1,
|
|||
|
OUTOFMEMORY = 10,
|
|||
|
UNABLETOEXPAND = 20,
|
|||
|
UNABLETOADDWATCH = 30,
|
|||
|
UNABLETODELETEWATCH = 40,
|
|||
|
WATCHNOTOPEN = 50,
|
|||
|
UNABLETOOPEN = 60,
|
|||
|
NONEDITFIELD = 70,
|
|||
|
WATCHSYNTAXERROR = 80
|
|||
|
} LTS;
|
|||
|
|
|||
|
/*
|
|||
|
#define OK 0
|
|||
|
#define INITLOCSTATUS ((LTS) 100)
|
|||
|
#define INITWATCHSTATUS ((LTS) 200)
|
|||
|
#define CODEVIEWMSG ((LTS) 1)
|
|||
|
#define OUTOFMEMORY ((LTS) 10)
|
|||
|
#define UNABLETOEXPAND ((LTS) 20)
|
|||
|
#define UNABLETOADDWATCH ((LTS) 30)
|
|||
|
#define UNABLETODELETEWATCH ((LTS) 40)
|
|||
|
#define WATCHNOTOPEN ((LTS) 50)
|
|||
|
#define UNABLETOOPEN ((LTS) 60)
|
|||
|
#define NONEDITFIELD ((LTS) 70)
|
|||
|
#define WATCHSYNTAXERROR ((LTS) 80)
|
|||
|
*/
|
|||
|
|
|||
|
#define EXPAND1ST 0x01;
|
|||
|
|
|||
|
/*
|
|||
|
**
|
|||
|
*/
|
|||
|
|
|||
|
#define CLREISACT 0xF0
|
|||
|
#define CLREISVAL 0x0F
|
|||
|
|
|||
|
|
|||
|
typedef UCHAR OC; // offset of a character within a line
|
|||
|
typedef ULONG VPI; // vib packet index
|
|||
|
|
|||
|
typedef struct vib * PTRVIB; // a pointer to a vib
|
|||
|
|
|||
|
/*
|
|||
|
**
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct woj {
|
|||
|
int evalLang; // language of the expression, not used yet
|
|||
|
USHORT iFormSpec; // offset in szExpStr of the format specifer
|
|||
|
USHORT ErrNbr;
|
|||
|
USHORT cbLen;
|
|||
|
WORD hprc;
|
|||
|
char szExpStr[1];
|
|||
|
} WOJ;
|
|||
|
|
|||
|
typedef WOJ * PTRWOJ;
|
|||
|
|
|||
|
/*
|
|||
|
** CIF - Children information block
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct cif {
|
|||
|
PTRVIB pvibChild; // pointer to its children
|
|||
|
HTM hTMBd; // the TM to be expanded.
|
|||
|
} CIF; // an expansion info packet
|
|||
|
|
|||
|
typedef CIF * PTRCIF; // a pointer to a cif
|
|||
|
|
|||
|
/*
|
|||
|
** VIBFLAGS
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct vibflags {
|
|||
|
WORD NoData :1; // Vib contains no data
|
|||
|
WORD NoBind :1; // Vib not bound (Out of Context)
|
|||
|
WORD FuncEval :1; // Vib uses Function Evaluation
|
|||
|
WORD ExpandMe :1; // Needs to be expand at next paint
|
|||
|
WORD DlgAdd :1; // Dialog Box has added but not done
|
|||
|
WORD DlgDel :1; // Dialog Box has deleted but not done
|
|||
|
WORD DlgOrig :1; // Dialog Box tracking but not done
|
|||
|
} VFLAGS;
|
|||
|
|
|||
|
/*
|
|||
|
** VIBTEXT
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct vibtext {
|
|||
|
PSZ pszValueC; // Value (Current Right Pane)
|
|||
|
PSZ pszValueP; // Value (Current Left Pane)
|
|||
|
PSZ pszFormat; // Format Override
|
|||
|
HTM htm;
|
|||
|
BOOL fChanged; // TRUE if changed on prev step
|
|||
|
} VTEXT;
|
|||
|
|
|||
|
typedef VTEXT * PVTEXT;
|
|||
|
|
|||
|
/*
|
|||
|
** Variable Information Block (VIB)
|
|||
|
** This structure describes the information about each
|
|||
|
** expression in the watch window. There is one VIB for every
|
|||
|
** filled line in the window.
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct vib {
|
|||
|
short cln; // nbr lines taken by this an all children
|
|||
|
PTRVIB pvibParent; // pointer to the parent
|
|||
|
PTRCIF pcif; // pointer to its child info structure
|
|||
|
PTRVIB pvibSib; // pointer to the next siblings
|
|||
|
EVIB vibPtr;
|
|||
|
UCHAR level; // The nesting level
|
|||
|
VPI vibIndex; // The index into the parents array
|
|||
|
HPROC hprocCache; // hproc bound under
|
|||
|
HBLK hblkCache; // hblk bound under
|
|||
|
HTM hTMBd; // pointer to the bound TM
|
|||
|
HSYM hSym; // The handle the symbols table
|
|||
|
VFLAGS flags; // Flags word
|
|||
|
PTRWOJ pwoj; // Name Information
|
|||
|
|
|||
|
PVTEXT pvtext; // Text Descriptions
|
|||
|
ULONG cText; // Count of Text Descriptions
|
|||
|
|
|||
|
} VIB; // variable info block
|
|||
|
|
|||
|
/*
|
|||
|
** VIT
|
|||
|
*/
|
|||
|
|
|||
|
typedef struct vit * PTRVIT; // pointer to a vit
|
|||
|
|
|||
|
typedef struct vit {
|
|||
|
short cln; // Total number of lines in tree
|
|||
|
PTRVIT * pvitParent; // pointer to the parent, allways NULL
|
|||
|
PTRVIB pvibChild; // pointer to its children
|
|||
|
CXF cxf; // the context of the vit
|
|||
|
} VIT; // variable info block top
|
|||
|
|
|||
|
|
|||
|
/**************************** Prototypes *********************************/
|
|||
|
|
|||
|
LPVOID AllocMem(int cb);
|
|||
|
LPVOID DuplicateMem(PSTR pOld);
|
|||
|
VOID FreeMem(LPVOID lpv);
|
|||
|
|
|||
|
PTRVIB PASCAL PvibAlloc(PTRVIB, PTRVIB);
|
|||
|
VOID PASCAL FTAgeVibValues(PTRVIB);
|
|||
|
void PASCAL FTclnUpdateParent( PTRVIB pvibParent, int dcln );
|
|||
|
PTRVIB PASCAL FTvibGetAtLine( PTRVIT pvit, ULONG oln );
|
|||
|
VOID PASCAL FTEnsureTextExists( PTRVIB pVib );
|
|||
|
LTS PASCAL FTExpand ( PTRVIT pvit, ULONG oln );
|
|||
|
VOID PASCAL FTExpandOne( PTRVIB pVib);
|
|||
|
VOID PASCAL FTFreeAllSib( PTRVIB pvib );
|
|||
|
BOOL PASCAL FTVerify(PCXF pcxf, PTRVIB pvib);
|
|||
|
int PASCAL FTMakeWatchEntry(void *, void *, char *);
|
|||
|
LTS PASCAL FTError(LTS);
|
|||
|
PSTR PASCAL FTGetVibNames(PTRVIT, BOOL, PLONG);
|
|||
|
PSTR PASCAL FTGetWatchList(PTRVIT);
|
|||
|
PSTR PASCAL FTGetVibResults(PTRVIT, BOOL, PLONG);
|
|||
|
PSTR PASCAL FTGetVibNameString(PTRVIB pVib);
|
|||
|
PSTR PASCAL FTGetVibResultString(PTRVIT pVit, PTRVIB pVib);
|
|||
|
PSTR PASCAL FTGetVibTypeString(PTRVIB pVib);
|
|||
|
BOOL PASCAL FTGetPanelStatus( PTRVIB pVib, UINT PanelNumber);
|
|||
|
PSTR PASCAL FTGetPanelString( PTRVIT pVit, PTRVIB pVib, UINT PanelNumber);
|
|||
|
VOID PASCAL FTSetWatchList(PTRVIT, PSTR);
|
|||
|
PTRVIB PASCAL FTvibGet ( PTRVIB, PTRVIB );
|
|||
|
PTRVIB PASCAL FTvibInit( PTRVIB, PTRVIB );
|
|||
|
PTRVIB PASCAL FTvibGetAtLine( PTRVIT pvit, ULONG oln );
|
|||
|
BOOL PASCAL FTVerifyNew( PTRVIT pvit, ULONG oln);
|
|||
|
|
|||
|
BOOL FTAddWatchVariable(PTRVIT * ppVit, PTRVIB * ppVib, LPSTR lpszWatchVar);
|
|||
|
|
|||
|
#endif /* _LCLWN_H */
|
|||
|
|
|||
|
|