which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5943 c028cbd2-c16b-5b4b-a496-9718f37d4682
1052 lines
34 KiB
C
Executable File
1052 lines
34 KiB
C
Executable File
/*
|
|
+----------------------------------------------------------------------+
|
|
| pro_ext.h |
|
|
+----------------------------------------------------------------------+
|
|
|
|
|
|
================ ===========
|
|
== === == ==
|
|
== = == ==
|
|
== == ==
|
|
== === ===== ===== == == === ==== ===
|
|
===== == == == == ========= == == == == ==
|
|
== == == == == == === == ==
|
|
== == == === == == == ==
|
|
== == == == == == == == ==
|
|
== == == == == == == == ==
|
|
======= === ===== ==== ====== ====== ===
|
|
|
|
+--------------------------------------------------------------------------+
|
|
| FoxPro -- Relational Database System |
|
|
+--------------------------------------------------------------------------+
|
|
| |
|
|
| Copyright (c) 1989-1993 Microsoft Corporation as an unpublished |
|
|
| licensed proprietary work. All rights reserved. |
|
|
| |
|
|
| This software contains valuable trade secrets and proprietary |
|
|
| information, and is protected by federal copyright laws, the |
|
|
| violation of which can result in civil damages and criminal pro- |
|
|
| secution. Access to these source materials is granted only by |
|
|
| explicit written permission from Microsoft. |
|
|
| |
|
|
+--------------------------------------------------------------------------+
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" { /* Assume C declarations for C++ */
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
#pragma pack(1) // Assume byte structure packing
|
|
|
|
#ifndef PRO_EXT_INCLUDED
|
|
|
|
#define PRO_EXT_INCLUDED
|
|
|
|
/* Semi-portable way to deal with 'far' pointers */
|
|
#ifndef FAR
|
|
#define FAR __far
|
|
#endif
|
|
|
|
#ifndef GLOBAL_INCLUDED
|
|
typedef unsigned MHANDLE; /* A memory handle. */
|
|
typedef int NTI; /* A name table index. */
|
|
typedef unsigned long Ticks; /* A timer tick count. */
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
#define YES 1
|
|
#define NO 0
|
|
typedef char TEXT;
|
|
#endif
|
|
|
|
#if defined(I80386)
|
|
#if I80386 && !WINAPI16
|
|
#ifdef GLOBAL_INCLUDED
|
|
#define MHANDLE unsigned short
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if __WATCOMC__
|
|
#ifndef __386__
|
|
#pragma aux default parm routine [ax bx cx dx] modify [es];
|
|
#endif
|
|
#endif
|
|
|
|
typedef unsigned long WHandle; /* A Window Handle */
|
|
typedef long MENUID; /* A Menu id. */
|
|
typedef long MenuId; /* A Menu id. */
|
|
typedef long ITEMID; /* An item id. */
|
|
typedef long ItemId; /* An item id. */
|
|
|
|
typedef int FCHAN; /* A file I/O channel. */
|
|
#define SCHEMEWIDTH 11
|
|
typedef char Scheme[SCHEMEWIDTH];/* A FoxPro color scheme */
|
|
|
|
|
|
#ifdef GLOBAL_INCLUDED
|
|
|
|
#define WHANDLE WHandle
|
|
|
|
#else
|
|
|
|
typedef WHandle WHANDLE; /* Users can use WHANDLE */
|
|
|
|
#endif
|
|
|
|
#ifndef FOXWIND_INCLUDED
|
|
|
|
/* _WOpen() flag values. */
|
|
|
|
#define WCURSOR (1<<1) /* Enable the cursor */
|
|
#define ZOOM (1<<2) /* Permit the window to be zoomed */
|
|
#define ADJ (1<<3) /* Allow Window Size to be Adjusted */
|
|
#define CLOSE (1<<4) /* Permit Closing of System Window */
|
|
#define MOVE (1<<5) /* Allow the window to be moved */
|
|
#define HSCROLLBAR (1<<6) /* Show Horizontal Scrollbars */
|
|
#define VSCROLLBAR (1<<7) /* Show Vertical Scrollbars */
|
|
#define AUTOSCROLL (1<<8) /* Window should Auto scroll */
|
|
#define WEVENT (1<<10) /* Participates in activate/deact events */
|
|
#define SHADOW (1<<11) /* Window will produce a shadow */
|
|
#define WMODAL (1<<12) /* Window is a modal window */
|
|
#define WMINIMIZE (1<<13) /* Window can be minimized */
|
|
|
|
#endif
|
|
|
|
#ifndef FOXEVENT_INCLUDED
|
|
|
|
/* _FindWindow() return values. */
|
|
#define inBorder 0 /* In the window border region */
|
|
#define inHelp 1 /* In the Help region */
|
|
#define inContent 2 /* In the content/text region */
|
|
#define inDrag 3 /* In the Drag/Title bar region */
|
|
#define inGrow 4 /* In the grow/resize region */
|
|
#define inGoAway 5 /* In the goAway/close region */
|
|
#define inZoom 6 /* In the zoom region */
|
|
#define inVUpArrow 7 /* In the vertical up arrow region */
|
|
#define inVDownArrow 8 /* In the vertical down arrow region */
|
|
#define inVPageUp 9 /* In the vertical page up region */
|
|
#define inVPageDown 10 /* In the vertical page down region */
|
|
#define inVThumb 11 /* In the vertical thumb region */
|
|
#define inHUpArrow 12 /* In the horizontal up arrow region */
|
|
#define inHDownArrow 13 /* In the horizontal down arrow region */
|
|
#define inHPageUp 14 /* In the horizontal page up region */
|
|
#define inHPageDown 15 /* In the horizontal page down region */
|
|
#define inHThumb 16 /* In the horizontal thumb region */
|
|
#define inMenuBar 17 /* In the menu bar */
|
|
|
|
/* EventRec.what values */
|
|
|
|
#define nullEvent 0 /* Null */
|
|
#define mouseDownEvent 1 /* Mouse down */
|
|
#define keyDownEvent 2 /* Key down */
|
|
#define activateEvent 3 /* Activate window */
|
|
#define deactivateEvent 4 /* Deactivate window */
|
|
#define updateEvent 5 /* Redraw window */
|
|
#define menuHitEvent 6 /* Menu Hit */
|
|
#define menuUpdateEvent 7 /* Menu Update required */
|
|
#define closeEvent 8 /* Close window */
|
|
#define hideEvent 9 /* Hide window */
|
|
#define showEvent 10 /* Show window */
|
|
#define hotkeyEvent 11 /* An ON KEY LABEL was pressed */
|
|
#define sizeEvent 12 /* Size window event */
|
|
#if defined(__WINDOWS__) || defined(_WINDLL)
|
|
#define rMouseDownEvent 13 /* Right mouse down event */
|
|
#define zoomEvent 999 /* Not supported in Windows */
|
|
#else
|
|
#define zoomEvent 13 /* Zoom window event */
|
|
#endif
|
|
|
|
/* EventRec.modifiers defines */
|
|
|
|
#define charCodeMask 0x0fff /* Character code mask */
|
|
#define shiftCodeMask 0xf000 /* Shift key mask */
|
|
|
|
#define shiftKey 0x1000 /* Either shift key 1 - down */
|
|
#define ctrlKey 0x2000 /* Control key 1 - down */
|
|
#define altKey 0x4000 /* Alternate key 1 - down */
|
|
#define literalKey 0x8000 /* This key is interpreted literally */
|
|
|
|
/* EventRec.mbState code defines */
|
|
|
|
#define leftButton (1<<0) /* Left button status 1 - down */
|
|
#define rightButton (1<<1) /* Right button status 1 - down */
|
|
#define centerButton (1<<2) /* Center button status 1 - down */
|
|
|
|
/* EventRec.mcState code defines */
|
|
|
|
#define posChange (1<<0) /* Position change 1 - change */
|
|
#define leftPressed (1<<1) /* Left button pressed 1 - pressed */
|
|
#define leftReleased (1<<2) /* Left button released 1 - released */
|
|
#define rightPressed (1<<3) /* Right button pressed 1 - pressed */
|
|
#define rightReleased (1<<4) /* Right button released 1 - released */
|
|
#define centerPressed (1<<5) /* Center button pressed 1 - pressed */
|
|
#define centerReleased (1<<6) /* Center button released 1 - released */
|
|
|
|
#endif
|
|
|
|
/* Flag values for _InKey() */
|
|
#define SHOWCURSOR (1<<0)
|
|
#define HIDECURSOR (1<<1)
|
|
#define MOUSEACTIVE (1<<2)
|
|
|
|
/* Flag values for the _ALen() function */
|
|
|
|
enum {
|
|
AL_ELEMENTS,
|
|
AL_SUBSCRIPT1,
|
|
AL_SUBSCRIPT2
|
|
};
|
|
|
|
/* FPFI is a 32 bit pointer to a function returning an int */
|
|
typedef int (FAR *FPFI)();
|
|
|
|
typedef struct {
|
|
short h;
|
|
short v;
|
|
} Point;
|
|
|
|
typedef struct {
|
|
short top;
|
|
short left;
|
|
short bottom;
|
|
short right;
|
|
} Rect;
|
|
|
|
#ifndef FOXMENU_INCLUDED
|
|
|
|
/*- Menu structure type entry definitions used by _NewMenu() */
|
|
|
|
#define MPOPUP 1 /* Menu is a POPUP type menu */
|
|
#define MPAD 2 /* Menu is a PAD type menu */
|
|
#define MBAR 3 /* Menu is a BAR type menu */
|
|
|
|
#endif
|
|
|
|
/* These are the API identifiers for the System Menu Constants. */
|
|
|
|
enum {
|
|
_LASTITEM = -2, _FIRSTITEM,
|
|
|
|
_SYSMENU,
|
|
_SYSMSYSTEM, _SYSMFILE, _SYSMEDIT, _SYSMDATA, _SYSMRECORD, _SYSMPROG,
|
|
_SYSMWINDOW,
|
|
|
|
_SYSTEM,
|
|
_SYSTEMABOUT, _SYSTEMHELP, _SYSTEMMACRO, _SYSTEMSEP100, _SYSTEMFILER,
|
|
_SYSTEMCALC, _SYSTEMDIARY, _SYSTEMSPECIAL, _SYSTEMASCII,
|
|
_SYSTEMCAPTURE, _SYSTEMPUZZLE,
|
|
|
|
_FILE,
|
|
_FILENEW, _FILEOPEN, _FILECLOSE, _FILECLOSEALL, _FILESEP100, _FILESAVE,
|
|
_FILESAVEAS, _FILEREVERT, _FILESEP200, _FILESETUP, _FILEPRINT, _FILESEP300,
|
|
_FILEQUIT,
|
|
|
|
_EDIT,
|
|
_EDITUNDO, _EDITREDO, _EDITSEP100, _EDITCUT, _EDITCOPY, _EDITPASTE,
|
|
_EDITCLEAR, _EDITSEP200, _EDITSELECTALL, _EDITSEP300, _EDITGOTO,
|
|
_EDITFIND, _EDITFINDAGAIN, _EDITREPLACE, _EDITREPLACEALL,
|
|
_EDITSEP400, _EDITPREF,
|
|
|
|
_DATA,
|
|
_DATASETUP, _DATABROWSE, _DATASEP100, _DATAAPPEND, _DATACOPY, _DATASORT,
|
|
_DATATOTAL, _DATASEP200, _DATAAVERAGE, _DATACOUNT, _DATASUM, _DATACALCULATE,
|
|
_DATAREPORT, _DATALABEL, _DATASEP300, _DATAPACK, _DATAREINDEX,
|
|
|
|
_RECORD,
|
|
_RECORDAPPEND, _RECORDCHANGE, _RECORDSEP100, _RECORDGOTO, _RECORDLOCATE,
|
|
_RECORDCONTINUE, _RECORDSEEK, _RECORDSEP200, _RECORDREPLACE, _RECORDDELETE,
|
|
_RECORDRECALL,
|
|
|
|
_PROG,
|
|
_PROGDO, _PROGSEP100, _PROGCANCEL, _PROGRESUME, _PROGSEP200,
|
|
_PROGCOMPILE, _PROGGENERATE, _PROGDOCUMENT, _PROGGRAPH,
|
|
|
|
_WINDOW,
|
|
_WINDOWHIDE, _WINDOWHIDEALL, _WINDOWSHOWALL, _WINDOWCLEAR, _WINDOWSEP100,
|
|
_WINDOWMOVE, _WINDOWSIZE, _WINDOWZOOM, _WINDOWMINMAX, _WINDOWROTATE,
|
|
_WINDOWCOLOR, _WINDOWSEP200, _WINDOWCOMMAND, _WINDOWDEBUG, _WINDOWTRACE,
|
|
_WINDOWVIEW,
|
|
|
|
_REPORT, _LABEL, _BROWSE, _MACRO, _DIARY, _DAFILER, _SCREEN,
|
|
_MBLDR, _PROJECT, _RQBE,
|
|
|
|
_SYSTEMSEP200, _SYSTEMHELPSRCH,_SYSTEMHELPHOWTO, _EDITPASTELINK, _EDITLINK,
|
|
_EDITINSERTOBJ, _EDITCVTSTATIC, _EDITSEP500, _PROGSEP300,
|
|
|
|
_TEXT, _EDITOBJECT, _PROGBEAUT
|
|
};
|
|
|
|
|
|
/* Now anyone can simulate a breakpoint with BreakPoint() */
|
|
#ifdef __WATCOMC__
|
|
#pragma aux _BreakPoint = 0xcc; /* INT 3 */
|
|
void _BreakPoint(void);
|
|
#endif
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
#define _BreakPoint() __asm \
|
|
{ \
|
|
int 3h \
|
|
}
|
|
#endif
|
|
|
|
/* Alternate values for parmCount to modify how FoxPro treats the function */
|
|
#define INTERNAL -1 /* Not callable from FoxPro */
|
|
#define CALLONLOAD -2 /* Call when library is loaded */
|
|
#define CALLONUNLOAD -3 /* Call when library is unloaded */
|
|
|
|
/* The FoxInfo structure contains the descriptions of the functions
|
|
contained in the library.
|
|
*/
|
|
|
|
typedef struct {
|
|
char FAR * funcName; /* Function name (all caps) */
|
|
FPFI function; /* Actual function address */
|
|
short parmCount; /* # parameters specified or a flag value */
|
|
char FAR * parmTypes; /* Parameter list description */
|
|
} FoxInfo;
|
|
|
|
typedef struct _FoxTable {
|
|
struct _FoxTable FAR *nextLibrary; /* Linked list of libraries */
|
|
short infoCount; /* # of functions in this library */
|
|
FoxInfo FAR *infoPtr; /* Function list */
|
|
} FoxTable;
|
|
|
|
/* An expression's value */
|
|
typedef struct {
|
|
char ev_type;
|
|
char ev_padding;
|
|
short ev_width;
|
|
unsigned short ev_length;
|
|
long ev_long;
|
|
double ev_real;
|
|
MHANDLE ev_handle;
|
|
} Value;
|
|
|
|
/* A reference to a database or memory variable */
|
|
typedef struct {
|
|
char l_type;
|
|
short l_where, /* Database number or -1 for memory */
|
|
l_NTI, /* Variable name table offset */
|
|
l_offset, /* Index into database */
|
|
l_subs, /* # subscripts specified 0 <= x <= 2 */
|
|
l_sub1, l_sub2; /* subscript integral values */
|
|
} Locator;
|
|
|
|
/* A parameter to a library function. */
|
|
typedef union {
|
|
Value val;
|
|
Locator loc; /* An 'R' in l_type means the Locator */
|
|
/* part of this union is in use. */
|
|
} Parameter;
|
|
|
|
/* A paramter list to a library function. */
|
|
typedef struct {
|
|
short int pCount; /* Number of Parameters PASSED. */
|
|
Parameter p[1]; /* pCount Parameters. */
|
|
} ParamBlk;
|
|
|
|
#ifndef _INC_WINDOWS
|
|
#ifndef _WINDEF_
|
|
typedef unsigned short HWND;
|
|
#endif
|
|
#else
|
|
extern HANDLE Inst;
|
|
#endif
|
|
|
|
typedef long EDPOS; /* Editor text offset */
|
|
typedef long EDLINE; /* Editor line number */
|
|
#define MAXFILENAME 130 /* longest pathname */
|
|
#define MAXFONTNAME 64 /* Max length of a font name */
|
|
|
|
#ifndef EDITOR_INCLUDED
|
|
#define EDCOMMAND 0
|
|
#define EDPROGRAM 1
|
|
#define EDFILE 2
|
|
#define EDMEMO 3
|
|
#define EDQUERY 6
|
|
#define EDSCREEN 7
|
|
#define EDMENU 8
|
|
|
|
#define RO_BYFILE (0x01) /* readOnly bits */
|
|
#define RO_BYUSER (0x02)
|
|
#define RO_BYRECORD (0x04)
|
|
|
|
#endif
|
|
|
|
/* An editor's enivronment. */
|
|
typedef struct{
|
|
char filename[MAXFILENAME];
|
|
EDPOS length; /* #bytes in text */
|
|
unsigned short lenLimit; /* Max allowable length. 0 = infinite. */
|
|
unsigned short dirty, /* Has the file been changed? */
|
|
autoIndent, /* Auto indent? */
|
|
backup, /* Make backup files? */
|
|
addLineFeeds, /* add line feeds when saving? */
|
|
autoCompile, /* Shall we auto compile this thing? */
|
|
addCtrlZ, /* add end of file ctrl-z? */
|
|
savePrefs, /* save edit preferences? */
|
|
dragAndDrop, /* Allow drag-and-drop */
|
|
readOnly, /* RO_BYFILE, RO_BYUSER, RO_BYRECORD */
|
|
status, /* display status bar? */
|
|
lockPrefs, /* Can update the preferences ? */
|
|
insertMode;
|
|
short wrap; /* if <0, new line at Return only */
|
|
|
|
EDPOS selStart; /* Selection start */
|
|
EDPOS selEnd; /* Selection end */
|
|
EDPOS selAnchor; /* Selection anchor point */
|
|
short justMode; /* Justification */
|
|
short tabWidth; /* TAB size in spaces */
|
|
|
|
char fontName[MAXFONTNAME];
|
|
short fontSize;
|
|
short fontStyle;
|
|
short kind; /* Kind of editor session */
|
|
} EDENV;
|
|
|
|
|
|
/* Event record definitions */
|
|
typedef struct
|
|
{ unsigned short what; /* Event code */
|
|
Ticks when; /* Ticks since startup */
|
|
Point where; /* Mouse location */
|
|
unsigned long message; /* Key/window */
|
|
unsigned long misc; /* Event dependant misc info */
|
|
unsigned long misc2; /* Event dependant misc info */
|
|
unsigned char mbState; /* Mouse buttons state */
|
|
unsigned char mcState; /* Mouse cond activate state */
|
|
unsigned short modifiers;
|
|
} EventRec;
|
|
|
|
/* Flags for the _DBStatus function */
|
|
#define DB_BOF 1 /* BOF() */
|
|
#define DB_EOF 2 /* EOF() */
|
|
#define DB_RLOCKED 4 /* Current record is RLOCKed */
|
|
#define DB_FLOCKED 8 /* Database is FLOCKed */
|
|
#define DB_EXCLUSIVE 16 /* Database is open EXCLUSIVEly */
|
|
#define DB_READONLY 32 /* Database is READONLY */
|
|
|
|
/* Flag values for _DBLock() */
|
|
#define DBL_RECORD 0
|
|
#define DBL_FILE 1
|
|
|
|
/* Flag values for the _NewVar function */
|
|
#define NV_PUBLIC 0
|
|
#define NV_PRIVATE 1
|
|
|
|
/* Mode flag values for the __FIO function */
|
|
#define FIO_FGETS 0
|
|
#define FIO_FREAD 1
|
|
#define FIO_FPUTS 2
|
|
#define FIO_FWRITE 3
|
|
|
|
/* Mode flag values for the _FOpen function */
|
|
#define FO_READONLY 0
|
|
#define FO_WRITEONLY 1
|
|
#define FO_READWRITE 2
|
|
|
|
/* Mode flag values for the _FCreate function */
|
|
#define FC_NORMAL 0
|
|
#define FC_READONLY 1
|
|
#define FC_HIDDEN 2
|
|
#define FC_SYSTEM 4
|
|
#define FC_TEMPORARY 128
|
|
|
|
/* Mode flag values for the _FSeek function */
|
|
#define FS_FROMBOF 0 /* From beginning of file */
|
|
#define FS_RELATIVE 1 /* From current position */
|
|
#define FS_FROMEOF 2 /* From end of file */
|
|
|
|
/* Mode flag values for the __WStat function */
|
|
#define WS_TOP 0
|
|
#define WS_BOTTOM 1
|
|
#define WS_LEFT 2
|
|
#define WS_RIGHT 3
|
|
#define WS_HEIGHT 4
|
|
#define WS_WIDTH 5
|
|
#define WS_SETPORT 7
|
|
|
|
/* Mode flag values for the __WControl function */
|
|
#define WC_CLEAR 0
|
|
#define WC_CLOSE 1
|
|
#define WC_HIDE 2
|
|
#define WC_SHOW 3
|
|
#define WC_SELECT 4
|
|
#define WC_SENDBEHIND 5
|
|
|
|
/* Mode flag values for the __WAdjust function */
|
|
#define WA_MOVE 0
|
|
#define WA_SIZE 1
|
|
#define WA_POSCURSOR 2
|
|
|
|
/* Mode flag value for the __WPort function */
|
|
#define WP_ONTOP 0
|
|
#define WP_OUTPUT 1
|
|
|
|
/* Mode flag value for the _WZoom function */
|
|
#define WZ_MAXIMIZED 0
|
|
#define WZ_NORMAL 1
|
|
#define WZ_MINIMIZED 2
|
|
|
|
/* Border strings for typical window borders. */
|
|
#define WO_DOUBLEBOX "\x0cd\x0cd\x0ba\x0ba\x0c9\x0bb\x0c8\x0bc\x0cd\x0cd\x0ba\x0ba\x0c9\x0bb\x0c8\x0bc"
|
|
#define WO_SINGLEBOX "\x0c4\x0c4\x0b3\x0b3\x0da\x0bf\x0c0\x0d9\x0c4\x0c4\x0b3\x0b3\x0da\x0bf\x0c0\x0d9"
|
|
#define WO_PANELBORDER "\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db\x0db"
|
|
#define WO_SYSTEMBORDER "\x020\x020\x020\x020\x0fe\x0f0\x020\x0f9\x020\x020\x020\x020\x020\x020\x020\x020"
|
|
|
|
#ifndef FOXWIND_INCLUDED
|
|
|
|
/* Border string offsets. */
|
|
#define selectBorder 0
|
|
#define deselectBorder 8
|
|
|
|
#define topEdge 0
|
|
#define bottomEdge 1
|
|
#define leftEdge 2
|
|
#define rightEdge 3
|
|
#define topLeftCorner 4
|
|
#define topRightCorner 5
|
|
#define bottomLeftCorner 6
|
|
#define bottomRightCorner 7
|
|
#define maxBorderLen 17 /* Border string length (maximum) */
|
|
#endif
|
|
|
|
|
|
#ifndef COLORS_INCLUDED
|
|
|
|
#define BLACK_ON 0x00 /* Foreground color attributes */
|
|
#define BLUE_ON 0x01
|
|
#define GREEN_ON 0x02
|
|
#define CYAN_ON 0x03
|
|
#define RED_ON 0x04
|
|
#define MAGENTA_ON 0x05
|
|
#define BROWN_ON 0x06
|
|
#define WHITE_ON 0x07
|
|
|
|
#define BLACK (BLACK_ON << 4) /* Background color attributes. */
|
|
#define BLUE (BLUE_ON << 4)
|
|
#define GREEN (GREEN_ON << 4)
|
|
#define CYAN (CYAN_ON << 4)
|
|
#define RED (RED_ON << 4)
|
|
#define MAGENTA (MAGENTA_ON << 4)
|
|
#define BROWN (BROWN_ON << 4)
|
|
#define WHITE (WHITE_ON << 4)
|
|
|
|
#define BRIGHT 0x08 /* Intensify foreground color */
|
|
#define BLINK 0x80 /* Blink this */
|
|
|
|
|
|
/* The following values are used in the WA_ISSHADOW column of the
|
|
schemes to indicate whether the window casts a shadow. */
|
|
|
|
#define CASTSSHADOW (BRIGHT | BLACK_ON | BLACK)
|
|
#define CASTSNOSHADOW (BRIGHT | WHITE_ON | WHITE | BLINK)
|
|
|
|
|
|
/* Color scheme numbers for use by _WOpen and others */
|
|
|
|
enum
|
|
{
|
|
USER_SCHEME,
|
|
USERMENU_SCHEME,
|
|
MBAR_SCHEME,
|
|
POPUP_SCHEME,
|
|
DIALOG_SCHEME,
|
|
MODAL_POPUP_SCHEME,
|
|
ALERT_SCHEME,
|
|
WINDOW_SCHEME,
|
|
NONMODAL_POPUP_SCHEME,
|
|
BROWSE_SCHEME,
|
|
REPORT_SCHEME,
|
|
ALERT_POPUP_SCHEME
|
|
};
|
|
|
|
/* Color index numbers used by _WSetAttr() and _WAttr() */
|
|
|
|
enum
|
|
{
|
|
WA_PENCOLOR = -1, /* CURRENT PEN COLOR */
|
|
|
|
WA_NORMAL, /* normal text */
|
|
WA_ENHANCED, /* enhanced text */
|
|
WA_BORDER, /* window border */
|
|
WA_FOREMOST, /* title when foremost */
|
|
WA_TITLE, /* title otherwise */
|
|
WA_SELECTED, /* selected text */
|
|
WA_HOTKEY, /* control hotkeys */
|
|
WA_SHADOW, /* color of shadows that fall on this window. */
|
|
WA_ENABLED, /* enabled control */
|
|
WA_DISABLED, /* disabled control */
|
|
WA_ISSHADOW /* window casts a shad */
|
|
};
|
|
|
|
|
|
#endif
|
|
|
|
|
|
/* Prototypes for the API Functions */
|
|
|
|
/* Streaming output routines */
|
|
void _PutChr(int character);
|
|
void _PutStr(char FAR *string);
|
|
void _PutValue(Value FAR *val);
|
|
|
|
/* Memory management functions */
|
|
MHANDLE _AllocHand(unsigned int hsize);
|
|
void _FreeHand(MHANDLE hand);
|
|
void FAR *_HandToPtr(MHANDLE hand);
|
|
unsigned _GetHandSize(MHANDLE hand);
|
|
int _SetHandSize(MHANDLE hand, unsigned int size);
|
|
void _HLock(MHANDLE hand);
|
|
void _HUnLock(MHANDLE hand);
|
|
unsigned int _StackAvail(void);
|
|
int _MemAvail(unsigned int);
|
|
#ifdef __WATCOMC__
|
|
void FAR *__Alloca(unsigned int size);
|
|
void FAR *_Alloca(unsigned int size);
|
|
#pragma aux __Alloca = 0x29 0xc4 /* sub sp, ax */\
|
|
0x89 0xe0 /* mov ax, sp */\
|
|
0x8c 0xd2 /* mov dx, ss */\
|
|
parm caller [ax] value[ax dx] modify [sp];
|
|
#define _Alloca(size) ((_StackAvail()>(unsigned)size) ? __Alloca(((size)+1)&0xfffe): 0)
|
|
#endif
|
|
|
|
/* String handling functions */
|
|
int _StrLen(char FAR *string);
|
|
void _StrCpy(char FAR *dest, char FAR *src);
|
|
int _StrCmp(char FAR *string1, char FAR *string2);
|
|
|
|
/* Memory management functions */
|
|
#ifdef _MSC_VER
|
|
void FAR * __fastcall _Alloca(unsigned int amount);
|
|
|
|
void __far * __far __cdecl _fmemmove(void __far *, const void __far *, unsigned int);
|
|
void __far * __far __cdecl _fmemset(void __far *, int, unsigned int);
|
|
int __far __cdecl _fmemcmp(const void __far *, const void __far *, unsigned int);
|
|
|
|
#define _MemCmp(dest, src, length) _fmemcmp(dest, src, length)
|
|
#define _MemMove(dest, src, length) _fmemmove(dest, src, length)
|
|
#define _MemFill(ptr, c, length) _fmemset(ptr, c, length)
|
|
#endif
|
|
|
|
|
|
#if __WATCOMC__
|
|
#pragma aux _MemFill parm [es di] [ax] [cx] modify [ax];
|
|
#pragma aux _MemCmp parm [es di] [dx si] [ax] modify nomemory [ax si di];
|
|
void _MemMove(void FAR *dest, void FAR *src, unsigned int length);
|
|
void _MemFill(void FAR *ptr, int character, unsigned int length);
|
|
int _MemCmp(void FAR *ptr, void FAR *ptr2, unsigned int length);
|
|
#endif
|
|
|
|
/* Functions to set the return value of a library functiion */
|
|
void _RetVal(Value FAR *val);
|
|
void _RetChar(char FAR *string);
|
|
void _RetInt(long ival, int width);
|
|
void _RetFloat(double flt, int width, int dec);
|
|
void _RetDateStr(char FAR *string);
|
|
void _RetLogical(int);
|
|
|
|
/* Database Input/Output functions */
|
|
long _DBRecNo(int workarea);
|
|
long _DBRecCount(int workarea);
|
|
int _DBStatus(int workarea);
|
|
int _DBRead(int workarea, long record);
|
|
int _DBWrite(int workarea);
|
|
int _DBAppend(int workarea, int carryflag);
|
|
long _DBRewind(int workarea);
|
|
long _DBSkip(int workarea, long distance);
|
|
long _DBUnwind(int workarea);
|
|
int _DBReplace(Locator FAR *fld, Value FAR *val);
|
|
long _DBSeek(Value FAR *val);
|
|
int _DBLock(int workarea, int what);
|
|
void _DBUnLock(int workarea);
|
|
int _DBAppendRecords(int workarea, unsigned short nrecs, char FAR *buffer);
|
|
|
|
/* Memo Field Input/Output functions */
|
|
FCHAN _MemoChan(int workarea);
|
|
long _AllocMemo(Locator FAR *fld, long size);
|
|
long _FindMemo(Locator FAR *fld);
|
|
long _MemoSize(Locator FAR *fld);
|
|
|
|
/* Memory variable manipulation functions */
|
|
NTI _NewVar(char FAR *name, Locator FAR *loc, int flag);
|
|
int _Release(NTI nti);
|
|
int _Store(Locator FAR *loc, Value FAR *val);
|
|
int _Load(Locator FAR *loc, Value FAR *val);
|
|
long _ALen(NTI nti, int mode);
|
|
int _FindVar(NTI nti, int where, Locator FAR *loc);
|
|
NTI _NameTableIndex(char FAR *name);
|
|
|
|
/* File Input/Output */
|
|
|
|
FCHAN __FOpen(char FAR *filename, int mode, int create);
|
|
|
|
#define _FOpen(filename, mode) __FOpen(filename, mode, NO)
|
|
#define _FCreate(filename, mode) __FOpen(filename, mode, YES)
|
|
|
|
int __FFlush(FCHAN chan, int close);
|
|
|
|
#define _FFlush(chan) __FFlush(chan, NO)
|
|
#define _FClose(chan) __FFlush(chan, YES)
|
|
|
|
int __FStat(FCHAN chan, int error);
|
|
|
|
#define _FEOF(chan) __FStat(chan, NO)
|
|
#define _FError() __FStat(0, YES)
|
|
|
|
unsigned int __FIO(FCHAN chan, char FAR *buffer, unsigned int maxlen, int mode);
|
|
|
|
#define _FGets(chan, buffer, maxlen) __FIO(chan, buffer, maxlen, FIO_FGETS)
|
|
#define _FRead(chan, buffer, maxlen) __FIO(chan, buffer, maxlen, FIO_FREAD)
|
|
#define _FPuts(chan, buffer) __FIO(chan, buffer, 0, FIO_FPUTS)
|
|
#define _FWrite(chan, buffer, maxlen) __FIO(chan, buffer, maxlen, FIO_FWRITE)
|
|
|
|
long _FSeek(FCHAN chan, long position, int mode);
|
|
int _FCHSize(FCHAN chan, long length);
|
|
int _FCopy(FCHAN dchan, long dpos, FCHAN schan, long spos, long len);
|
|
|
|
#if defined(__WINDOWS__) || defined(_WINDLL)
|
|
|
|
/* User Interface routines */
|
|
|
|
#define PIXELMODE 0
|
|
#define CHARMODE 1
|
|
|
|
unsigned __ActivateHandler(FPFI handler, short charmode);
|
|
|
|
#define _ActivateHandler(handler) __ActivateHandler(handler, CHARMODE)
|
|
#define _ActivateHandlerP(handler) __ActivateHandler(handler, PIXELMODE)
|
|
|
|
void _DeActivateHandler(unsigned);
|
|
unsigned __ActivateIdle(FPFI handler, short charmode);
|
|
|
|
#define _ActivateIdle(handler) __ActivateIdle(handler, CHARMODE)
|
|
#define _ActivateIdleP(handler) __ActivateIdle(handler, PIXELMODE)
|
|
|
|
void _DeActivateIdle(unsigned);
|
|
|
|
int __GetNextEvent(EventRec FAR *event, short charmode);
|
|
|
|
#define _GetNextEvent(event) __GetNextEventP(event, CHARMODE)
|
|
#define _GetNextEventP(event) __GetNextEventP(event, PIXELMODE)
|
|
|
|
void __DefaultProcess(EventRec FAR *event, short charmode);
|
|
|
|
#define _DefaultProcess(event) __DefaultProcess(event, CHARMODE)
|
|
#define _DefaultProcessP(event) __DefaultProcess(event, PIXELMODE)
|
|
|
|
#define _MousePos(pt) __MousePos(pt, CHARMODE)
|
|
#define _MousePosP(pt) __MousePos(pt, PIXELMODE)
|
|
|
|
int __MousePos(void FAR *pt, int);
|
|
|
|
/* Windowing routines. */
|
|
int __FindWindow(WHANDLE FAR *wh, Point pt, int charmode);
|
|
void __GlobalToLocal(void FAR *pt, WHANDLE wh, int);
|
|
WHANDLE __WOpen(int top, int left, int bottom, int right, int flag, int
|
|
scheme_num, Scheme FAR *scheme, char FAR *bord, int pixelmode);
|
|
|
|
#define _WOpenP(top, left, bottom, right, flag, scheme_num, scheme, bord) __WOpen(top, left, bottom, right, flag, scheme_num, scheme, bord, PIXELMODE)
|
|
#define _WOpen(top, left, bottom, right, flag, scheme_num, scheme, bord) __WOpen(top, left, bottom, right, flag, scheme_num, scheme, bord, CHARMODE)
|
|
|
|
#define _GlobalToLocal(pt, wh) __GlobalToLocal(pt, wh, CHARMODE)
|
|
#define _GlobalToLocalP(pt, wh) __GlobalToLocal(pt, wh, PIXELMODE)
|
|
|
|
#define _FindWindow(wh, pt) __FindWindow(wh, pt, CHARMODE)
|
|
#define _FindWindowP(wh, pt) __FindWindow(wh, pt, PIXELMODE)
|
|
|
|
|
|
#define _WTop(wh) ((unsigned)__WStat(wh, WS_TOP, CHARMODE))
|
|
#define _WBottom(wh) ((unsigned)__WStat(wh, WS_BOTTOM, CHARMODE))
|
|
#define _WLeft(wh) ((unsigned)__WStat(wh, WS_LEFT, CHARMODE))
|
|
#define _WRight(wh) ((unsigned)__WStat(wh, WS_RIGHT, CHARMODE))
|
|
#define _WHeight(wh) ((unsigned)__WStat(wh, WS_HEIGHT, CHARMODE))
|
|
#define _WWidth(wh) ((unsigned)__WStat(wh, WS_WIDTH, CHARMODE))
|
|
#define _WSetPort(wh) ((WHANDLE)__WStat(wh, WS_SETPORT, CHARMODE))
|
|
|
|
#define _WTopP(wh) ((unsigned)__WStat(wh, WS_TOP, PIXELMODE))
|
|
#define _WBottomP(wh) ((unsigned)__WStat(wh, WS_BOTTOM, PIXELMODE))
|
|
#define _WLeftP(wh) ((unsigned)__WStat(wh, WS_LEFT, PIXELMODE))
|
|
#define _WRightP(wh) ((unsigned)__WStat(wh, WS_RIGHT, PIXELMODE))
|
|
#define _WHeightP(wh) ((unsigned)__WStat(wh, WS_HEIGHT, PIXELMODE))
|
|
#define _WWidthP(wh) ((unsigned)__WStat(wh, WS_WIDTH, PIXELMODE))
|
|
|
|
unsigned long __WStat(WHANDLE wh, int mode, int pixelmode);
|
|
|
|
#define _WMove(wh, pt) __WAdjust(wh, pt, WA_MOVE, CHARMODE)
|
|
#define _WSize(wh, pt) __WAdjust(wh, pt, WA_SIZE, CHARMODE)
|
|
#define _WPosCursor(wh, pt) __WAdjust(wh, pt, WA_POSCURSOR, CHARMODE)
|
|
#define _WMoveP(wh, pt) __WAdjust(wh, pt, WA_MOVE, PIXELMODE)
|
|
#define _WSizeP(wh, pt) __WAdjust(wh, pt, WA_SIZE, PIXELMODE)
|
|
#define _WPosCursorP(wh, pt) __WAdjust(wh, pt, WA_POSCURSOR, PIXELMODE)
|
|
|
|
void __WAdjust(WHANDLE wh, Point pt, int mode, int charmode);
|
|
|
|
void __WScroll(WHANDLE wh, Rect r, int dv, int dh, int charmode);
|
|
|
|
#define _WScroll(wh, r, dv, dh) __WScroll(wh, r, dv, dh, CHARMODE)
|
|
#define _WScrollP(wh, r, dv, dh) __WScroll(wh, r, dv, dh, PIXELMODE)
|
|
#define _WClearRect(wh, r) __WScroll(wh, r, 0, 0, CHARMODE);
|
|
#define _WClearRectP(wh, r) __WScroll(wh, r, 0, 0, PIXELMODE);
|
|
|
|
#define _WGetCursor(wh) __WGetCursor(wh, CHARMODE)
|
|
#define _WGetCursorP(wh) __WGetCursor(wh, PIXELMODE)
|
|
|
|
Point __WGetCursor(WHANDLE wh, int);
|
|
|
|
void __SetMenuPoint(MenuId menuid, Point loc, int charmode);
|
|
|
|
#define _SetMenuPoint(menuid, loc) __SetMenuPoint(menuid, loc, CHARMODE)
|
|
#define _SetMenuPointP(menuid, loc) __SetMenuPoint(menuid, loc, PIXELMODE)
|
|
|
|
|
|
#else // __WINDOWS__ || _WINDLL
|
|
|
|
/* User Interface routines */
|
|
unsigned _ActivateHandler(FPFI handler);
|
|
void _DeActivateHandler(unsigned);
|
|
unsigned _ActivateIdle(FPFI handler);
|
|
void _DeActivateIdle(unsigned);
|
|
int _GetNextEvent(EventRec FAR *event);
|
|
void _DefaultProcess(EventRec FAR *event);
|
|
int _MousePos(Point FAR *pt);
|
|
|
|
/* Windowing routines. */
|
|
int _FindWindow(WHandle FAR *wh, Point pt);
|
|
void _GlobalToLocal(Point FAR *pt, WHandle wh);
|
|
WHandle _WOpen(int top, int left, int bottom, int right, int flag, int
|
|
scheme_num, Scheme FAR *scheme, char FAR *bord);
|
|
|
|
#define _WTop(wh) ((unsigned)__WStat(wh, WS_TOP))
|
|
#define _WBottom(wh) ((unsigned)__WStat(wh, WS_BOTTOM))
|
|
#define _WLeft(wh) ((unsigned)__WStat(wh, WS_LEFT))
|
|
#define _WRight(wh) ((unsigned)__WStat(wh, WS_RIGHT))
|
|
#define _WHeight(wh) ((unsigned)__WStat(wh, WS_HEIGHT))
|
|
#define _WWidth(wh) ((unsigned)__WStat(wh, WS_WIDTH))
|
|
#define _WSetPort(wh) ((WHandle)__WStat(wh, WS_SETPORT))
|
|
|
|
unsigned long __WStat(WHandle wh, int mode);
|
|
|
|
#define _WMove(wh, pt) __WAdjust(wh, pt, WA_MOVE)
|
|
#define _WSize(wh, pt) __WAdjust(wh, pt, WA_SIZE)
|
|
#define _WPosCursor(wh, pt) __WAdjust(wh, pt, WA_POSCURSOR)
|
|
|
|
void __WAdjust(WHandle wh, Point pt, int mode);
|
|
|
|
void _WScroll(WHandle wh, Rect r, int dv, int dh);
|
|
#define _WClearRect(wh, r) _WScroll(wh, r, 0, 0);
|
|
|
|
Point _WGetCursor(WHandle wh);
|
|
void _SetMenuPoint(MenuId menuid, Point loc);
|
|
|
|
#endif // __WINDOWS__ || _WINDLL
|
|
|
|
|
|
int _InKey(int timeout, int flag);
|
|
void _RefreshDisplay(void);
|
|
void _RefreshVideo(void);
|
|
|
|
#define _WClear(wh) __WControl(wh, WC_CLEAR)
|
|
#define _WClose(wh) __WControl(wh, WC_CLOSE)
|
|
#define _WHide(wh) __WControl(wh, WC_HIDE)
|
|
#define _WShow(wh) __WControl(wh, WC_SHOW)
|
|
#define _WSelect(wh) __WControl(wh, WC_SELECT)
|
|
#define _WSendBehind(w) __WControl(w, WC_SENDBEHIND)
|
|
|
|
void __WControl(WHANDLE wh, int mode);
|
|
|
|
#define _WOnTop() __WPort(WP_ONTOP)
|
|
#define _WGetPort() __WPort(WP_OUTPUT)
|
|
|
|
WHandle __WPort(int mode);
|
|
|
|
void _WZoom(WHANDLE wh, int newstate);
|
|
|
|
void __WSetTitle(WHANDLE wh, char FAR *text, int mode);
|
|
|
|
#define WT_SETFOOTER 0
|
|
#define WT_SETTITLE 1
|
|
#define WT_GETFOOTER 2
|
|
#define WT_GETTITLE 3
|
|
|
|
#define _WSetFooter(wh, footer) __WSetTitle(wh, footer, WT_SETFOOTER)
|
|
#define _WSetTitle(wh, title) __WSetTitle(wh, title, WT_SETTITLE)
|
|
#define _WFooter(wh, footer) __WSetTitle(wh, footer, WT_GETFOOTER)
|
|
#define _WTitle(wh, title) __WSetTitle(wh, title, WT_GETTITLE)
|
|
|
|
int _WAttr(WHANDLE wh, int color);
|
|
void _WSetAttr(WHANDLE wh, int color, int attr);
|
|
void _WPutChr(WHANDLE wh, int character);
|
|
void _WPutStr(WHANDLE wh, char FAR *str);
|
|
|
|
/* Functions to execute FoxPro statements and evaluate FoxPro expressions */
|
|
|
|
int _Execute(char FAR *stmt);
|
|
int _Evaluate(Value FAR *val, char FAR *expr);
|
|
|
|
/* Menuing functions. */
|
|
|
|
long __MenuStat(long x, int mode);
|
|
|
|
#define _MenuId(literal) __MenuStat(literal, 0)
|
|
#define _GetNewItemId(menuid) __MenuStat(menuid, 1)
|
|
#define _CountItems(menuid) __MenuStat(menuid, 2)
|
|
#define _GetNewMenuId() __MenuStat(0, 3)
|
|
|
|
int _MenuInteract(MenuId FAR *menuid, ItemId FAR *itemid);
|
|
|
|
void __MenuAction(MenuId menuid, int mode);
|
|
|
|
#define _ActivateMenu(menuid) __MenuAction(menuid, 0)
|
|
#define _DeActivateMenu(menuid) __MenuAction(menuid, 1)
|
|
#define _DisposeMenu(menuid) __MenuAction(menuid, 2)
|
|
|
|
int _NewMenu(int mtype, MenuId menuid);
|
|
void _SetMenuColor(MenuId menuid, int scheme);
|
|
ItemId _GetItemId(MenuId menuid, long index);
|
|
int _NewItem(MenuId menuid, ItemId itemid, ItemId beforeid, char FAR *prompt);
|
|
void _DisposeItem(MenuId menuid, ItemId itemid);
|
|
|
|
|
|
void _SetItemSubMenu(MenuId menuid, ItemId itemid, MenuId submenuid);
|
|
void _SetItemColor(MenuId menuid, ItemId itemid, int scheme);
|
|
void _GetItemText(MenuId menuid, ItemId itemid, char FAR *text);
|
|
void _SetItemText(MenuId menuid, ItemId itemid, char FAR *text);
|
|
int _GetItemCmdKey(MenuId menuid, ItemId itemid, char FAR *text);
|
|
void _SetItemCmdKey(MenuId menuid, ItemId itemid, int key, char FAR *text);
|
|
void _OnSelection(MenuId menuid, ItemId itemid, FPFI routine);
|
|
|
|
/* FoxPro Dialogs */
|
|
int _Dialog(int scheme, char FAR *text, char FAR *button1,
|
|
char FAR *button2, char FAR *button3, int def, int esc);
|
|
|
|
|
|
/* Error Handling */
|
|
void _Error(int code);
|
|
void _UserError(char FAR *message);
|
|
int _ErrorInfo(int code, char FAR *message);
|
|
|
|
|
|
#define ED_SAVENOASK 0
|
|
#define ED_SAVEASK 1
|
|
#define ED_SAVEAS 2
|
|
|
|
/* Mode flags for the editor functions */
|
|
|
|
/* Mode flag values for the __EdPos function */
|
|
#define ED_SETPOS 0
|
|
#define ED_GETLINEPOS 1
|
|
#define ED_GETLINENUM 2
|
|
#define ED_GETPOS 3
|
|
|
|
/* Mode flag values for the __EdScroll function */
|
|
#define ED_SCROLLTOPOS 0
|
|
#define ED_SCROLLTOSEL 1
|
|
|
|
/* Mode flag values for the __EdManip function */
|
|
#define ED_SENDKEY 0
|
|
#define ED_DELETE 1
|
|
#define ED_INDENT 2
|
|
|
|
/* Mode flag values for the __EdClipBrd function */
|
|
#define ED_COPY 0
|
|
#define ED_CUT 1
|
|
#define ED_PASTE 2
|
|
#define ED_UNDO 3
|
|
#define ED_REDO 4
|
|
|
|
/* Mode flag values for the __EdEnv function */
|
|
#define ED_SETENV 0
|
|
#define ED_GETENV 1
|
|
|
|
/* Mode flag values for the __EdRevert function */
|
|
#define ED_REVERT 0
|
|
#define ED_SAVE 1
|
|
|
|
/* Mode flag values for the __WFindTitle function */
|
|
#define WFINDTITLE 0
|
|
#define WMAINWINDOW 1
|
|
|
|
|
|
/* Editor Functions */
|
|
WHandle _EdOpenFile(char FAR *filename, int mode);
|
|
int _EdCloseFile(WHandle wh, int opt);
|
|
void __EdRevert(WHandle wh, int mode);
|
|
|
|
#define _EdRevert(wh) __EdRevert(wh, ED_REVERT)
|
|
#define _EdSave(wh) __EdRevert(wh, ED_SAVE)
|
|
|
|
#define _EdSetPos(wh, pos) ((long)__EdPos(wh, (EDPOS) pos, ED_SETPOS))
|
|
#define _EdGetLinePos(wh, line) ((EDPOS)__EdPos(wh, (EDLINE) line, ED_GETLINEPOS))
|
|
#define _EdGetLineNum(wh, pos) ((EDLINE)__EdPos(wh, (EDPOS) pos, ED_GETLINENUM))
|
|
#define _EdGetPos(wh) ((EDLINE)__EdPos(wh, 0, ED_GETPOS))
|
|
|
|
long __EdPos(WHandle wh, long pos, int mode);
|
|
int _EdPosInView(WHandle wh, EDPOS pos);
|
|
|
|
#define _EdScrollToPos(wh, pos, flag) (__EdScroll(wh, pos, flag, ED_SCROLLTOPOS))
|
|
#define _EdScrollToSel(wh, flag) (__EdScroll(wh, 0, flag, ED_SCROLLTOSEL))
|
|
|
|
void __EdScroll(WHandle wh, EDPOS pos, int flags, int mode);
|
|
|
|
#define _EdSendKey(wh, key) __EdManip(wh, key, ED_SENDKEY)
|
|
#define _EdDelete(wh) __EdManip(wh, 0, ED_DELETE)
|
|
#define _EdIndent(wh, tabs) __EdManip(wh, tabs, ED_INDENT)
|
|
|
|
void __EdManip(WHandle wh, int n, int mode);
|
|
|
|
EDPOS _EdSkipLines(WHandle wh, EDPOS pos, int n);
|
|
void _EdInsert(WHandle wh, char FAR *str, unsigned long len);
|
|
TEXT _EdGetChar(WHandle wh, EDPOS pos);
|
|
void _EdGetStr(WHandle wh, EDPOS pos1, EDPOS pos2, TEXT FAR *str);
|
|
|
|
#define _EdCopy(wh) __EdClipBrd(wh, ED_COPY)
|
|
#define _EdCut(wh) __EdClipBrd(wh, ED_CUT)
|
|
#define _EdPaste(wh) __EdClipBrd(wh, ED_PASTE)
|
|
#define _EdUndo(wh) __EdClipBrd(wh, ED_UNDO)
|
|
#define _EdRedo(wh) __EdClipBrd(wh, ED_REDO)
|
|
|
|
void __EdClipBrd(WHandle wh, int mode);
|
|
void _EdSelect(WHandle wh, EDPOS pos1, EDPOS pos2);
|
|
void _EdUndoOn(WHandle wh, int flag);
|
|
void _EdActive(WHandle wh, int flag);
|
|
int _EdLastError(WHandle wh);
|
|
|
|
#define _EdSetEnv(wh, env) __EdEnv(wh, env, ED_SETENV)
|
|
#define _EdGetEnv(wh, env) __EdEnv(wh, env, ED_GETENV)
|
|
|
|
#define _WFindTitle(title) __WFindTitle(title, WFINDTITLE)
|
|
#define _WMainWindow() __WFindTitle(0, WMAINWINDOW)
|
|
|
|
int __EdEnv(WHandle, EDENV FAR *, int);
|
|
HWND _WhToHwnd(WHandle);
|
|
WHandle __WFindTitle(char FAR *, int);
|
|
|
|
|
|
#if defined(I80386)
|
|
#if I80386
|
|
#undef MHANDLE
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef GLOBAL_INCLUDED
|
|
#undef WHANDLE
|
|
#endif
|
|
|
|
|
|
#if defined(_MSC_VER) && (_MSC_VER < 800)
|
|
#define MK_FP(__s,__o) ((void __far*)(((unsigned long)(__s)<<16)|(unsigned)(__o)))
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#pragma pack() // Restore structure packing
|
|
|
|
#ifdef __cplusplus
|
|
} /* End of extern "C" { */
|
|
#endif /* __cplusplus */
|