(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * WINDOWS.DEF - Modula-2 Windows 3.0 API * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# module(implementation=>off, init_code => off) *) (*# call(result_optional=>on,opt_var_arg=>off,o_a_copy=>off,o_a_size=>off) *) DEFINITION MODULE Windows; (*# save *) (* inline procedures at end use standard model-dependent settings *) (*# call(near_call=>off, reg_param=>(), reg_saved=>(ds,si,di,st1,st2), seg_name=>Windows, ds_eq_ss=>off) *) (*# data(near_ptr=>off) *) (*# name(prefix=>windows) *) CONST NULL = 0; True = 1; False = 0; TYPE BOOL = INTEGER; LPSTR = POINTER TO ARRAY[0..MAX(CARDINAL)-1] OF CHAR; LPBYTE = POINTER TO SHORTCARD; LPINT = POINTER TO INTEGER; LPWORD = POINTER TO CARDINAL; LPLONG = POINTER TO LONGINT; LPDWORD = POINTER TO LONGCARD; LPVOID = ADDRESS; HANDLE = CARDINAL; HWND = CARDINAL; LPHANDLE = POINTER TO CARDINAL; GLOBALHANDLE = CARDINAL; LOCALHANDLE = CARDINAL; FARPROC = PROCEDURE () : INTEGER; HSTR = HANDLE; HICON = HANDLE; HDC = HANDLE; HMENU = HANDLE; HPEN = HANDLE; HFONT = HANDLE; HBRUSH = HANDLE; HBITMAP = HANDLE; HCURSOR = HANDLE; HRGN = HANDLE; HPALETTE = HANDLE; COLORREF = LONGCARD; RECT = RECORD left : INTEGER; top : INTEGER; right : INTEGER; bottom : INTEGER; END; LPRECT = POINTER TO RECT; POINT = RECORD x : INTEGER; y : INTEGER; END; LPPOINT = POINTER TO POINT; TYPE MAKEINTRESOURCE = LPSTR; MAKEINTATOM = LPSTR; PROCEDURE EntryPoint(); (* This is the entry point for a *) (* windows main module *) PROCEDURE GetVersion() : LONGCARD; PROCEDURE GetNumTasks() : CARDINAL; PROCEDURE GetCodeHandle(_:FARPROC) : HANDLE; PROCEDURE GetCodeInfo(lpProc : FARPROC; lpSegInfo : ADDRESS); PROCEDURE GetModuleHandle(_:ARRAY OF CHAR) : HANDLE; PROCEDURE GetModuleUsage(_:HANDLE) : INTEGER; PROCEDURE GetModuleFileName(_:HANDLE; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE GetInstanceData(_:HANDLE; _:NearADDRESS; _:INTEGER) : INTEGER; PROCEDURE GetProcAddress(_:HANDLE; _:ARRAY OF CHAR) : FARPROC; PROCEDURE MakeProcInstance(_:FARPROC; _:HANDLE) : FARPROC; PROCEDURE FreeProcInstance(_:FARPROC); PROCEDURE LoadLibrary(_:ARRAY OF CHAR) : HANDLE; PROCEDURE LoadModule(_:ARRAY OF CHAR; _:ADDRESS) : HANDLE; PROCEDURE FreeModule(_:HANDLE) : BOOL; PROCEDURE FreeLibrary(_:HANDLE); PROCEDURE GetFreeSpace(_:CARDINAL) : LONGCARD; PROCEDURE WinExec(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL; PROCEDURE DebugBreak(); PROCEDURE OutputDebugString(_:ARRAY OF CHAR); PROCEDURE SwitchStackBack(); PROCEDURE SwitchStackTo(_:CARDINAL; _:CARDINAL; _:CARDINAL); PROCEDURE GetCurrentPDB() : CARDINAL; TYPE OFSTRUCT = RECORD cBytes : SHORTCARD; fFixedDisk : SHORTCARD; nErrCode : CARDINAL; reserved : ARRAY [0..3] OF SHORTCARD; szPathName : ARRAY [0..127] OF CHAR; END; LPOFSTRUCT = POINTER TO OFSTRUCT; CONST OF_READ = 00H; OF_WRITE = 01H; OF_READWRITE = 02H; OF_SHARE_COMPAT = 00H; OF_SHARE_EXCLUSIVE = 010H; OF_SHARE_DENY_WRITE = 020H; OF_SHARE_DENY_READ = 030H; OF_SHARE_DENY_NONE = 040H; OF_PARSE = 0100H; OF_DELETE = 0200H; OF_VERIFY = 0400H; OF_CANCEL = 0800H; OF_CREATE = 01000H; OF_PROMPT = 02000H; OF_EXIST = 04000H; OF_REOPEN = 08000H; PROCEDURE OpenFile(_:ARRAY OF CHAR; VAR _:OFSTRUCT; _:CARDINAL) : INTEGER; CONST TF_FORCEDRIVE = 080H; PROCEDURE GetTempDrive(_:SHORTCARD) : SHORTCARD; PROCEDURE GetTempFileName(_:SHORTCARD; _:ARRAY OF CHAR; _:CARDINAL; _:ARRAY OF CHAR) : INTEGER; PROCEDURE SetHandleCount(_:CARDINAL) : CARDINAL; PROCEDURE GetDriveType(_:INTEGER) : CARDINAL; CONST DRIVE_REMOVABLE = 2; DRIVE_FIXED = 3; DRIVE_REMOTE = 4; GMEM_FIXED = 00H; GMEM_MOVEABLE = 02H; GMEM_NOCOMPACT = 010H; GMEM_NODISCARD = 020H; GMEM_ZEROINIT = 040H; GMEM_MODIFY = 080H; GMEM_DISCARDABLE = 0100H; GMEM_NOT_BANKED = 01000H; GMEM_SHARE = 02000H; GMEM_DDESHARE = 02000H; GMEM_NOTIFY = 04000H; GMEM_LOWER = GMEM_NOT_BANKED; GHND = 042H; (* GMEM_MOVEABLE OR GMEM_ZEROINIT *) GPTR = 040H; (* GMEM_FIXED OR GMEM_ZEROINIT *) (* GlobalDiscard(x) ::= GlobalReAlloc(x, 0, GMEM_MOVEABLE) - see below *) PROCEDURE GlobalAlloc(_:CARDINAL; _:LONGCARD) : HANDLE; PROCEDURE GlobalCompact(_:LONGCARD) : LONGCARD; PROCEDURE GlobalFree(_:HANDLE) : HANDLE; PROCEDURE GlobalHandle(_:CARDINAL) : LONGCARD; PROCEDURE GlobalLock(_:HANDLE) : LPSTR; PROCEDURE GlobalReAlloc(_:HANDLE; _:LONGCARD; _:CARDINAL) : HANDLE; PROCEDURE GlobalSize(_:HANDLE) : LONGCARD; PROCEDURE GlobalUnlock(_:HANDLE) : BOOL; PROCEDURE GlobalFlags(_:HANDLE) : CARDINAL; PROCEDURE GlobalWire(_:HANDLE) : LPSTR; PROCEDURE GlobalUnWire(_:HANDLE) : BOOL; PROCEDURE GlobalLRUNewest(_:HANDLE) : HANDLE; PROCEDURE GlobalLRUOldest(_:HANDLE) : HANDLE; PROCEDURE GlobalNotify(_:FARPROC); PROCEDURE GlobalPageLock(_:HANDLE) : CARDINAL; PROCEDURE GlobalPageUnlock(_:HANDLE) : CARDINAL; PROCEDURE GlobalFix(_:HANDLE); PROCEDURE GlobalUnfix(_:HANDLE) : BOOL; CONST GMEM_DISCARDED = 04000H; GMEM_LOCKCOUNT = 0FFH; DataSegment = 0FFFFH; (* LockData ::= LockSegment(DataSegment) *) (* UnlockData ::= UnlockSegment(DataSegment) *) PROCEDURE LockSegment(_:CARDINAL) : HANDLE; PROCEDURE UnlockSegment(_:CARDINAL) : HANDLE; CONST LMEM_FIXED = 00H; LMEM_MOVEABLE = 02H; LMEM_NOCOMPACT = 010H; LMEM_NODISCARD = 020H; LMEM_ZEROINIT = 040H; LMEM_MODIFY = 080H; LMEM_DISCARDABLE = 0F00H; LHND = 042H; (* LMEM_MOVEABLE OR LMEM_ZEROINIT *) LPTR = 040H; (* LMEM_FIXED OR LMEM_ZEROINIT *) NONZEROLHND = LMEM_MOVEABLE; NONZEROLPTR = LMEM_FIXED; LNOTIFY_OUTOFMEM = 0; LNOTIFY_MOVE = 1; LNOTIFY_DISCARD = 2; VAR pLocalHeap : NearADDRESS; (* LocalDiscard(x) ::= LocalReAlloc(x, 0, LMEM_MOVEABLE) *) PROCEDURE LocalAlloc(_:CARDINAL; _:CARDINAL) : HANDLE; PROCEDURE LocalCompact(_:CARDINAL) : CARDINAL; PROCEDURE LocalFree(_:HANDLE) : HANDLE; PROCEDURE LocalHandle(_:CARDINAL) : HANDLE; PROCEDURE LocalInit(_:CARDINAL; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE LocalLock(_:HANDLE) : NearADDRESS; PROCEDURE LocalNotify(_:FARPROC) : FARPROC; PROCEDURE LocalReAlloc(_:HANDLE; _:CARDINAL; _:CARDINAL) : HANDLE; PROCEDURE LocalSize(_:HANDLE) : CARDINAL; PROCEDURE LocalUnlock(_:HANDLE) : BOOL; PROCEDURE LocalFlags(_:HANDLE) : CARDINAL; PROCEDURE LocalShrink(_:HANDLE; _:CARDINAL) : CARDINAL; CONST LMEM_DISCARDED = 04000H; LMEM_LOCKCOUNT = 0FFH; PROCEDURE SetSwapAreaSize(_:CARDINAL) : LONGINT; PROCEDURE ValidateFreeSpaces() : LPSTR; PROCEDURE LimitEmsPages(_:LONGCARD); PROCEDURE SetErrorMode(_:CARDINAL) : BOOL; PROCEDURE ValidateCodeSegments(); CONST UnlockResource ::= GlobalUnlock; PROCEDURE FindResource(_:HANDLE; _:ARRAY OF CHAR; _:FarADDRESS) : HANDLE; PROCEDURE LoadResource(_:HANDLE; _:HANDLE) : HANDLE; PROCEDURE FreeResource(_:HANDLE) : BOOL; PROCEDURE LockResource(_:HANDLE) : LPSTR; PROCEDURE SetResourceHandler(_:HANDLE; _:FarADDRESS; _:FARPROC) : FARPROC; PROCEDURE AllocResource(_:HANDLE; _:HANDLE; _:LONGCARD) : HANDLE; PROCEDURE SizeofResource(_:HANDLE; _:HANDLE) : CARDINAL; PROCEDURE AccessResource(_:HANDLE; _:HANDLE) : INTEGER; CONST DIFFERENCE = 11; RT_CURSOR = LPSTR(1); RT_BITMAP = LPSTR(2); RT_ICON = LPSTR(3); RT_MENU = LPSTR(4); RT_DIALOG = LPSTR(5); RT_STRING = LPSTR(6); RT_FONTDIR = LPSTR(7); RT_FONT = LPSTR(8); RT_ACCELERATOR = LPSTR(9); RT_RCDATA = LPSTR(10); RT_GROUP_CURSOR = LPSTR(12); RT_GROUP_ICON = LPSTR(14); PROCEDURE Yield(); PROCEDURE GetCurrentTask() : HANDLE; TYPE ATOM = CARDINAL; PROCEDURE InitAtomTable(_:INTEGER) : BOOL; PROCEDURE AddAtom(_:ARRAY OF CHAR) : ATOM; PROCEDURE DeleteAtom(_:ATOM) : ATOM; PROCEDURE FindAtom(_:ARRAY OF CHAR) : ATOM; PROCEDURE GetAtomName(_:ATOM; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL; PROCEDURE GlobalAddAtom(_:ARRAY OF CHAR) : ATOM; PROCEDURE GlobalDeleteAtom(_:ATOM) : ATOM; PROCEDURE GlobalFindAtom(_:ARRAY OF CHAR) : ATOM; PROCEDURE GlobalGetAtomName(_:ATOM; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL; PROCEDURE GetAtomHandle(_:ATOM) : HANDLE; PROCEDURE GetProfileInt(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL; PROCEDURE GetProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE WriteProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL; PROCEDURE GetPrivateProfileInt(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER; _:ARRAY OF CHAR) : CARDINAL; PROCEDURE GetPrivateProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER; _:ARRAY OF CHAR) : INTEGER; PROCEDURE WritePrivateProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL; PROCEDURE GetWindowsDirectory(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL; PROCEDURE GetSystemDirectory(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL; TYPE CATCHBUF = ARRAY [0..8] OF INTEGER; LPCATCHBUF = POINTER TO CATCHBUF; PROCEDURE Catch(VAR _:INTEGER) : INTEGER; PROCEDURE Throw(VAR _:INTEGER; _:INTEGER); PROCEDURE FatalExit(_:INTEGER); PROCEDURE SwapRecording(_:CARDINAL); PROCEDURE AnsiToOem(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : INTEGER; PROCEDURE OemToAnsi(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL; PROCEDURE AnsiToOemBuff(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER); PROCEDURE OemToAnsiBuff(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER); PROCEDURE AnsiUpper(_:ARRAY OF CHAR) : LPSTR; PROCEDURE AnsiUpperBuff(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL; PROCEDURE AnsiLower(_:ARRAY OF CHAR) : LPSTR; PROCEDURE AnsiLowerBuff(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL; PROCEDURE AnsiNext(_:ARRAY OF CHAR) : LPSTR; PROCEDURE AnsiPrev(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : LPSTR; PROCEDURE OemKeyScan(_:CARDINAL) : LONGCARD; PROCEDURE VkKeyScan(_:CARDINAL) : CARDINAL; PROCEDURE GetKeyboardType(_:INTEGER) : INTEGER; PROCEDURE GetKBCodePage() : INTEGER; PROCEDURE GetKeyNameText(_:LONGINT; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE ToAscii(wVirtKey : CARDINAL; wScanCode : CARDINAL; lpKeyState : ARRAY OF CHAR; lpChar : ADDRESS; wFlags : CARDINAL) : INTEGER; PROCEDURE IsCharAlpha(_:CHAR) : BOOL; PROCEDURE IsCharAlphaNumeric(_:CHAR) : BOOL; PROCEDURE IsCharUpper(_:CHAR) : BOOL; PROCEDURE IsCharLower(_:CHAR) : BOOL; PROCEDURE GetWinFlags() : LONGINT; CONST WF_PMODE = 01H; WF_CPU286 = 02H; WF_CPU386 = 04H; WF_CPU486 = 08H; WF_STANDARD = 010H; WF_WIN286 = 010H; WF_ENHANCED = 020H; WF_WIN386 = 020H; WF_CPU086 = 040H; WF_CPU186 = 080H; WF_LARGEFRAME = 0100H; WF_SMALLFRAME = 0200H; WF_80x87 = 0400H; WEP_SYSTEM_EXIT = 1; WEP_FREE_DLL = 0; R2_BLACK = 1; R2_NOTMERGEPEN = 2; R2_MASKNOTPEN = 3; R2_NOTCOPYPEN = 4; R2_MASKPENNOT = 5; R2_NOT = 6; R2_XORPEN = 7; R2_NOTMASKPEN = 8; R2_MASKPEN = 9; R2_NOTXORPEN = 10; R2_NOP = 11; R2_MERGENOTPEN = 12; R2_COPYPEN = 13; R2_MERGEPENNOT = 14; R2_MERGEPEN = 15; R2_WHITE = 16; SRCCOPY = 0CC0020H; SRCPAINT = 0EE0086H; SRCAND = 08800C6H; SRCINVERT = 0660046H; SRCERASE = 0440328H; NOTSRCCOPY = 0330008H; NOTSRCERASE = 01100A6H; MERGECOPY = 0C000CAH; MERGEPAINT = 0BB0226H; PATCOPY = 0F00021H; PATPAINT = 0FB0A09H; PATINVERT = 05A0049H; DSTINVERT = 0550009H; BLACKNESS = 042H; WHITENESS = 0FF0062H; BLACKONWHITE = 1; WHITEONBLACK = 2; COLORONCOLOR = 3; ALTERNATE = 1; WINDING = 2; TA_NOUPDATECP = 0; TA_UPDATECP = 1; TA_LEFT = 0; TA_RIGHT = 2; TA_CENTER = 6; TA_TOP = 0; TA_BOTTOM = 8; TA_BASELINE = 24; ETO_GRAYED = 1; ETO_OPAQUE = 2; ETO_CLIPPED = 4; ASPECT_FILTERING = 01H; META_SETBKCOLOR = 0201H; META_SETBKMODE = 0102H; META_SETMAPMODE = 0103H; META_SETROP2 = 0104H; META_SETRELABS = 0105H; META_SETPOLYFILLMODE = 0106H; META_SETSTRETCHBLTMODE = 0107H; META_SETTEXTCHAREXTRA = 0108H; META_SETTEXTCOLOR = 0209H; META_SETTEXTJUSTIFICATION = 020AH; META_SETWINDOWORG = 020BH; META_SETWINDOWEXT = 020CH; META_SETVIEWPORTORG = 020DH; META_SETVIEWPORTEXT = 020EH; META_OFFSETWINDOWORG = 020FH; META_SCALEWINDOWEXT = 0400H; META_OFFSETVIEWPORTORG = 0211H; META_SCALEVIEWPORTEXT = 0412H; META_LINETO = 0213H; META_MOVETO = 0214H; META_EXCLUDECLIPRECT = 0415H; META_INTERSECTCLIPRECT = 0416H; META_ARC = 0817H; META_ELLIPSE = 0418H; META_FLOODFILL = 0419H; META_PIE = 081AH; META_RECTANGLE = 041BH; META_ROUNDRECT = 061CH; META_PATBLT = 061DH; META_SAVEDC = 01EH; META_SETPIXEL = 041FH; META_OFFSETCLIPRGN = 0220H; META_TEXTOUT = 0521H; META_BITBLT = 0922H; META_STRETCHBLT = 0B23H; META_POLYGON = 0324H; META_POLYLINE = 0325H; META_ESCAPE = 0626H; META_RESTOREDC = 0127H; META_FILLREGION = 0228H; META_FRAMEREGION = 0429H; META_INVERTREGION = 012AH; META_PAINTREGION = 012BH; META_SELECTCLIPREGION = 012CH; META_SELECTOBJECT = 012DH; META_SETTEXTALIGN = 012EH; META_DRAWTEXT = 062FH; META_CHORD = 0830H; META_SETMAPPERFLAGS = 0231H; META_EXTTEXTOUT = 0A32H; META_SETDIBTODEV = 0D33H; META_SELECTPALETTE = 0234H; META_REALIZEPALETTE = 035H; META_ANIMATEPALETTE = 0436H; META_SETPALENTRIES = 037H; META_POLYPOLYGON = 0538H; META_RESIZEPALETTE = 0139H; META_DIBBITBLT = 0940H; META_DIBSTRETCHBLT = 0B41H; META_DIBCREATEPATTERNBRUSH= 0142H; META_STRETCHDIB = 0F43H; META_DELETEOBJECT = 01F0H; META_CREATEPALETTE = 0F7H; META_CREATEBRUSH = 0F8H; META_CREATEPATTERNBRUSH = 01F9H; META_CREATEPENINDIRECT = 02FAH; META_CREATEFONTINDIRECT = 02FBH; META_CREATEBRUSHINDIRECT = 02FCH; META_CREATEBITMAPINDIRECT = 02FDH; META_CREATEBITMAP = 06FEH; META_CREATEREGION = 06FFH; NEWFRAME = 1; ABORTDOC = 2; NEXTBAND = 3; SETCOLORTABLE = 4; GETCOLORTABLE = 5; FLUSHOUTPUT = 6; DRAFTMODE = 7; QUERYESCSUPPORT = 8; SETABORTPROC = 9; STARTDOC = 10; ENDDOC = 11; GETPHYSPAGESIZE = 12; GETPRINTINGOFFSET = 13; GETSCALINGFACTOR = 14; MFCOMMENT = 15; GETPENWIDTH = 16; SETCOPYCOUNT = 17; SELECTPAPERSOURCE = 18; DEVICEDATA = 19; PASSTHROUGH = 19; GETTECHNOLGY = 20; GETTECHNOLOGY = 20; SETENDCAP = 21; SETLINEJOIN = 22; SETMITERLIMIT = 23; BANDINFO = 24; DRAWPATTERNRECT = 25; GETVECTORPENSIZE = 26; GETVECTORBRUSHSIZE= 27; ENABLEDUPLEX = 28; GETSETPAPERBINS = 29; GETSETPRINTORIENT = 30; ENUMPAPERBINS = 31; SETDIBSCALING = 32; EPSPRINTING = 33; ENUMPAPERMETRICS = 34; GETSETPAPERMETRICS= 35; POSTSCRIPT_DATA = 37; POSTSCRIPT_IGNORE = 38; GETEXTENDEDTEXTMETRICS = 256; GETEXTENTTABLE = 257; GETPAIRKERNTABLE = 258; GETTRACKKERNTABLE = 259; EXTTEXTOUT = 512; ENABLERELATIVEWIDTHS = 768; ENABLEPAIRKERNING = 769; SETKERNTRACK = 770; SETALLJUSTVALUES = 771; SETCHARSET = 772; STRETCHBLT = 2048; BEGIN_PATH = 4096; CLIP_TO_PATH = 4097; END_PATH = 4098; EXT_DEVICE_CAPS = 4099; RESTORE_CTM = 4100; SAVE_CTM = 4101; SET_ARC_DIRECTION = 4102; SET_BACKGROUND_COLOR = 4103; SET_POLY_MODE = 4104; SET_SCREEN_ANGLE = 4105; SET_SPREAD = 4106; TRANSFORM_CTM = 4107; SET_CLIP_BOX = 4108; SET_BOUNDS = 4109; SP_NOTREPORTED = 04000H; SP_ERROR = -1; SP_APPABORT = -2; SP_USERABORT = -3; SP_OUTOFDISK = -4; SP_OUTOFMEMORY = -5; PR_JOBSTATUS = 00H; OBJ_PEN = 1; OBJ_BRUSH = 2; TYPE BITMAP = RECORD bmType : INTEGER; bmWidth : INTEGER; bmHeight : INTEGER; bmWidthBytes : INTEGER; bmPlanes : SHORTCARD; bmBitsPixel : SHORTCARD; bmBits : LPSTR; END; LPBITMAP = POINTER TO BITMAP; RGBTRIPLE = RECORD rgbtBlue : SHORTCARD; rgbtGreen : SHORTCARD; rgbtRed : SHORTCARD; END; RGBQUAD = RECORD rgbBlue : SHORTCARD; rgbGreen : SHORTCARD; rgbRed : SHORTCARD; rgbReserved : SHORTCARD; END; BITMAPCOREHEADER = RECORD bcSize : LONGCARD; bcWidth : CARDINAL; bcHeight : CARDINAL; bcPlanes : CARDINAL; bcBitCount : CARDINAL; END; LPBITMAPCOREHEADER = POINTER TO BITMAPCOREHEADER; BITMAPINFOHEADER = RECORD biSize : LONGCARD; biWidth : LONGCARD; biHeight : LONGCARD; biPlanes : CARDINAL; biBitCount : CARDINAL; biCompression : LONGCARD; biSizeImage : LONGCARD; biXPelsPerMeter : LONGCARD; biYPelsPerMeter : LONGCARD; biClrUsed : LONGCARD; biClrImportant : LONGCARD; END; LPBITMAPINFOHEADER = POINTER TO BITMAPINFOHEADER; CONST BI_RGB = 0; BI_RLE8 = 1; BI_RLE4 = 2; TYPE BITMAPINFO = RECORD bmiHeader : BITMAPINFOHEADER; bmiColors : ARRAY [0..0] OF RGBQUAD; END; LPBITMAPINFO = POINTER TO BITMAPINFO; BITMAPCOREINFO = RECORD bmciHeader : BITMAPCOREHEADER; bmciColors : ARRAY [0..0] OF RGBTRIPLE; END; LPBITMAPCOREINFO = POINTER TO BITMAPCOREINFO; BITMAPFILEHEADER = RECORD bfType : CARDINAL; bfSize : LONGCARD; bfReserved1 : CARDINAL; bfReserved2 : CARDINAL; bfOffBits : LONGCARD; END; LPBITMAPFILEHEADER = POINTER TO BITMAPFILEHEADER; TYPE HANDLETABLE = RECORD objectHandle : ARRAY [0..0] OF CARDINAL; END; LPHANDLETABLE = POINTER TO HANDLETABLE; METARECORD = RECORD rdSize : LONGCARD; rdFunction : CARDINAL; rdParm : ARRAY [0..0] OF CARDINAL; END; LPMETARECORD = POINTER TO METARECORD; METAFILEPICT = RECORD mm : INTEGER; xExt : INTEGER; yExt : INTEGER; hMF : HANDLE; END; LPMETAFILEPICT = POINTER TO METAFILEPICT; METAHEADER = RECORD mtType : CARDINAL; mtHeaderSize : CARDINAL; mtVersion : CARDINAL; mtSize : LONGCARD; mtNoObjects : CARDINAL; mtMaxRecord : LONGCARD; mtNoParameters : CARDINAL; END; TEXTMETRIC = RECORD tmHeight : CARDINAL; tmAscent : CARDINAL; tmDescent : CARDINAL; tmInternalLeading : CARDINAL; tmExternalLeading : CARDINAL; tmAveCharWidth : CARDINAL; tmMaxCharWidth : CARDINAL; tmWeight : CARDINAL; tmItalic : SHORTCARD; tmUnderlined : SHORTCARD; tmStruckOut : SHORTCARD; tmFirstChar : CHAR; tmLastChar : CHAR; tmDefaultChar : CHAR; tmBreakChar : CHAR; tmPitchAndFamily : SHORTCARD; tmCharSet : SHORTCARD; tmOverhang : INTEGER; tmDigitizedAspectX : INTEGER; tmDigitizedAspectY : INTEGER; END; LPTEXTMETRIC = POINTER TO TEXTMETRIC; PELARRAY = RECORD paXCount : INTEGER; paYCount : INTEGER; paXExt : INTEGER; paYExt : INTEGER; paRGBs : SHORTCARD; END; LPPELARRAY = POINTER TO PELARRAY; LOGBRUSH = RECORD lbStyle : CARDINAL; lbColor : LONGCARD; lbHatch : INTEGER; END; LPLOGBRUSH = POINTER TO LOGBRUSH; PATTERN = LOGBRUSH; LPPATTERN = POINTER TO LOGBRUSH; LOGPEN = RECORD lopnStyle : CARDINAL; lopnWidth : POINT; lopnColor : LONGCARD; END; LPLOGPEN = POINTER TO LOGPEN; PALETTEENTRY = RECORD peRed : SHORTCARD; peGreen : SHORTCARD; peBlue : SHORTCARD; peFlags : SHORTCARD; END; LPPALETTEENTRY = POINTER TO PALETTEENTRY; LOGPALETTE = RECORD palVersion : CARDINAL; palNumEntries : CARDINAL; palPalEntry : ARRAY [0..0] OF PALETTEENTRY; END; LPLOGPALETTE = POINTER TO LOGPALETTE; CONST LF_FACESIZE = 32; TYPE LOGFONT = RECORD lfHeight : INTEGER; lfWidth : INTEGER; lfEscapement : INTEGER; lfOrientation : INTEGER; lfWeight : INTEGER; lfItalic : SHORTCARD; lfUnderline : SHORTCARD; lfStrikeOut : SHORTCARD; lfCharSet : SHORTCARD; lfOutPrecision : SHORTCARD; lfClipPrecision : SHORTCARD; lfQuality : SHORTCARD; lfPitchAndFamily : SHORTCARD; lfFaceName : ARRAY [0..31] OF CHAR; END; LPLOGFONT = POINTER TO LOGFONT; CONST OUT_DEFAULT_PRECIS = 0; OUT_STRING_PRECIS = 1; OUT_CHARACTER_PRECIS = 2; OUT_STROKE_PRECIS = 3; CLIP_DEFAULT_PRECIS = 0; CLIP_CHARACTER_PRECIS = 1; CLIP_STROKE_PRECIS = 2; DEFAULT_QUALITY = 0; DRAFT_QUALITY = 1; PROOF_QUALITY = 2; DEFAULT_PITCH = 0; FIXED_PITCH = 1; VARIABLE_PITCH = 2; ANSI_CHARSET = 0; SYMBOL_CHARSET = 2; SHIFTJIS_CHARSET = 128; OEM_CHARSET = 255; FF_DONTCARE = (0<<4); FF_ROMAN = (1<<4); FF_SWISS = (2<<4); FF_MODERN = (3<<4); FF_SCRIPT = (4<<4); FF_DECORATIVE = (5<<4); CONST FW_DONTCARE = 0; FW_THIN = 100; FW_EXTRALIGHT = 200; FW_LIGHT = 300; FW_NORMAL = 400; FW_MEDIUM = 500; FW_SEMIBOLD = 600; FW_BOLD = 700; FW_EXTRABOLD = 800; FW_HEAVY = 900; FW_ULTRALIGHT = FW_EXTRALIGHT; FW_REGULAR = FW_NORMAL; FW_DEMIBOLD = FW_SEMIBOLD; FW_ULTRABOLD = FW_EXTRABOLD; FW_BLACK = FW_HEAVY; CONST RASTER_FONTTYPE = 01H; DEVICE_FONTTYPE = 02H; CONST TRANSPARENT = 1; OPAQUE = 2; MM_TEXT = 1; MM_LOMETRIC = 2; MM_HIMETRIC = 3; MM_LOENGLISH = 4; MM_HIENGLISH = 5; MM_TWIPS = 6; MM_ISOTROPIC = 7; MM_ANISOTROPIC = 8; ABSOLUTE = 1; RELATIVE = 2; WHITE_BRUSH = 0; LTGRAY_BRUSH = 1; GRAY_BRUSH = 2; DKGRAY_BRUSH = 3; BLACK_BRUSH = 4; NULL_BRUSH = 5; HOLLOW_BRUSH = NULL_BRUSH; CONST WHITE_PEN = 6; BLACK_PEN = 7; NULL_PEN = 8; OEM_FIXED_FONT = 10; ANSI_FIXED_FONT = 11; ANSI_VAR_FONT = 12; SYSTEM_FONT = 13; DEVICE_DEFAULT_FONT = 14; DEFAULT_PALETTE = 15; SYSTEM_FIXED_FONT = 16; BS_SOLID = 0; BS_NULL = 1; BS_HOLLOW = BS_NULL; BS_HATCHED = 2; BS_PATTERN = 3; BS_INDEXED = 4; BS_DIBPATTERN = 5; HS_HORIZONTAL = 0; HS_VERTICAL = 1; HS_FDIAGONAL = 2; HS_BDIAGONAL = 3; HS_CROSS = 4; HS_DIAGCROSS = 5; PS_SOLID = 0; PS_DASH = 1; PS_DOT = 2; PS_DASHDOT = 3; PS_DASHDOTDOT = 4; PS_NULL = 5; PS_INSIDEFRAME = 6; DRIVERVERSION = 0; TECHNOLOGY = 2; HORZSIZE = 4; VERTSIZE = 6; HORZRES = 8; VERTRES = 10; BITSPIXEL = 12; PLANES = 14; NUMBRUSHES = 16; NUMPENS = 18; NUMMARKERS = 20; NUMFONTS = 22; NUMCOLORS = 24; PDEVICESIZE = 26; CURVECAPS = 28; LINECAPS = 30; POLYGONALCAPS = 32; TEXTCAPS = 34; CLIPCAPS = 36; RASTERCAPS = 38; ASPECTX = 40; ASPECTY = 42; ASPECTXY = 44; LOGPIXELSX = 88; LOGPIXELSY = 90; SIZEPALETTE = 104; NUMRESERVED = 106; COLORRES = 108; DT_PLOTTER = 0; DT_RASDISPLAY = 1; DT_RASPRINTER = 2; DT_RASCAMERA = 3; DT_CHARSTREAM = 4; DT_METAFILE = 5; DT_DISPFILE = 6; CC_NONE = 0; CC_CIRCLES = 1; CC_PIE = 2; CC_CHORD = 4; CC_ELLIPSES = 8; CC_WIDE = 16; CC_STYLED = 32; CC_WIDESTYLED = 64; CC_INTERIORS = 128; LC_NONE = 0; LC_POLYLINE = 2; LC_MARKER = 4; LC_POLYMARKER = 8; LC_WIDE = 16; LC_STYLED = 32; LC_WIDESTYLED = 64; LC_INTERIORS = 128; PC_NONE = 0; PC_POLYGON = 1; PC_RECTANGLE = 2; PC_WINDPOLYGON = 4; PC_TRAPEZOID = 4; PC_SCANLINE = 8; PC_WIDE = 16; PC_STYLED = 32; PC_WIDESTYLED = 64; PC_INTERIORS = 128; CP_NONE = 0; CP_RECTANGLE = 1; TC_OP_CHARACTER = 01H; TC_OP_STROKE = 02H; TC_CP_STROKE = 04H; TC_CR_90 = 08H; TC_CR_ANY = 010H; TC_SF_X_YINDEP = 020H; TC_SA_DOUBLE = 040H; TC_SA_INTEGER = 080H; TC_SA_CONTIN = 0100H; TC_EA_DOUBLE = 0200H; TC_IA_ABLE = 0400H; TC_UA_ABLE = 0800H; TC_SO_ABLE = 01000H; TC_RA_ABLE = 02000H; TC_VA_ABLE = 04000H; TC_RESERVED = 08000H; RC_BITBLT = 0; RC_BANDING = 1; RC_SCALING = 2; RC_BITMAP64 = 3; RC_GDI20_OUTPUT = 4; RC_DI_BITMAP = 7; RC_PALETTE = 8; RC_DIBTODEV = 9; RC_BIGFONT = 10; RC_STRETCHBLT = 11; RC_FLOODFILL = 12; RC_STRETCHDIB = 13; (* RC_BITBLT = 1; RC_BANDING = 2; RC_SCALING = 4; RC_BITMAP64 = 8; RC_GDI20_OUTPUT = 010H; RC_DI_BITMAP = 080H; RC_PALETTE = 0100H; RC_DIBTODEV = 0200H; RC_BIGFONT = 0400H; RC_STRETCHBLT = 0800H; RC_FLOODFILL = 01000H; RC_STRETCHDIB = 02000H; *) PC_RESERVED = 01H; PC_EXPLICIT = 02H; PC_NOCOLLAPSE = 04H; DIB_RGB_COLORS = 0; DIB_PAL_COLORS = 1; SYSPAL_STATIC = 1; SYSPAL_NOSTATIC = 2; CBM_INIT = 04H; DT_TOP = 00H; DT_LEFT = 00H; DT_CENTER = 01H; DT_RIGHT = 02H; DT_VCENTER = 04H; DT_BOTTOM = 08H; DT_WORDBREAK = 010H; DT_SINGLELINE = 020H; DT_EXPANDTABS = 040H; DT_TABSTOP = 080H; DT_NOCLIP = 0100H; DT_EXTERNALLEADING = 0200H; DT_CALCRECT = 0400H; DT_NOPREFIX = 0800H; DT_INTERNAL = 01000H; PROCEDURE DrawText(_:HDC; _:ARRAY OF CHAR; _:INTEGER; VAR _:RECT; _:CARDINAL) : INTEGER; PROCEDURE DrawIcon(_:HDC; _:INTEGER; _:INTEGER; _:HICON) : BOOL; CONST FLOODFILLBORDER = 0; FLOODFILLSURFACE = 1; PROCEDURE GetWindowDC(_:HWND) : HDC; PROCEDURE GetDC(_:HWND) : HDC; PROCEDURE ReleaseDC(_:HWND; _:HDC) : INTEGER; PROCEDURE CreateDC(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HDC; PROCEDURE CreateIC(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HDC; PROCEDURE CreateCompatibleDC(_:HDC) : HDC; PROCEDURE DeleteDC(_:HDC) : BOOL; PROCEDURE SaveDC(_:HDC) : INTEGER; PROCEDURE RestoreDC(_:HDC; _:INTEGER) : BOOL; PROCEDURE MoveTo(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetCurrentPosition(_:HDC) : LONGCARD; PROCEDURE LineTo(_:HDC; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE GetDCOrg(_:HDC) : LONGCARD; PROCEDURE MulDiv(_:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE ExtTextOut(_:HDC; _:INTEGER; _:INTEGER; _:CARDINAL; VAR _:RECT; _:ARRAY OF CHAR; _:CARDINAL; VAR _:INTEGER) : BOOL; PROCEDURE Polyline(_:HDC; VAR _:POINT; _:INTEGER) : BOOL; PROCEDURE Polygon(_:HDC; VAR _:POINT; _:INTEGER) : BOOL; PROCEDURE PolyPolygon(_:HDC; VAR _:POINT; VAR _:INTEGER; _:INTEGER) : BOOL; PROCEDURE Rectangle(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE RoundRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE Ellipse(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE Arc(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE Chord(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE Pie(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE PatBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL; PROCEDURE BitBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL; PROCEDURE StretchBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL; PROCEDURE TextOut(_:HDC; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : BOOL; PROCEDURE TabbedTextOut(_:HDC; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; VAR _:INTEGER; _:INTEGER) : LONGINT; PROCEDURE GetCharWidth(_:HDC; _:CARDINAL; _:CARDINAL; VAR _:ARRAY OF CARDINAL) : BOOL; PROCEDURE SetPixel(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : LONGCARD; PROCEDURE GetPixel(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE FloodFill(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL; PROCEDURE ExtFloodFill(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD; _:CARDINAL) : BOOL; PROCEDURE LineDDA(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:FARPROC; _:ARRAY OF CHAR); PROCEDURE GetStockObject(_:INTEGER) : HANDLE; PROCEDURE CreatePen(_:INTEGER; _:INTEGER; _:LONGCARD) : HPEN; PROCEDURE CreatePenIndirect(VAR _:LOGPEN) : HPEN; PROCEDURE CreateSolidBrush(_:LONGCARD) : HBRUSH; PROCEDURE CreateHatchBrush(_:INTEGER; _:LONGCARD) : HBRUSH; PROCEDURE SetBrushOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetBrushOrg(_:HDC) : LONGCARD; PROCEDURE CreatePatternBrush(_:HBITMAP) : HBRUSH; PROCEDURE CreateBrushIndirect(VAR _:LOGBRUSH) : HBRUSH; PROCEDURE CreateBitmap(_:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR) : HBITMAP; PROCEDURE CreateBitmapIndirect(VAR _:BITMAP) : HBITMAP; PROCEDURE CreateCompatibleBitmap(_:HDC; _:INTEGER; _:INTEGER) : HBITMAP; PROCEDURE CreateDiscardableBitmap(_:HDC; _:INTEGER; _:INTEGER) : HBITMAP; PROCEDURE SetBitmapBits(_:HBITMAP; _:LONGCARD; _:ARRAY OF CHAR) : LONGINT; PROCEDURE GetBitmapBits(_:HBITMAP; _:LONGINT; _:ARRAY OF CHAR) : LONGINT; PROCEDURE SetBitmapDimension(_:HBITMAP; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetBitmapDimension(_:HBITMAP) : LONGCARD; PROCEDURE CreateFont(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR) : HFONT; PROCEDURE CreateFontIndirect(VAR _:LOGFONT) : HFONT; PROCEDURE SelectClipRgn(_:HDC; _:HRGN) : INTEGER; PROCEDURE CreateRectRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN; PROCEDURE SetRectRgn(_:HRGN; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER); PROCEDURE CreateRectRgnIndirect(VAR _:RECT) : HRGN; PROCEDURE CreateEllipticRgnIndirect(VAR _:RECT) : HRGN; PROCEDURE CreateEllipticRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN; PROCEDURE CreatePolygonRgn(VAR _:POINT; _:INTEGER; _:INTEGER) : HRGN; PROCEDURE CreatePolyPolygonRgn(VAR _:POINT; VAR _:INTEGER; _:INTEGER; _:INTEGER) : HRGN; PROCEDURE CreateRoundRectRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN; PROCEDURE GetObject(_:HANDLE; _:INTEGER; _:ARRAY OF BYTE) : INTEGER; PROCEDURE DeleteObject(_:HANDLE) : BOOL; PROCEDURE SelectObject(_:HDC; _:HANDLE) : HANDLE; PROCEDURE UnrealizeObject(_:HBRUSH) : BOOL; PROCEDURE SetBkColor(_:HDC; _:LONGCARD) : LONGCARD; PROCEDURE GetBkColor(_:HDC) : LONGCARD; PROCEDURE SetBkMode(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetBkMode(_:HDC) : INTEGER; PROCEDURE SetTextColor(_:HDC; _:LONGCARD) : LONGCARD; PROCEDURE GetTextColor(_:HDC) : LONGCARD; PROCEDURE SetTextAlign(_:HDC; _:CARDINAL) : CARDINAL; PROCEDURE GetTextAlign(_:HDC) : CARDINAL; PROCEDURE SetMapperFlags(_:HDC; _:LONGCARD) : LONGCARD; PROCEDURE GetAspectRatioFilter(_:HDC) : LONGCARD; PROCEDURE GetNearestColor(_:HDC; _:LONGCARD) : LONGCARD; PROCEDURE SetROP2(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetROP2(_:HDC) : INTEGER; PROCEDURE SetStretchBltMode(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetStretchBltMode(_:HDC) : INTEGER; PROCEDURE SetPolyFillMode(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetPolyFillMode(_:HDC) : INTEGER; PROCEDURE SetMapMode(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetMapMode(_:HDC) : INTEGER; PROCEDURE SetWindowOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetWindowOrg(_:HDC) : LONGCARD; PROCEDURE SetWindowExt(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetWindowExt(_:HDC) : LONGCARD; PROCEDURE SetViewportOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetViewportOrg(_:HDC) : LONGCARD; PROCEDURE SetViewportExt(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetViewportExt(_:HDC) : LONGCARD; PROCEDURE OffsetViewportOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE ScaleViewportExt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE OffsetWindowOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE ScaleWindowExt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : LONGCARD; PROCEDURE GetClipBox(_:HDC; VAR _:RECT) : INTEGER; PROCEDURE IntersectClipRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE OffsetClipRgn(_:HDC; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE ExcludeClipRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE PtVisible(_:HDC; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE CombineRgn(_:HRGN; _:HRGN; _:HRGN; _:INTEGER) : INTEGER; PROCEDURE EqualRgn(_:HRGN; _:HRGN) : BOOL; PROCEDURE OffsetRgn(_:HRGN; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE GetRgnBox(_:HRGN; VAR _:RECT) : INTEGER; PROCEDURE SetTextJustification(_:HDC; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE GetTextExtent(_:HDC; _:ARRAY OF CHAR; _:INTEGER) : LONGCARD; PROCEDURE GetTabbedTextExtent(_:HDC; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; VAR _:INTEGER) : LONGCARD; PROCEDURE SetTextCharacterExtra(_:HDC; _:INTEGER) : INTEGER; PROCEDURE GetTextCharacterExtra(_:HDC) : INTEGER; PROCEDURE GetMetaFile(_:ARRAY OF CHAR) : HANDLE; PROCEDURE DeleteMetaFile(_:HANDLE) : BOOL; PROCEDURE CopyMetaFile(_:HANDLE; _:ARRAY OF CHAR) : HANDLE; PROCEDURE PlayMetaFileRecord(_:HDC; VAR _:HANDLETABLE; VAR _:METARECORD; _:CARDINAL); PROCEDURE EnumMetaFile(_:HDC; _:HANDLE; _:FARPROC; VAR _:SHORTCARD) : BOOL; PROCEDURE PlayMetaFile(_:HDC; _:HANDLE) : BOOL; PROCEDURE Escape(_:HDC; _:INTEGER; _:INTEGER; _:FarADDRESS; _:FarADDRESS) : INTEGER; PROCEDURE EnumFonts(_:HDC; _:ARRAY OF CHAR; _:FARPROC; _:ARRAY OF CHAR) : INTEGER; PROCEDURE EnumObjects(_:HDC; _:INTEGER; _:FARPROC; _:ARRAY OF CHAR) : INTEGER; PROCEDURE GetTextFace(_:HDC; _:INTEGER; _:ARRAY OF CHAR) : INTEGER; PROCEDURE GetTextMetrics(_:HDC; VAR _:TEXTMETRIC) : BOOL; PROCEDURE GetDeviceCaps(_:HDC; _:INTEGER) : INTEGER; PROCEDURE SetEnvironment(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER; PROCEDURE GetEnvironment(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER; PROCEDURE DPtoLP(_:HDC; VAR _:POINT; _:INTEGER) : BOOL; PROCEDURE LPtoDP(_:HDC; VAR _:POINT; _:INTEGER) : BOOL; PROCEDURE CreateMetaFile(_:ARRAY OF CHAR) : HANDLE; PROCEDURE CloseMetaFile(_:HANDLE) : HANDLE; PROCEDURE GetMetaFileBits(_:HANDLE) : HANDLE; PROCEDURE SetMetaFileBits(_:HANDLE) : HANDLE; PROCEDURE SetDIBits(_:HDC; _:HANDLE; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER; PROCEDURE GetDIBits(_:HDC; _:HANDLE; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER; PROCEDURE SetDIBitsToDevice(_:HDC; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER; PROCEDURE CreateDIBitmap(_:HDC; VAR _:BITMAPINFOHEADER; _:LONGCARD; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : HBITMAP; PROCEDURE CreateDIBPatternBrush(_:HANDLE; _:CARDINAL) : HBRUSH; PROCEDURE StretchDIBits(_:HDC; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL; _:LONGCARD) : INTEGER; PROCEDURE CreatePalette(VAR _:LOGPALETTE) : HPALETTE; PROCEDURE SelectPalette(_:HDC; _:HPALETTE; _:BOOL) : HPALETTE; PROCEDURE RealizePalette(_:HDC) : CARDINAL; PROCEDURE UpdateColors(_:HDC) : INTEGER; PROCEDURE AnimatePalette(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY); PROCEDURE SetPaletteEntries(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL; PROCEDURE GetPaletteEntries(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL; PROCEDURE GetNearestPaletteIndex(_:HPALETTE; _:LONGCARD) : CARDINAL; PROCEDURE ResizePalette(_:HPALETTE; _:CARDINAL) : BOOL; PROCEDURE GetSystemPaletteEntries(_:HDC; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL; PROCEDURE GetSystemPaletteUse(_:HDC; _:CARDINAL) : CARDINAL; PROCEDURE SetSystemPaletteUse(_:HDC; _:CARDINAL) : CARDINAL; PROCEDURE wvsprintf(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF BYTE) : INTEGER; (*# save, call(var_arg=>on, c_conv=>on, reg_param=>()),name(prefix=>c) *) PROCEDURE wsprintf(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : INTEGER; (*# restore *) CONST SB_HORZ = 0; SB_VERT = 1; SB_CTL = 2; SB_BOTH = 3; SB_LINEUP = 0; SB_LINEDOWN = 1; SB_PAGEUP = 2; SB_PAGEDOWN = 3; SB_THUMBPOSITION = 4; SB_THUMBTRACK = 5; SB_TOP = 6; SB_BOTTOM = 7; SB_ENDSCROLL = 8; SW_HIDE = 0; SW_SHOWNORMAL = 1; SW_NORMAL = 1; SW_SHOWMINIMIZED = 2; SW_SHOWMAXIMIZED = 3; SW_MAXIMIZE = 3; SW_SHOWNOACTIVATE = 4; SW_SHOW = 5; SW_MINIMIZE = 6; SW_SHOWMINNOACTIVE = 7; SW_SHOWNA = 8; SW_RESTORE = 9; HIDE_WINDOW = 0; SHOW_OPENWINDOW = 1; SHOW_ICONWINDOW = 2; SHOW_FULLSCREEN = 3; SHOW_OPENNOACTIVATE= 4; SW_PARENTCLOSING = 1; SW_OTHERZOOM = 2; SW_PARENTOPENING = 3; SW_OTHERUNZOOM = 4; ERROR = 0; NULLREGION = 1; SIMPLEREGION = 2; COMPLEXREGION = 3; RGN_AND = 1; RGN_OR = 2; RGN_XOR = 3; RGN_DIFF = 4; RGN_COPY = 5; VK_LBUTTON = 01H; VK_RBUTTON = 02H; VK_CANCEL = 03H; VK_MBUTTON = 04H; VK_BACK = 08H; VK_TAB = 09H; VK_CLEAR = 0CH; VK_RETURN = 0DH; VK_SHIFT = 010H; VK_CONTROL = 011H; VK_MENU = 012H; VK_PAUSE = 013H; VK_CAPITAL = 014H; VK_ESCAPE = 01BH; VK_SPACE = 020H; VK_PRIOR = 021H; VK_NEXT = 022H; VK_END = 023H; VK_HOME = 024H; VK_LEFT = 025H; VK_UP = 026H; VK_RIGHT = 027H; VK_DOWN = 028H; VK_SELECT = 029H; VK_PRINT = 02AH; VK_EXECUTE = 02BH; VK_SNAPSHOT = 02CH; VK_INSERT = 02DH; VK_DELETE = 02EH; VK_HELP = 02FH; VK_NUMPAD0 = 060H; VK_NUMPAD1 = 061H; VK_NUMPAD2 = 062H; VK_NUMPAD3 = 063H; VK_NUMPAD4 = 064H; VK_NUMPAD5 = 065H; VK_NUMPAD6 = 066H; VK_NUMPAD7 = 067H; VK_NUMPAD8 = 068H; VK_NUMPAD9 = 069H; VK_MULTIPLY = 06AH; VK_ADD = 06BH; VK_SEPARATOR = 06CH; VK_SUBTRACT = 06DH; VK_DECIMAL = 06EH; VK_DIVIDE = 06FH; VK_F1 = 070H; VK_F2 = 071H; VK_F3 = 072H; VK_F4 = 073H; VK_F5 = 074H; VK_F6 = 075H; VK_F7 = 076H; VK_F8 = 077H; VK_F9 = 078H; VK_F10 = 079H; VK_F11 = 07AH; VK_F12 = 07BH; VK_F13 = 07CH; VK_F14 = 07DH; VK_F15 = 07EH; VK_F16 = 07FH; VK_NUMLOCK = 090H; WH_MSGFILTER = -1; WH_JOURNALRECORD = 0; WH_JOURNALPLAYBACK = 1; WH_KEYBOARD = 2; WH_GETMESSAGE = 3; WH_CALLWNDPROC = 4; WH_CBT = 5; WH_SYSMSGFILTER = 6; WH_WINDOWMGR = 7; HC_LPLPFNNEXT = -2; HC_LPFNNEXT = -1; HC_ACTION = 0; HC_GETNEXT = 1; HC_SKIP = 2; HC_NOREM = 3; HC_NOREMOVE = 3; HC_SYSMODALON = 4; HC_SYSMODALOFF = 5; HCBT_MOVESIZE = 0; HCBT_MINMAX = 1; HCBT_QS = 2; MSGF_DIALOGBOX = 0; MSGF_MESSAGEBOX = 1; MSGF_MENU = 2; MSGF_MOVE = 3; MSGF_SIZE = 4; MSGF_SCROLLBAR = 5; MSGF_NEXTWINDOW = 6; WC_INIT = 1; WC_SWP = 2; WC_DEFWINDOWPROC = 3; WC_MINMAX = 4; WC_MOVE = 5; WC_SIZE = 6; WC_DRAWCAPTION = 7; TYPE EVENTMSG = RECORD message : CARDINAL; paramL : CARDINAL; paramH : CARDINAL; time : LONGCARD; END; LPEVENTMSGMSG = POINTER TO EVENTMSG; WNDCLASS = RECORD style : CARDINAL; lpfnWndProc : FarADDRESS; (* Address of PROCEDURE *); cbClsExtra : INTEGER; cbWndExtra : INTEGER; hInstance : HANDLE; hIcon : HICON; hCursor : HCURSOR; hbrBackground : HBRUSH; lpszMenuName : LPSTR; lpszClassName : LPSTR; END; LPWNDCLASS = POINTER TO WNDCLASS; MSG = RECORD hwnd : CARDINAL; message : CARDINAL; wParam : CARDINAL; lParam : LONGINT; time : LONGCARD; pt : POINT; END; LPMSG = POINTER TO MSG; CONST GWL_WNDPROC = -4; GWW_HINSTANCE = -6; GWW_HWNDPARENT = -8; GWW_ID = -12; GWL_STYLE = -16; GWL_EXSTYLE = -20; GCL_MENUNAME = -8; GCW_HBRBACKGROUND = -10; GCW_HCURSOR = -12; GCW_HICON = -14; GCW_HMODULE = -16; GCW_CBWNDEXTRA = -18; GCW_CBCLSEXTRA = -20; GCL_WNDPROC = -24; GCW_STYLE = -26; WM_NULL = 00H; WM_CREATE = 01H; WM_DESTROY = 02H; WM_MOVE = 03H; WM_SIZE = 05H; WM_ACTIVATE = 06H; WM_SETFOCUS = 07H; WM_KILLFOCUS = 08H; WM_ENABLE = 0AH; WM_SETREDRAW = 0BH; WM_SETTEXT = 0CH; WM_GETTEXT = 0DH; WM_GETTEXTLENGTH = 0EH; WM_PAINT = 0FH; WM_CLOSE = 010H; WM_QUERYENDSESSION = 011H; WM_QUIT = 012H; WM_QUERYOPEN = 013H; WM_ERASEBKGND = 014H; WM_SYSCOLORCHANGE = 015H; WM_ENDSESSION = 016H; WM_SHOWWINDOW = 018H; WM_CTLCOLOR = 019H; WM_WININICHANGE = 01AH; WM_DEVMODECHANGE = 01BH; WM_ACTIVATEAPP = 01CH; WM_FONTCHANGE = 01DH; WM_TIMECHANGE = 01EH; WM_CANCELMODE = 01FH; WM_SETCURSOR = 020H; WM_MOUSEACTIVATE = 021H; WM_CHILDACTIVATE = 022H; WM_QUEUESYNC = 023H; WM_GETMINMAXINFO = 024H; WM_PAINTICON = 026H; WM_ICONERASEBKGND = 027H; WM_NEXTDLGCTL = 028H; WM_SPOOLERSTATUS = 02AH; WM_DRAWITEM = 02BH; WM_MEASUREITEM = 02CH; WM_DELETEITEM = 02DH; WM_VKEYTOITEM = 02EH; WM_CHARTOITEM = 02FH; WM_SETFONT = 030H; WM_GETFONT = 031H; WM_QUERYDRAGICON = 037H; WM_COMPAREITEM = 039H; WM_COMPACTING = 041H; WM_NCCREATE = 081H; WM_NCDESTROY = 082H; WM_NCCALCSIZE = 083H; WM_NCHITTEST = 084H; WM_NCPAINT = 085H; WM_NCACTIVATE = 086H; WM_GETDLGCODE = 087H; WM_NCMOUSEMOVE = 0A0H; WM_NCLBUTTONDOWN = 0A1H; WM_NCLBUTTONUP = 0A2H; WM_NCLBUTTONDBLCLK = 0A3H; WM_NCRBUTTONDOWN = 0A4H; WM_NCRBUTTONUP = 0A5H; WM_NCRBUTTONDBLCLK = 0A6H; WM_NCMBUTTONDOWN = 0A7H; WM_NCMBUTTONUP = 0A8H; WM_NCMBUTTONDBLCLK = 0A9H; WM_KEYFIRST = 0100H; WM_KEYDOWN = 0100H; WM_KEYUP = 0101H; WM_CHAR = 0102H; WM_DEADCHAR = 0103H; WM_SYSKEYDOWN = 0104H; WM_SYSKEYUP = 0105H; WM_SYSCHAR = 0106H; WM_SYSDEADCHAR = 0107H; WM_KEYLAST = 0108H; WM_INITDIALOG = 0110H; WM_COMMAND = 0111H; WM_SYSCOMMAND = 0112H; WM_TIMER = 0113H; WM_HSCROLL = 0114H; WM_VSCROLL = 0115H; WM_INITMENU = 0116H; WM_INITMENUPOPUP = 0117H; WM_MENUSELECT = 011FH; WM_MENUCHAR = 0120H; WM_ENTERIDLE = 0121H; WM_MOUSEFIRST = 0200H; WM_MOUSEMOVE = 0200H; WM_LBUTTONDOWN = 0201H; WM_LBUTTONUP = 0202H; WM_LBUTTONDBLCLK = 0203H; WM_RBUTTONDOWN = 0204H; WM_RBUTTONUP = 0205H; WM_RBUTTONDBLCLK = 0206H; WM_MBUTTONDOWN = 0207H; WM_MBUTTONUP = 0208H; WM_MBUTTONDBLCLK = 0209H; WM_MOUSELAST = 0209H; WM_PARENTNOTIFY = 0210H; WM_MDICREATE = 0220H; WM_MDIDESTROY = 0221H; WM_MDIACTIVATE = 0222H; WM_MDIRESTORE = 0223H; WM_MDINEXT = 0224H; WM_MDIMAXIMIZE = 0225H; WM_MDITILE = 0226H; WM_MDICASCADE = 0227H; WM_MDIICONARRANGE = 0228H; WM_MDIGETACTIVE = 0229H; WM_MDISETMENU = 0230H; WM_CUT = 0300H; WM_COPY = 0301H; WM_PASTE = 0302H; WM_CLEAR = 0303H; WM_UNDO = 0304H; WM_RENDERFORMAT = 0305H; WM_RENDERALLFORMATS= 0306H; WM_DESTROYCLIPBOARD= 0307H; WM_DRAWCLIPBOARD = 0308H; WM_PAINTCLIPBOARD = 0309H; WM_VSCROLLCLIPBOARD= 030AH; WM_SIZECLIPBOARD = 030BH; WM_ASKCBFORMATNAME = 030CH; WM_CHANGECBCHAIN = 030DH; WM_HSCROLLCLIPBOARD= 030EH; WM_QUERYNEWPALETTE = 030FH; WM_PALETTEISCHANGING = 0310H; WM_PALETTECHANGED = 0311H; WM_USER = 0400H; ST_BEGINSWP = 0; ST_ENDSWP = 1; HTERROR = -2; HTTRANSPARENT = -1; HTNOWHERE = 0; HTCLIENT = 1; HTCAPTION = 2; HTSYSMENU = 3; HTGROWBOX = 4; HTSIZE = HTGROWBOX; HTMENU = 5; HTHSCROLL = 6; HTVSCROLL = 7; HTREDUCE = 8; HTZOOM = 9; HTLEFT = 10; HTRIGHT = 11; HTTOP = 12; HTTOPLEFT = 13; HTTOPRIGHT = 14; HTBOTTOM = 15; HTBOTTOMLEFT = 16; HTBOTTOMRIGHT = 17; HTSIZEFIRST = HTLEFT; HTSIZELAST = HTBOTTOMRIGHT; MA_ACTIVATE = 1; MA_ACTIVATEANDEAT = 2; MA_NOACTIVATE = 3; PROCEDURE RegisterWindowMessage(_:ARRAY OF CHAR) : CARDINAL; CONST SIZENORMAL = 0; SIZEICONIC = 1; SIZEFULLSCREEN = 2; SIZEZOOMSHOW = 3; SIZEZOOMHIDE = 4; MK_LBUTTON = 01H; MK_RBUTTON = 02H; MK_SHIFT = 04H; MK_CONTROL = 08H; MK_MBUTTON = 010H; WS_OVERLAPPED = 00H; WS_POPUP = 080000000H; WS_CHILD = 040000000H; WS_MINIMIZE = 020000000H; WS_VISIBLE = 010000000H; WS_DISABLED = 08000000H; WS_CLIPSIBLINGS = 04000000H; WS_CLIPCHILDREN = 02000000H; WS_MAXIMIZE = 01000000H; WS_CAPTION = 0C00000H; WS_BORDER = 0800000H; WS_DLGFRAME = 0400000H; WS_VSCROLL = 0200000H; WS_HSCROLL = 0100000H; WS_SYSMENU = 080000H; WS_THICKFRAME = 040000H; WS_GROUP = 020000H; WS_TABSTOP = 010000H; WS_MINIMIZEBOX = 020000H; WS_MAXIMIZEBOX = 010000H; WS_TILED = WS_OVERLAPPED; WS_ICONIC = WS_MINIMIZE; WS_SIZEBOX = WS_THICKFRAME; WS_OVERLAPPEDWINDOW = 0CF0000H; (* WS_OVERLAPPED OR WS_CAPTION OR WS_SYSMENU OR WS_THICKFRAME OR WS_MINIMIZEBOX OR WS_MAXIMIZEBOX; *) WS_POPUPWINDOW = 080880000H; (* WS_POPUP OR WS_BORDER OR WS_SYSMENU; *) WS_CHILDWINDOW = WS_CHILD; WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW; WS_EX_DLGMODALFRAME = 01H; WS_EX_NOPARENTNOTIFY = 04H; CS_VREDRAW = 01H; CS_HREDRAW = 02H; CS_KEYCVTWINDOW = 04H; CS_DBLCLKS = 08H; CS_OWNDC = 020H; CS_CLASSDC = 040H; CS_PARENTDC = 080H; CS_NOKEYCVT = 0100H; CS_NOCLOSE = 0200H; CS_SAVEBITS = 0800H; CS_BYTEALIGNCLIENT = 01000H; CS_BYTEALIGNWINDOW = 02000H; CS_GLOBALCLASS = 04000H; CF_TEXT = 1; CF_BITMAP = 2; CF_METAFILEPICT = 3; CF_SYLK = 4; CF_DIF = 5; CF_TIFF = 6; CF_OEMTEXT = 7; CF_DIB = 8; CF_PALETTE = 9; CF_OWNERDISPLAY = 080H; CF_DSPTEXT = 081H; CF_DSPBITMAP = 082H; CF_DSPMETAFILEPICT = 083H; CF_PRIVATEFIRST = 0200H; CF_PRIVATELAST = 02FFH; CF_GDIOBJFIRST = 0300H; CF_GDIOBJLAST = 03FFH; TYPE PAINTSTRUCT = RECORD hdc : HDC; fErase : BOOL; rcPaint : RECT; fRestore : BOOL; fIncUpdate : BOOL; rgbReserved : ARRAY [0..15] OF SHORTCARD; END; LPPAINTSTRUCT = POINTER TO PAINTSTRUCT; CREATESTRUCT = RECORD lpCreateParams : LPSTR; hInstance : HANDLE; hMenu : HANDLE; hwndParent : HWND; cy : INTEGER; cx : INTEGER; y : INTEGER; x : INTEGER; style : LONGINT; lpszName : LPSTR; lpszClass : LPSTR; dwExStyle : LONGCARD; END; LPCREATESTRUCT = POINTER TO CREATESTRUCT; CONST ODT_MENU = 1; ODT_LISTBOX = 2; ODT_COMBOBOX = 3; ODT_BUTTON = 4; ODA_DRAWENTIRE = 0; ODA_SELECT = 1; ODA_FOCUS = 2; ODS_SELECTED = 0; ODS_GRAYED = 1; ODS_DISABLED = 2; ODS_CHECKED = 3; ODS_FOCUS = 4; (* ODA_DRAWENTIRE = 01H; ODA_SELECT = 02H; ODA_FOCUS = 04H; ODS_SELECTED = 01H; ODS_GRAYED = 02H; ODS_DISABLED = 04H; ODS_CHECKED = 08H; ODS_FOCUS = 010H; *) TYPE MEASUREITEMSTRUCT = RECORD CtlType : CARDINAL; CtlID : CARDINAL; itemID : CARDINAL; itemWidth : CARDINAL; itemHeight : CARDINAL; itemData : LONGCARD; END; LPMEASUREITEMSTRUCT = POINTER TO MEASUREITEMSTRUCT; DRAWITEMSTRUCT = RECORD CtlType : CARDINAL; CtlID : CARDINAL; itemID : CARDINAL; itemAction : BITSET; itemState : BITSET; hwndItem : HWND; hDC : HDC; rcItem : RECT; itemData : LONGCARD; END; LPDRAWITEMSTRUCT = POINTER TO DRAWITEMSTRUCT; DELETEITEMSTRUCT = RECORD CtlType : CARDINAL; CtlID : CARDINAL; itemID : CARDINAL; hwndItem : HWND; itemData : LONGCARD; END; LPDELETEITEMSTRUCT = POINTER TO DELETEITEMSTRUCT; COMPAREITEMSTRUCT = RECORD CtlType : CARDINAL; CtlID : CARDINAL; hwndItem : HWND; itemID1 : CARDINAL; itemData1 : LONGCARD; itemID2 : CARDINAL; itemData2 : LONGCARD; END; LPCOMPAREITEMSTRUCT = POINTER TO COMPAREITEMSTRUCT; PROCEDURE GetMessage(VAR _:MSG; _:HWND; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE TranslateMessage(VAR _:MSG) : BOOL; PROCEDURE DispatchMessage(VAR _:MSG) : LONGINT; PROCEDURE PeekMessage(VAR _:MSG; _:HWND; _:CARDINAL; _:CARDINAL; _:CARDINAL) : BOOL; CONST PM_NOREMOVE = 00H; PM_REMOVE = 01H; PM_NOYIELD = 02H; PROCEDURE lstrcmp( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): INTEGER; PROCEDURE lstrcmpi( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): INTEGER; PROCEDURE lstrcpy( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): LPSTR; PROCEDURE lstrcat( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): LPSTR; PROCEDURE lstrlen( _:ARRAY OF CHAR ): INTEGER; PROCEDURE _lopen( _:ARRAY OF CHAR; _:INTEGER ): INTEGER; PROCEDURE _lclose( _:INTEGER ): INTEGER; PROCEDURE _lcreat( _:ARRAY OF CHAR; _:INTEGER ): INTEGER; PROCEDURE _llseek( _:INTEGER; _:LONGINT; _:INTEGER ): LONGINT; PROCEDURE _lread( _:INTEGER; _:ARRAY OF BYTE; _:INTEGER ): WORD; PROCEDURE _lwrite( _:INTEGER; _:ARRAY OF BYTE; _:INTEGER ): WORD; CONST READ = 0; (* Flags for _lopen *) WRITE = 1; READ_WRITE = 2; PROCEDURE ExitWindows(dwReserved : LONGCARD; wReturnCode : CARDINAL) : BOOL; PROCEDURE SwapMouseButton(_:BOOL) : BOOL; PROCEDURE GetMessagePos() : LONGCARD; PROCEDURE GetMessageTime() : LONGINT; PROCEDURE GetSysModalWindow() : HWND; PROCEDURE SetSysModalWindow(_:HWND) : HWND; PROCEDURE SendMessage(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE PostMessage(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : BOOL; PROCEDURE PostAppMessage(_:HANDLE; _:CARDINAL; _:CARDINAL; _:LONGINT) : BOOL; PROCEDURE ReplyMessage(_:LONGINT); PROCEDURE WaitMessage(); PROCEDURE DefWindowProc(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE PostQuitMessage(_:INTEGER); PROCEDURE CallWindowProc(_:FARPROC; _:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE InSendMessage() : BOOL; PROCEDURE GetDoubleClickTime() : CARDINAL; PROCEDURE SetDoubleClickTime(_:CARDINAL); PROCEDURE RegisterClass(VAR _:WNDCLASS) : BOOL; PROCEDURE UnregisterClass(_:ARRAY OF CHAR; _:HANDLE) : BOOL; PROCEDURE GetClassInfo(_:HANDLE; _:ARRAY OF CHAR; VAR _:WNDCLASS) : BOOL; PROCEDURE SetMessageQueue(_:INTEGER) : BOOL; CONST CW_USEDEFAULT = MIN(INTEGER); PROCEDURE CreateWindow(_:FarADDRESS; _:ARRAY OF CHAR; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; _:HMENU; _:HANDLE; _:FarADDRESS) : HWND; PROCEDURE CreateWindowEx(_:LONGCARD; _:FarADDRESS; _:ARRAY OF CHAR; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; _:HMENU; _:HANDLE; _:ARRAY OF CHAR) : HWND; PROCEDURE IsWindow(_:HWND) : BOOL; PROCEDURE IsChild(_:HWND; _:HWND) : BOOL; PROCEDURE DestroyWindow(_:HWND) : BOOL; PROCEDURE ShowWindow(_:HWND; _:INTEGER) : BOOL; PROCEDURE FlashWindow(_:HWND; _:BOOL) : BOOL; PROCEDURE ShowOwnedPopups(_:HWND; _:BOOL); PROCEDURE OpenIcon(_:HWND) : BOOL; PROCEDURE CloseWindow(_:HWND); PROCEDURE MoveWindow(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:BOOL); PROCEDURE SetWindowPos(_:HWND; _:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:CARDINAL); PROCEDURE BeginDeferWindowPos(nNumWindows : INTEGER) : HANDLE; PROCEDURE DeferWindowPos(hWinPosInfo : HANDLE; hWnd : HWND; hWndInsertAfter : HWND; x : INTEGER; y : INTEGER; cx : INTEGER; cy : INTEGER; wFlags : CARDINAL) : HANDLE; PROCEDURE EndDeferWindowPos(hWinPosInfo : HANDLE); PROCEDURE IsWindowVisible(_:HWND) : BOOL; PROCEDURE IsIconic(_:HWND) : BOOL; PROCEDURE AnyPopup() : BOOL; PROCEDURE BringWindowToTop(_:HWND); PROCEDURE IsZoomed(_:HWND) : BOOL; CONST SWP_NOSIZE = 01H; SWP_NOMOVE = 02H; SWP_NOZORDER = 04H; SWP_NOREDRAW = 08H; SWP_NOACTIVATE = 010H; SWP_DRAWFRAME = 020H; SWP_SHOWWINDOW = 040H; SWP_HIDEWINDOW = 080H; SWP_NOCOPYBITS = 0100H; SWP_NOREPOSITION = 0200H; PROCEDURE CreateDialog(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC) : HWND; PROCEDURE CreateDialogIndirect(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC) : HWND; PROCEDURE CreateDialogParam(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC; _:LONGINT) : HWND; PROCEDURE CreateDialogIndirectParam(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC; _:LONGINT) : HWND; PROCEDURE DialogBox(_:HANDLE; _:FarADDRESS; _:HWND; _:FARPROC) : INTEGER; PROCEDURE DialogBoxIndirect(_:HANDLE; _:HANDLE; _:HWND; _:FARPROC) : INTEGER; PROCEDURE DialogBoxParam(_:HANDLE; _:FarADDRESS; _:HWND; _:FARPROC; _:LONGINT) : INTEGER; PROCEDURE DialogBoxIndirectParam(_:HANDLE; _:HANDLE; _:HWND; _:FARPROC; _:LONGINT) : INTEGER; PROCEDURE EndDialog(_:HWND; _:INTEGER); PROCEDURE GetDlgItem(_:HWND; _:INTEGER) : HWND; PROCEDURE SetDlgItemInt(_:HWND; _:INTEGER; _:CARDINAL; _:BOOL); PROCEDURE GetDlgItemInt(_:HWND; _:INTEGER; VAR _:BOOL; _:BOOL) : CARDINAL; PROCEDURE SetDlgItemText(_:HWND; _:INTEGER; _:ARRAY OF CHAR); PROCEDURE GetDlgItemText(_:HWND; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE CheckDlgButton(_:HWND; _:INTEGER; _:CARDINAL); PROCEDURE CheckRadioButton(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER); PROCEDURE IsDlgButtonChecked(_:HWND; _:INTEGER) : CARDINAL; PROCEDURE SendDlgItemMessage(_:HWND; _:INTEGER; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE GetNextDlgGroupItem(_:HWND; _:HWND; _:BOOL) : HWND; PROCEDURE GetNextDlgTabItem(_:HWND; _:HWND; _:BOOL) : HWND; PROCEDURE GetDlgCtrlID(_:HWND) : INTEGER; PROCEDURE GetDialogBaseUnits() : LONGINT; PROCEDURE DefDlgProc(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; CONST DLGWINDOWEXTRA = 30; PROCEDURE CallMsgFilter(VAR _:MSG; _:INTEGER) : BOOL; PROCEDURE OpenClipboard(_:HWND) : BOOL; PROCEDURE CloseClipboard() : BOOL; PROCEDURE GetClipboardOwner() : HWND; PROCEDURE SetClipboardViewer(_:HWND) : HWND; PROCEDURE GetClipboardViewer() : HWND; PROCEDURE ChangeClipboardChain(_:HWND; _:HWND) : BOOL; PROCEDURE SetClipboardData(_:CARDINAL; _:HANDLE) : HANDLE; PROCEDURE GetClipboardData(_:CARDINAL) : HANDLE; PROCEDURE RegisterClipboardFormat(_:ARRAY OF CHAR) : CARDINAL; PROCEDURE CountClipboardFormats() : INTEGER; PROCEDURE EnumClipboardFormats(_:CARDINAL) : CARDINAL; PROCEDURE GetClipboardFormatName(_:CARDINAL; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE EmptyClipboard() : BOOL; PROCEDURE IsClipboardFormatAvailable(_:CARDINAL) : BOOL; PROCEDURE GetPriorityClipboardFormat(VAR _:CARDINAL; _:INTEGER) : INTEGER; PROCEDURE SetFocus(_:HWND) : HWND; PROCEDURE GetFocus() : HWND; PROCEDURE GetActiveWindow() : HWND; PROCEDURE GetKeyState(_:INTEGER) : INTEGER; PROCEDURE GetAsyncKeyState(_:INTEGER) : INTEGER; PROCEDURE GetKeyboardState(VAR _:SHORTCARD); PROCEDURE SetKeyboardState(VAR _:SHORTCARD); PROCEDURE EnableHardwareInput(_:BOOL) : BOOL; PROCEDURE GetInputState() : BOOL; PROCEDURE GetCapture() : HWND; PROCEDURE SetCapture(_:HWND) : HWND; PROCEDURE ReleaseCapture(); PROCEDURE SetTimer(_:HWND; _:INTEGER; _:CARDINAL; _:FARPROC) : CARDINAL; PROCEDURE KillTimer(_:HWND; _:INTEGER) : BOOL; PROCEDURE EnableWindow(_:HWND; _:BOOL) : BOOL; PROCEDURE IsWindowEnabled(_:HWND) : BOOL; PROCEDURE LoadAccelerators(_:HANDLE; _:ARRAY OF CHAR) : HANDLE; PROCEDURE TranslateAccelerator(_:HWND; _:HANDLE; VAR _:MSG) : INTEGER; CONST SM_CXSCREEN = 0; SM_CYSCREEN = 1; SM_CXVSCROLL = 2; SM_CYHSCROLL = 3; SM_CYCAPTION = 4; SM_CXBORDER = 5; SM_CYBORDER = 6; SM_CXDLGFRAME = 7; SM_CYDLGFRAME = 8; SM_CYVTHUMB = 9; SM_CXHTHUMB = 10; SM_CXICON = 11; SM_CYICON = 12; SM_CXCURSOR = 13; SM_CYCURSOR = 14; SM_CYMENU = 15; SM_CXFULLSCREEN = 16; SM_CYFULLSCREEN = 17; SM_CYKANJIWINDOW = 18; SM_MOUSEPRESENT = 19; SM_CYVSCROLL = 20; SM_CXHSCROLL = 21; SM_DEBUG = 22; SM_SWAPBUTTON = 23; SM_RESERVED1 = 24; SM_RESERVED2 = 25; SM_RESERVED3 = 26; SM_RESERVED4 = 27; SM_CXMIN = 28; SM_CYMIN = 29; SM_CXSIZE = 30; SM_CYSIZE = 31; SM_CXFRAME = 32; SM_CYFRAME = 33; SM_CXMINTRACK = 34; SM_CYMINTRACK = 35; SM_CMETRICS = 36; PROCEDURE GetSystemMetrics(_:INTEGER) : INTEGER; PROCEDURE LoadMenu(_:HANDLE; _:ARRAY OF CHAR) : HMENU; PROCEDURE LoadMenuIndirect(_:ARRAY OF CHAR) : HMENU; PROCEDURE GetMenu(_:HWND) : HMENU; PROCEDURE SetMenu(_:HWND; _:HMENU) : BOOL; PROCEDURE ChangeMenu(_:HMENU; _:CARDINAL; _:FarADDRESS; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE HiliteMenuItem(_:HWND; _:HMENU; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE GetMenuString(_:HMENU; _:CARDINAL; _:ARRAY OF CHAR; _:INTEGER; _:CARDINAL) : INTEGER; PROCEDURE GetMenuState(_:HMENU; _:CARDINAL; _:CARDINAL) : CARDINAL; PROCEDURE DrawMenuBar(_:HWND); PROCEDURE GetSystemMenu(_:HWND; _:BOOL) : HMENU; PROCEDURE CreateMenu() : HMENU; PROCEDURE CreatePopupMenu() : HMENU; PROCEDURE DestroyMenu(_:HMENU) : BOOL; PROCEDURE CheckMenuItem(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE EnableMenuItem(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE GetSubMenu(_:HMENU; _:INTEGER) : HMENU; PROCEDURE GetMenuItemID(_:HMENU; _:INTEGER) : CARDINAL; PROCEDURE GetMenuItemCount(_:HMENU) : CARDINAL; PROCEDURE InsertMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR) : BOOL; PROCEDURE AppendMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:FarADDRESS) : BOOL; PROCEDURE ModifyMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:FarADDRESS) : BOOL; PROCEDURE RemoveMenu(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE DeleteMenu(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL; PROCEDURE SetMenuItemBitmaps(_:HMENU; _:CARDINAL; _:CARDINAL; _:HBITMAP; _:HBITMAP) : BOOL; PROCEDURE GetMenuCheckMarkDimensions() : LONGINT; PROCEDURE TrackPopupMenu(_:HMENU; _:CARDINAL; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; VAR _:RECT) : BOOL; PROCEDURE GrayString(_:HDC; _:HBRUSH; _:FARPROC; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE UpdateWindow(_:HWND); PROCEDURE SetActiveWindow(_:HWND) : HWND; PROCEDURE BeginPaint(_:HWND; VAR _:PAINTSTRUCT) : HDC; PROCEDURE EndPaint(_:HWND; VAR _:PAINTSTRUCT); PROCEDURE GetUpdateRect(_:HWND; VAR _:RECT; _:BOOL) : BOOL; PROCEDURE GetUpdateRgn(_:HWND; _:HRGN; _:BOOL) : INTEGER; PROCEDURE ExcludeUpdateRgn(_:HDC; _:HWND) : INTEGER; PROCEDURE InvalidateRect(_:HWND; VAR _:RECT; _:BOOL); PROCEDURE ValidateRect(_:HWND; VAR _:RECT); PROCEDURE InvalidateRgn(_:HWND; _:HRGN; _:BOOL); PROCEDURE ValidateRgn(_:HWND; _:HRGN); PROCEDURE ScrollWindow(_:HWND; _:INTEGER; _:INTEGER; VAR _:RECT; VAR _:RECT); PROCEDURE ScrollDC(_:HDC; _:INTEGER; _:INTEGER; VAR _:RECT; VAR _:RECT; _:HRGN; VAR _:RECT) : BOOL; PROCEDURE SetScrollPos(_:HWND; _:INTEGER; _:INTEGER; _:BOOL) : INTEGER; PROCEDURE GetScrollPos(_:HWND; _:INTEGER) : INTEGER; PROCEDURE SetScrollRange(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:BOOL); PROCEDURE GetScrollRange(_:HWND; _:INTEGER; VAR _:INTEGER; VAR _:INTEGER); PROCEDURE ShowScrollBar(_:HWND; _:CARDINAL; _:BOOL); PROCEDURE SetProp(_:HWND; _:ARRAY OF CHAR; _:HANDLE) : BOOL; PROCEDURE GetProp(_:HWND; _:ARRAY OF CHAR) : HANDLE; PROCEDURE RemoveProp(_:HWND; _:ARRAY OF CHAR) : HANDLE; PROCEDURE EnumProps(_:HWND; _:FARPROC) : INTEGER; PROCEDURE SetWindowText(_:HWND; _:ARRAY OF CHAR); PROCEDURE GetWindowText(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE GetWindowTextLength(_:HWND) : INTEGER; PROCEDURE GetClientRect(_:HWND; VAR _:RECT); PROCEDURE GetWindowRect(_:HWND; VAR _:RECT); PROCEDURE AdjustWindowRect(VAR _:RECT; _:LONGINT; _:BOOL); PROCEDURE AdjustWindowRectEx(VAR _:RECT; _:LONGINT; _:BOOL; _:LONGCARD); CONST MB_OK = 00H; MB_OKCANCEL = 01H; MB_ABORTRETRYIGNORE = 02H; MB_YESNOCANCEL = 03H; MB_YESNO = 04H; MB_RETRYCANCEL = 05H; MB_ICONHAND = 010H; MB_ICONQUESTION = 020H; MB_ICONEXCLAMATION = 030H; MB_ICONASTERISK = 040H; MB_ICONINFORMATION = MB_ICONASTERISK; MB_ICONSTOP = MB_ICONHAND; MB_DEFBUTTON1 = 00H; MB_DEFBUTTON2 = 0100H; MB_DEFBUTTON3 = 0200H; MB_APPLMODAL = 00H; MB_SYSTEMMODAL = 01000H; MB_TASKMODAL = 02000H; MB_NOFOCUS = 08000H; MB_TYPEMASK = 0FH; MB_ICONMASK = 0F0H; MB_DEFMASK = 0F00H; MB_MODEMASK = 03000H; MB_MISCMASK = 0C000H; PROCEDURE MessageBox(_:HWND; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER; PROCEDURE MessageBeep(_:CARDINAL); PROCEDURE ShowCursor(_:BOOL) : INTEGER; PROCEDURE SetCursorPos(_:INTEGER; _:INTEGER); PROCEDURE SetCursor(_:HCURSOR) : HCURSOR; PROCEDURE GetCursorPos(VAR _:POINT); PROCEDURE ClipCursor(VAR _:RECT); PROCEDURE CreateCaret(_:HWND; _:HBITMAP; _:INTEGER; _:INTEGER); PROCEDURE GetCaretBlinkTime() : CARDINAL; PROCEDURE SetCaretBlinkTime(_:CARDINAL); PROCEDURE DestroyCaret(); PROCEDURE HideCaret(_:HWND); PROCEDURE ShowCaret(_:HWND); PROCEDURE SetCaretPos(_:INTEGER; _:INTEGER); PROCEDURE GetCaretPos(VAR _:POINT); PROCEDURE ClientToScreen(_:HWND; VAR _:POINT); PROCEDURE ScreenToClient(_:HWND; VAR _:POINT); PROCEDURE WindowFromPoint(_:POINT) : HWND; PROCEDURE ChildWindowFromPoint(_:HWND; _:POINT) : HWND; CONST CTLCOLOR_MSGBOX = 0; CTLCOLOR_EDIT = 1; CTLCOLOR_LISTBOX = 2; CTLCOLOR_BTN = 3; CTLCOLOR_DLG = 4; CTLCOLOR_SCROLLBAR = 5; CTLCOLOR_STATIC = 6; CTLCOLOR_MAX = 8; COLOR_SCROLLBAR = 0; COLOR_BACKGROUND = 1; COLOR_ACTIVECAPTION = 2; COLOR_INACTIVECAPTION = 3; COLOR_MENU = 4; COLOR_WINDOW = 5; COLOR_WINDOWFRAME = 6; COLOR_MENUTEXT = 7; COLOR_WINDOWTEXT = 8; COLOR_CAPTIONTEXT = 9; COLOR_ACTIVEBORDER = 10; COLOR_INACTIVEBORDER = 11; COLOR_APPWORKSPACE = 12; COLOR_HIGHLIGHT = 13; COLOR_HIGHLIGHTTEXT = 14; COLOR_BTNFACE = 15; COLOR_BTNSHADOW = 16; COLOR_GRAYTEXT = 17; COLOR_BTNTEXT = 18; COLOR_ENDCOLORS = COLOR_BTNTEXT; PROCEDURE GetSysColor(_:INTEGER) : LONGINT; PROCEDURE SetSysColors(_:INTEGER; VAR _:INTEGER; VAR _:LONGINT); PROCEDURE FillRgn(_:HDC; _:HRGN; _:HBRUSH) : BOOL; PROCEDURE FrameRgn(_:HDC; _:HRGN; _:HBRUSH; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE InvertRgn(_:HDC; _:HRGN) : BOOL; PROCEDURE PaintRgn(_:HDC; _:HRGN) : BOOL; PROCEDURE PtInRegion(_:HRGN; _:INTEGER; _:INTEGER) : BOOL; PROCEDURE DrawFocusRect(_:HDC; VAR _:RECT); PROCEDURE FillRect(_:HDC; VAR _:RECT; _:HBRUSH) : INTEGER; PROCEDURE FrameRect(_:HDC; VAR _:RECT; _:HBRUSH) : INTEGER; PROCEDURE InvertRect(_:HDC; VAR _:RECT); PROCEDURE SetRect(VAR _:RECT; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER); PROCEDURE SetRectEmpty(VAR _:RECT); PROCEDURE CopyRect(VAR _:RECT; VAR _:RECT) : INTEGER; PROCEDURE InflateRect(VAR _:RECT; _:INTEGER; _:INTEGER); PROCEDURE IntersectRect(VAR _:RECT; VAR _:RECT; VAR _:RECT) : INTEGER; PROCEDURE UnionRect(VAR _:RECT; VAR _:RECT; VAR _:RECT) : INTEGER; PROCEDURE OffsetRect(VAR _:RECT; _:INTEGER; _:INTEGER); PROCEDURE IsRectEmpty(VAR _:RECT) : BOOL; PROCEDURE EqualRect(VAR _:RECT; VAR _:RECT) : BOOL; PROCEDURE PtInRect(VAR _:RECT; _:POINT) : BOOL; PROCEDURE RectVisible(_:HDC; VAR _:RECT) : BOOL; PROCEDURE RectInRegion(_:HRGN; VAR _:RECT) : BOOL; PROCEDURE GetCurrentTime() : LONGCARD; PROCEDURE GetTickCount() : LONGCARD; PROCEDURE GetWindowWord(_:HWND; _:INTEGER) : CARDINAL; PROCEDURE SetWindowWord(_:HWND; _:INTEGER; _:CARDINAL) : CARDINAL; PROCEDURE GetWindowLong(_:HWND; _:INTEGER) : LONGINT; PROCEDURE SetWindowLong(_:HWND; _:INTEGER; _:LONGINT) : LONGINT; PROCEDURE GetClassWord(_:HWND; _:INTEGER) : CARDINAL; PROCEDURE SetClassWord(_:HWND; _:INTEGER; _:CARDINAL) : CARDINAL; PROCEDURE GetClassLong(_:HWND; _:INTEGER) : LONGINT; PROCEDURE SetClassLong(_:HWND; _:INTEGER; _:LONGINT) : LONGINT; PROCEDURE GetDesktopHwnd() : HWND; PROCEDURE GetDesktopWindow() : HWND; PROCEDURE GetParent(_:HWND) : HWND; PROCEDURE SetParent(_:HWND; _:HWND) : HWND; PROCEDURE EnumChildWindows(_:HWND; _:FARPROC; _:LONGINT) : BOOL; PROCEDURE FindWindow(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : HWND; PROCEDURE EnumWindows(_:FARPROC; _:LONGINT) : BOOL; PROCEDURE EnumTaskWindows(_:HANDLE; _:FARPROC; _:LONGINT) : BOOL; PROCEDURE GetClassName(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE GetTopWindow(_:HWND) : HWND; PROCEDURE GetNextWindow(_:HWND; _:CARDINAL) : HWND; PROCEDURE GetWindowTask(_:HWND) : HANDLE; PROCEDURE GetLastActivePopup(_:HWND) : HWND; CONST GW_HWNDFIRST = 0; GW_HWNDLAST = 1; GW_HWNDNEXT = 2; GW_HWNDPREV = 3; GW_OWNER = 4; GW_CHILD = 5; PROCEDURE GetWindow(_:HWND; _:CARDINAL) : HWND; PROCEDURE SetWindowsHook(_:INTEGER; _:FARPROC) : FARPROC; PROCEDURE UnhookWindowsHook(_:INTEGER; _:FARPROC) : BOOL; PROCEDURE DefHookProc(_:INTEGER; _:CARDINAL; _:LONGCARD; VAR _:FARPROC) : LONGCARD; CONST MF_INSERT = 00H; MF_CHANGE = 080H; MF_APPEND = 0100H; MF_DELETE = 0200H; MF_REMOVE = 01000H; MF_BYCOMMAND = 00H; MF_BYPOSITION = 0400H; MF_SEPARATOR = 0800H; MF_ENABLED = 00H; MF_GRAYED = 01H; MF_DISABLED = 02H; MF_UNCHECKED = 00H; MF_CHECKED = 08H; MF_USECHECKBITMAPS = 0200H; MF_STRING = 00H; MF_BITMAP = 04H; MF_OWNERDRAW = 0100H; MF_POPUP = 010H; MF_MENUBARBREAK = 020H; MF_MENUBREAK = 040H; MF_UNHILITE = 00H; MF_HILITE = 080H; MF_SYSMENU = 02000H; MF_HELP = 04000H; MF_MOUSESELECT = 08000H; TYPE MENUITEMTEMPLATEHEADER = RECORD versionNumber : CARDINAL; offset : CARDINAL; END; MENUITEMTEMPLATE = RECORD mtOption : CARDINAL; mtID : CARDINAL; mtString : LPSTR; END; CONST MF_END = 080H; SC_SIZE = 0F000H; SC_MOVE = 0F010H; SC_MINIMIZE = 0F020H; SC_MAXIMIZE = 0F030H; SC_NEXTWINDOW = 0F040H; SC_PREVWINDOW = 0F050H; SC_CLOSE = 0F060H; SC_VSCROLL = 0F070H; SC_HSCROLL = 0F080H; SC_MOUSEMENU = 0F090H; SC_KEYMENU = 0F100H; SC_ARRANGE = 0F110H; SC_RESTORE = 0F120H; SC_TASKLIST = 0F130H; SC_ICON = SC_MINIMIZE; SC_ZOOM = SC_MAXIMIZE; PROCEDURE LoadBitmap(_:HANDLE; _:FarADDRESS) : HBITMAP; PROCEDURE LoadCursor(_:HANDLE; _:FarADDRESS) : HCURSOR; PROCEDURE CreateCursor(_:HANDLE; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HCURSOR; PROCEDURE DestroyCursor(_:HCURSOR) : BOOL; CONST IDC_ARROW = LPSTR(32512); IDC_IBEAM = LPSTR(32513); IDC_WAIT = LPSTR(32514); IDC_CROSS = LPSTR(32515); IDC_UPARROW = LPSTR(32516); IDC_SIZE = LPSTR(32640); IDC_ICON = LPSTR(32641); IDC_SIZENWSE = LPSTR(32642); IDC_SIZENESW = LPSTR(32643); IDC_SIZEWE = LPSTR(32644); IDC_SIZENS = LPSTR(32645); PROCEDURE LoadIcon(_:HANDLE; _:FarADDRESS) : HICON; PROCEDURE CreateIcon(_:HANDLE; _:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HICON; PROCEDURE DestroyIcon(_:HICON) : BOOL; CONST ORD_LANGDRIVER = 1; IDI_APPLICATION = LPSTR(32512); IDI_HAND = LPSTR(32513); IDI_QUESTION = LPSTR(32514); IDI_EXCLAMATION = LPSTR(32515); IDI_ASTERISK = LPSTR(32516); PROCEDURE LoadString(_:HANDLE; _:CARDINAL; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE AddFontResource(_:ARRAY OF CHAR) : INTEGER; PROCEDURE RemoveFontResource(_:ARRAY OF CHAR) : BOOL; CONST CP_HWND = 0; CP_OPEN = 1; CP_DIRECT = 2; VK_KANA = 015H; VK_ROMAJI = 016H; VK_ZENKAKU = 017H; VK_HIRAGANA = 018H; VK_KANJI = 019H; VK_CONVERT = 01CH; VK_NONCONVERT = 01DH; VK_ACCEPT = 01EH; VK_MODECHANGE = 01FH; KNJ_START = 01H; KNJ_END = 02H; KNJ_QUERY = 03H; KNJ_LEARN_MODE = 010H; KNJ_GETMODE = 011H; KNJ_SETMODE = 012H; KNJ_CODECONVERT = 020H; KNJ_CONVERT = 021H; KNJ_NEXT = 022H; KNJ_PREVIOUS = 023H; KNJ_ACCEPT = 024H; KNJ_LEARN = 030H; KNJ_REGISTER = 031H; KNJ_REMOVE = 032H; KNJ_CHANGE_UDIC = 033H; KNJ_JIS1toJIS1KATAKANA = 014H; KNJ_JIS1toSJIS2 = 013H; KNJ_JIS1toSJIS2HIRAGANA = 015H; KNJ_JIS1toSJIS2KATAKANA = 016H; KNJ_JIS1toDEFAULT = 010H; KNJ_JIS1toSJIS2OEM = 01FH; KNJ_JIS2toSJIS2 = 023H; KNJ_SJIS2toJIS2 = 032H; KNJ_MD_ALPHA = 01H; KNJ_MD_HIRAGANA = 02H; KNJ_MD_HALF = 04H; KNJ_MD_JIS = 08H; KNJ_MD_SPECIAL = 010H; KNJ_CVT_NEXT = 01H; KNJ_CVT_PREV = 02H; KNJ_CVT_KATAKANA = 03H; KNJ_CVT_HIRAGANA = 04H; KNJ_CVT_JIS1 = 05H; KNJ_CVT_SJIS2 = 06H; KNJ_CVT_DEFAULT = 07H; KNJ_CVT_TYPED = 08H; TYPE KANJISTRUCT = RECORD fnc : INTEGER; wParam : INTEGER; lpSource : LPSTR; lpDest : LPSTR; wCount : INTEGER; lpReserved1 : LPSTR; lpReserved2 : LPSTR; END; LPKANJISTRUCT = POINTER TO KANJISTRUCT; PROCEDURE ConvertRequest(_:HWND; VAR _:KANJISTRUCT) : INTEGER; PROCEDURE SetConvertParams(_:INTEGER; _:INTEGER) : BOOL; PROCEDURE SetConvertHook(_:BOOL); PROCEDURE IsTwoByteCharPrefix(_:CHAR) : BOOL; CONST IDOK = 1; IDCANCEL = 2; IDABORT = 3; IDRETRY = 4; IDIGNORE = 5; IDYES = 6; IDNO = 7; ES_LEFT = 00H; ES_CENTER = 01H; ES_RIGHT = 02H; ES_MULTILINE = 04H; ES_UPPERCASE = 08H; ES_LOWERCASE = 010H; ES_PASSWORD = 020H; ES_AUTOVSCROLL = 040H; ES_AUTOHSCROLL = 080H; ES_NOHIDESEL = 0100H; ES_OEMCONVERT = 0400H; EN_SETFOCUS = 0100H; EN_KILLFOCUS = 0200H; EN_CHANGE = 0300H; EN_UPDATE = 0400H; EN_ERRSPACE = 0500H; EN_MAXTEXT = 0501H; EN_HSCROLL = 0601H; EN_VSCROLL = 0602H; EM_GETSEL = WM_USER+0; EM_SETSEL = WM_USER+1; EM_GETRECT = WM_USER+2; EM_SETRECT = WM_USER+3; EM_SETRECTNP = WM_USER+4; EM_SCROLL = WM_USER+5; EM_LINESCROLL = WM_USER+6; EM_GETMODIFY = WM_USER+8; EM_SETMODIFY = WM_USER+9; EM_GETLINECOUNT = WM_USER+10; EM_LINEINDEX = WM_USER+11; EM_SETHANDLE = WM_USER+12; EM_GETHANDLE = WM_USER+13; EM_GETTHUMB = WM_USER+14; EM_LINELENGTH = WM_USER+17; EM_REPLACESEL = WM_USER+18; EM_SETFONT = WM_USER+19; EM_GETLINE = WM_USER+20; EM_LIMITTEXT = WM_USER+21; EM_CANUNDO = WM_USER+22; EM_UNDO = WM_USER+23; EM_FMTLINES = WM_USER+24; EM_LINEFROMCHAR = WM_USER+25; EM_SETWORDBREAK = WM_USER+26; EM_SETTABSTOPS = WM_USER+27; EM_SETPASSWORDCHAR = WM_USER+28; EM_EMPTYUNDOBUFFER = WM_USER+29; EM_MSGMAX = WM_USER+30; BS_PUSHBUTTON = 00H; BS_DEFPUSHBUTTON = 01H; BS_CHECKBOX = 02H; BS_AUTOCHECKBOX = 03H; BS_RADIOBUTTON = 04H; BS_3STATE = 05H; BS_AUTO3STATE = 06H; BS_GROUPBOX = 07H; BS_USERBUTTON = 08H; BS_AUTORADIOBUTTON = 09H; BS_PUSHBOX = 0AH; BS_OWNERDRAW = 0BH; BS_LEFTTEXT = 020H; BN_CLICKED = 0; BN_PAINT = 1; BN_HILITE = 2; BN_UNHILITE = 3; BN_DISABLE = 4; BN_DOUBLECLICKED = 5; BM_GETCHECK = WM_USER+0; BM_SETCHECK = WM_USER+1; BM_GETSTATE = WM_USER+2; BM_SETSTATE = WM_USER+3; BM_SETSTYLE = WM_USER+4; SS_LEFT = 00H; SS_CENTER = 01H; SS_RIGHT = 02H; SS_ICON = 03H; SS_BLACKRECT = 04H; SS_GRAYRECT = 05H; SS_WHITERECT = 06H; SS_BLACKFRAME = 07H; SS_GRAYFRAME = 08H; SS_WHITEFRAME = 09H; SS_USERITEM = 0AH; SS_SIMPLE = 0BH; SS_LEFTNOWORDWRAP = 0CH; SS_NOPREFIX = 080H; PROCEDURE IsDialogMessage(_:HWND; VAR _:MSG) : BOOL; PROCEDURE MapDialogRect(_:HWND; VAR _:RECT); PROCEDURE DlgDirList(_:HWND; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; _:CARDINAL) : INTEGER; PROCEDURE DlgDirSelect(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : BOOL; PROCEDURE DlgDirListComboBox(_:HWND; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; _:CARDINAL) : INTEGER; PROCEDURE DlgDirSelectComboBox(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : BOOL; CONST DS_ABSALIGN = 01H; DS_SYSMODAL = 02H; DS_LOCALEDIT = 020H; DS_SETFONT = 040H; DS_MODALFRAME = 080H; DS_NOIDLEMSG = 0100H; DM_GETDEFID = WM_USER+0; DM_SETDEFID = WM_USER+1; DC_HASDEFID = 0534BH; DLGC_WANTARROWS = 01H; DLGC_WANTTAB = 02H; DLGC_WANTALLKEYS = 04H; DLGC_WANTMESSAGE = 04H; DLGC_HASSETSEL = 08H; DLGC_DEFPUSHBUTTON = 010H; DLGC_UNDEFPUSHBUTTON = 020H; DLGC_RADIOBUTTON = 040H; DLGC_WANTCHARS = 080H; DLGC_STATIC = 0100H; DLGC_BUTTON = 02000H; LB_CTLCODE = 0; LB_OKAY = 0; LB_ERR = -1; LB_ERRSPACE = -2; LBN_ERRSPACE = -2; LBN_SELCHANGE = 1; LBN_DBLCLK = 2; LBN_SELCANCEL = 3; LBN_SETFOCUS = 4; LBN_KILLFOCUS = 5; LB_ADDSTRING = WM_USER+1; LB_INSERTSTRING = WM_USER+2; LB_DELETESTRING = WM_USER+3; LB_RESETCONTENT = WM_USER+5; LB_SETSEL = WM_USER+6; LB_SETCURSEL = WM_USER+7; LB_GETSEL = WM_USER+8; LB_GETCURSEL = WM_USER+9; LB_GETTEXT = WM_USER+10; LB_GETTEXTLEN = WM_USER+11; LB_GETCOUNT = WM_USER+12; LB_SELECTSTRING = WM_USER+13; LB_DIR = WM_USER+14; LB_GETTOPINDEX = WM_USER+15; LB_FINDSTRING = WM_USER+16; LB_GETSELCOUNT = WM_USER+17; LB_GETSELITEMS = WM_USER+18; LB_SETTABSTOPS = WM_USER+19; LB_GETHORIZONTALEXTENT = WM_USER+20; LB_SETHORIZONTALEXTENT = WM_USER+21; LB_SETCOLUMNWIDTH = WM_USER+22; LB_SETTOPINDEX = WM_USER+24; LB_GETITEMRECT = WM_USER+25; LB_GETITEMDATA = WM_USER+26; LB_SETITEMDATA = WM_USER+27; LB_SELITEMRANGE = WM_USER+28; LB_MSGMAX = WM_USER+33; LBS_NOTIFY = 01H; LBS_SORT = 02H; LBS_NOREDRAW = 04H; LBS_MULTIPLESEL = 08H; LBS_OWNERDRAWFIXED = 010H; LBS_OWNERDRAWVARIABLE = 020H; LBS_HASSTRINGS = 040H; LBS_USETABSTOPS = 080H; LBS_NOINTEGRALHEIGHT = 0100H; LBS_MULTICOLUMN = 0200H; LBS_WANTKEYBOARDINPUT = 0400H; LBS_EXTENDEDSEL = 0800H; LBS_STANDARD = 0A00003H; (*LBS_NOTIFY OR LBS_SORT OR WS_VSCROLL OR WS_BORDER;*) CB_OKAY = 0; CB_ERR = -1; CB_ERRSPACE = -2; CBN_ERRSPACE = -1; CBN_SELCHANGE = 1; CBN_DBLCLK = 2; CBN_SETFOCUS = 3; CBN_KILLFOCUS = 4; CBN_EDITCHANGE = 5; CBN_EDITUPDATE = 6; CBN_DROPDOWN = 7; CBS_SIMPLE = 01H; CBS_DROPDOWN = 02H; CBS_DROPDOWNLIST = 03H; CBS_OWNERDRAWFIXED = 010H; CBS_OWNERDRAWVARIABLE = 020H; CBS_AUTOHSCROLL = 040H; CBS_OEMCONVERT = 080H; CBS_SORT = 0100H; CBS_HASSTRINGS = 0200H; CBS_NOINTEGRALHEIGHT = 0400H; CB_GETEDITSEL = WM_USER+0; CB_LIMITTEXT = WM_USER+1; CB_SETEDITSEL = WM_USER+2; CB_ADDSTRING = WM_USER+3; CB_DELETESTRING = WM_USER+4; CB_DIR = WM_USER+5; CB_GETCOUNT = WM_USER+6; CB_GETCURSEL = WM_USER+7; CB_GETLBTEXT = WM_USER+8; CB_GETLBTEXTLEN = WM_USER+9; CB_INSERTSTRING = WM_USER+10; CB_RESETCONTENT = WM_USER+11; CB_FINDSTRING = WM_USER+12; CB_SELECTSTRING = WM_USER+13; CB_SETCURSEL = WM_USER+14; CB_SHOWDROPDOWN = WM_USER+15; CB_GETITEMDATA = WM_USER+16; CB_SETITEMDATA = WM_USER+17; CB_GETDROPPEDCONTROLRECT = WM_USER+18; CB_MSGMAX = WM_USER+19; SBS_HORZ = 00H; SBS_VERT = 01H; SBS_TOPALIGN = 02H; SBS_LEFTALIGN = 02H; SBS_BOTTOMALIGN = 04H; SBS_RIGHTALIGN = 04H; SBS_SIZEBOXTOPLEFTALIGN = 02H; SBS_SIZEBOXBOTTOMRIGHTALIGN = 04H; SBS_SIZEBOX = 08H; PROCEDURE OpenSound() : INTEGER; PROCEDURE CloseSound(); PROCEDURE SetVoiceQueueSize(_:INTEGER; _:INTEGER) : INTEGER; PROCEDURE SetVoiceNote(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE SetVoiceAccent(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE SetVoiceEnvelope(_:INTEGER; _:INTEGER; _:INTEGER) : INTEGER; PROCEDURE SetSoundNoise(_:INTEGER; _:INTEGER) : INTEGER; PROCEDURE SetVoiceSound(_:INTEGER; _:LONGINT; _:INTEGER) : INTEGER; PROCEDURE StartSound() : INTEGER; PROCEDURE StopSound() : INTEGER; PROCEDURE WaitSoundState(_:INTEGER) : INTEGER; PROCEDURE SyncAllVoices() : INTEGER; PROCEDURE CountVoiceNotes(_:INTEGER) : INTEGER; PROCEDURE GetThresholdEvent() : LPINT; PROCEDURE GetThresholdStatus() : INTEGER; PROCEDURE SetVoiceThreshold(_:INTEGER; _:INTEGER) : INTEGER; CONST S_QUEUEEMPTY = 0; S_THRESHOLD = 1; S_ALLTHRESHOLD = 2; S_NORMAL = 0; S_LEGATO = 1; S_STACCATO = 2; S_PERIOD512 = 0; S_PERIOD1024 = 1; S_PERIOD2048 = 2; S_PERIODVOICE = 3; S_WHITE512 = 4; S_WHITE1024 = 5; S_WHITE2048 = 6; S_WHITEVOICE = 7; S_SERDVNA = -1; S_SEROFM = -2; S_SERMACT = -3; S_SERQFUL = -4; S_SERBDNT = -5; S_SERDLN = -6; S_SERDCC = -7; S_SERDTP = -8; S_SERDVL = -9; S_SERDMD = -10; S_SERDSH = -11; S_SERDPT = -12; S_SERDFQ = -13; S_SERDDR = -14; S_SERDSR = -15; S_SERDST = -16; NOPARITY = 0; ODDPARITY = 1; EVENPARITY = 2; MARKPARITY = 3; SPACEPARITY = 4; ONESTOPBIT = 0; ONE5STOPBITS = 1; TWOSTOPBITS = 2; IGNORE = 0; INFINITE = 0FFFFH; CE_RXOVER = 01H; CE_OVERRUN = 02H; CE_RXPARITY = 04H; CE_FRAME = 08H; CE_BREAK = 010H; CE_CTSTO = 020H; CE_DSRTO = 040H; CE_RLSDTO = 080H; CE_TXFULL = 0100H; CE_PTO = 0200H; CE_IOE = 0400H; CE_DNS = 0800H; CE_OOP = 01000H; CE_MODE = 08000H; IE_BADID = -1; IE_OPEN = -2; IE_NOPEN = -3; IE_MEMORY = -4; IE_DEFAULT = -5; IE_HARDWARE = -10; IE_BYTESIZE = -11; IE_BAUDRATE = -12; EV_RXCHAR = 01H; EV_RXFLAG = 02H; EV_TXEMPTY = 04H; EV_CTS = 08H; EV_DSR = 010H; EV_RLSD = 020H; EV_BREAK = 040H; EV_ERR = 080H; EV_RING = 0100H; EV_PERR = 0200H; SETXOFF = 1; SETXON = 2; SETRTS = 3; CLRRTS = 4; SETDTR = 5; CLRDTR = 6; RESETDEV = 7; LPTx = 080H; TYPE DCBBits = (fBinary,fRtsDisable,fPartiy,fOutxCtsFlow,fOutxDsrFlow, fDummy6,fDummy7,fDtrDisable,fOutX,fInX,fPeChar,fNull, fChEvt,fDtrFlow,fRtsFlow,fDummy15); DCBBitSet = SET OF DCBBits; DCB = RECORD Id : SHORTCARD; BaudRate : CARDINAL; ByteSize : SHORTCARD; Parity : SHORTCARD; StopBits : SHORTCARD; RlsTimeout : CARDINAL; CtsTimeout : CARDINAL; DsrTimeout : CARDINAL; fBits : DCBBitSet; XonChar : CHAR; XoffChar : CHAR; XonLim : CARDINAL; XoffLim : CARDINAL; PeChar : CHAR; EofChar : CHAR; EvtChar : CHAR; TxDelay : CARDINAL; END; (*DCB*) COMSTAT = RECORD fCtsHold : SHORTCARD; (* bit fields: fCtsHold:1, fDsrHold:1, fRlsdHold:1, fXoffHold:1, fXoffSent:1, fEof:1, fTxim:1 *) cbInQue : CARDINAL; cbOutQue : CARDINAL; END; PROCEDURE OpenComm(_:ARRAY OF CHAR; _:CARDINAL; _:CARDINAL) : INTEGER; PROCEDURE SetCommState(VAR _:DCB) : INTEGER; PROCEDURE GetCommState(_:INTEGER; VAR _:DCB) : INTEGER; PROCEDURE ReadComm(_:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE UngetCommChar(_:INTEGER; _:CHAR) : INTEGER; PROCEDURE WriteComm(_:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER; PROCEDURE CloseComm(_:INTEGER) : INTEGER; PROCEDURE GetCommError(_:INTEGER; VAR _:COMSTAT) : INTEGER; PROCEDURE BuildCommDCB(_:ARRAY OF CHAR; VAR _:DCB) : INTEGER; PROCEDURE TransmitCommChar(_:INTEGER; _:CHAR) : INTEGER; PROCEDURE SetCommEventMask(_:INTEGER; _:CARDINAL) : ADDRESS; PROCEDURE GetCommEventMask(_:INTEGER; _:INTEGER) : CARDINAL; PROCEDURE SetCommBreak(_:INTEGER) : INTEGER; PROCEDURE ClearCommBreak(_:INTEGER) : INTEGER; PROCEDURE FlushComm(_:INTEGER; _:INTEGER) : INTEGER; PROCEDURE EscapeCommFunction(_:INTEGER; _:INTEGER) : INTEGER; TYPE MDICREATESTRUCT = RECORD szClass : LPSTR; szTitle : LPSTR; hOwner : CARDINAL; x : INTEGER; y : INTEGER; cx : INTEGER; cy : INTEGER; style : LONGINT; lParam : LONGINT; END; LPMDICREATESTRUCT = POINTER TO MDICREATESTRUCT; CLIENTCREATESTRUCT = RECORD hWindowMenu : CARDINAL; idFirstChild : CARDINAL; END; LPCLIENTCREATESTRUCT = POINTER TO CLIENTCREATESTRUCT; PROCEDURE DefFrameProc(_:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE DefMDIChildProc(_:CARDINAL; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT; PROCEDURE TranslateMDISysAccel(_:CARDINAL; VAR _:MSG) : INTEGER; PROCEDURE ArrangeIconicWindows(_:CARDINAL) : CARDINAL; CONST HELP_CONTEXT = 01H; HELP_QUIT = 02H; HELP_INDEX = 03H; HELP_HELPONHELP = 04H; HELP_SETINDEX = 05H; HELP_KEY = 0101H; HELP_MULTIKEY = 0201H; PROCEDURE WinHelp(hwndMain : CARDINAL; lpszHelp : ARRAY OF CHAR; usCommand : CARDINAL; ulData : LONGCARD) : INTEGER; TYPE MULTIKEYHELP = RECORD mkSize : CARDINAL; mkKeylist : SHORTCARD; szKeyphrase : ARRAY [0..0] OF SHORTCARD; END; (*# save,call(c_conv=>off,reg_param=>(),near_call=>off),name(prefix=>none)*) PROCEDURE ProfInsChk() : INTEGER; PROCEDURE ProfSetup(_:INTEGER; _:INTEGER); PROCEDURE ProfSampRate(_:INTEGER; _:INTEGER); PROCEDURE ProfStart(); PROCEDURE ProfStop(); PROCEDURE ProfClear(); PROCEDURE ProfFlush(); PROCEDURE ProfFinish(); (*# restore *) PROCEDURE GlobalDosAlloc(_:LONGCARD):LONGCARD; PROCEDURE GlobalDosFree(_:CARDINAL):CARDINAL; PROCEDURE FatalAppExit(_:CARDINAL;_:ARRAY OF CHAR); PROCEDURE GetDOSEnvironment():FarADDRESS; CONST CCHDEVICENAME = 32; TYPE DEVMODE = RECORD dmDeviceName : ARRAY[0..CCHDEVICENAME-1] OF CHAR; dmSpecVersion : CARDINAL; dmDriverVersion : CARDINAL; dmSize : CARDINAL; dmDriverExtra : CARDINAL; dmFields : LONGCARD; dmOrientation : SHORTCARD; dmPaperSize : SHORTCARD; dmPaperLength : SHORTCARD; dmPaperWidth : SHORTCARD; dmScale : SHORTCARD; dmCopies : SHORTCARD; dmDefaultSource : SHORTCARD; dmPrintQuality : SHORTCARD; dmColor : SHORTCARD; dmDuplex : SHORTCARD; END; (*DEVMODE*) PDEVMODE = POINTER TO DEVMODE; PROCEDURE DefineHandleTable(_:CARDINAL):BOOL; PROCEDURE DeviceCapabilities(_:ARRAY OF CHAR;_:ARRAY OF CHAR;_:CARDINAL;_:ARRAY OF CHAR;VAR _:DEVMODE):LONGCARD; PROCEDURE DeviceMode(_:HWND;_:HANDLE;_:ARRAY OF CHAR;_:ARRAY OF CHAR); PROCEDURE ExtDeviceMode(_:HWND;_:HANDLE;VAR _:DEVMODE;_:ARRAY OF CHAR;_:ARRAY OF CHAR;VAR _:DEVMODE;_:ARRAY OF CHAR;_:CARDINAL):INTEGER; (* extras *) PROCEDURE WAITEVENT( c:CARDINAL); PROCEDURE INITAPP( c:CARDINAL):CARDINAL; PROCEDURE _exit( c:CARDINAL); VAR (* The following are for use as VAR parameters when NULL required *) NullVar[0:0] : ARRAY[0..0] OF BYTE; NullStr[0:0] : ARRAY[0..0] OF CHAR; NullRect[0:0] : RECT; (* Inline utility procedures *) (*# restore *) (*# save,call(inline=>on,seg_name=>INLINE,near_call=>off) *) INLINE PROCEDURE GlobalDiscard(h:HANDLE):HANDLE; BEGIN RETURN GlobalReAlloc(h,0,GMEM_MOVEABLE); END GlobalDiscard; INLINE PROCEDURE LockData(dummy:WORD):HANDLE; BEGIN RETURN LockSegment(0FFFFH); END LockData; INLINE PROCEDURE UnlockData(dummy:WORD):HANDLE; BEGIN RETURN UnlockSegment(0FFFFH); END UnlockData; CONST (*%T _fcall *) _Ret = 0CBH; (*%E *) (*%F _fcall *) _Ret = 0C3H; (*%E *) TYPE _C1 = ARRAY[0..0] OF BYTE; _C2 = ARRAY[0..1] OF BYTE; _C3 = ARRAY[0..2] OF BYTE; _C4 = ARRAY[0..3] OF BYTE; _C5 = ARRAY[0..4] OF BYTE; _C7 = ARRAY[0..6] OF BYTE; (*# call(reg_param=>(ax,dx),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE MAKELONG (lo,hi : WORD):LONGWORD = _C1(_Ret); (*# call(reg_param=>(ax,dx),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE LOWORD(lw:LONGWORD):WORD = _C1(_Ret); INLINE PROCEDURE LOCARD(lw:LONGWORD):CARDINAL = _C1(_Ret); INLINE PROCEDURE LOINT (lw:LONGWORD):INTEGER = _C1(_Ret); (*# call(reg_param=>(dx,ax),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE HIWORD(lw:LONGWORD):WORD = _C1(_Ret); INLINE PROCEDURE HICARD(lw:LONGWORD):CARDINAL = _C1(_Ret); INLINE PROCEDURE HIINT (lw:LONGWORD):INTEGER = _C1(_Ret); (*# call(reg_param=>(ax),reg_saved=>(bx,cx,dx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE LOBYTE(lw:WORD):BYTE = _C1(_Ret); (*# call(reg_param=>(ax),reg_saved=>(bx,cx,dx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE HIBYTE(lw:WORD):BYTE = _C3(86H,0C4H (* xchg al,ah *),_Ret); (*# call(reg_param=>(ax,bx,dx),reg_saved=>(cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE RGB(r,g,b:BYTE):LONGWORD = _C5(88H,0DCH (* mov ah,bl *),0B6H,0 (* mov dh,0 *),_Ret); (*# call(reg_param=>(ax,bx,dx),reg_saved=>(cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE PALETTERGB(r,g,b:BYTE):LONGWORD = _C5(88H,0DCH (* mov ah,bl *),0B6H,2 (* mov dh,2 *),_Ret); (*# call(reg_param=>(ax),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE PALETTEINDEX(i:WORD):LONGWORD = _C4(0BAH,0,1 (* mov dx,100H *),_Ret); (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE GetRValue(rgb:LONGWORD):BYTE = _C1(_Ret); (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE GetGValue(rgb:LONGWORD):BYTE = _C3(86H,0C4H (* xchg ah,al *),_Ret); (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *) INLINE PROCEDURE GetBValue(rgb:LONGWORD):BYTE = _C3(88H,0DCH (* mov ah,bl *),_Ret); (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,ds,es,st0,st1,st2))*) INLINE PROCEDURE Min(a,b:WORD):WORD=_C7(03BH,0C3H,072H,002H,08BH,0C3H,_Ret); INLINE PROCEDURE Max(a,b:WORD):WORD=_C7(03BH,0C3H,077H,002H,08BH,0C3H,_Ret); (*# restore *) END Windows.