fpc/rtl/os2/pmwin.pas
1998-03-25 11:18:12 +00:00

2565 lines
85 KiB
ObjectPascal

{****************************************************************************
Copyright (c) 1993,94 by Florian Kl„mpfl
****************************************************************************}
unit pmwin;
interface
uses
os2def;
type
MPARAM = pointer;
PMPARAM = ^MPARAM;
MRESULT = pointer;
PMRESULT = ^MRESULT;
{!!!!!!!!! eigentlich Prozedurevariablen }
FNWP = pointer;
PFN = pointer; { muá auáerdem in OS2DEF.PP definiert werden }
PFNWP = ^FNWP;
const
WS_VISIBLE = $80000000;
WS_DISABLED = $40000000;
WS_CLIPCHILDREN = $20000000;
WS_CLIPSIBLINGS = $10000000;
WS_PARENTCLIP = $08000000;
WS_SAVEBITS = $04000000;
WS_SYNCPAINT = $02000000;
WS_MINIMIZED = $01000000;
WS_MAXIMIZED = $00800000;
WS_ANIMATE = $00400000;
WS_GROUP = $00010000;
WS_TABSTOP = $00020000;
WS_MULTISELECT = $00040000;
CS_MOVENOTIFY = $00000001;
CS_SIZEREDRAW = $00000004;
CS_HITTEST = $00000008;
CS_PUBLIC = $00000010;
CS_FRAME = $00000020;
CS_CLIPCHILDREN = $20000000;
CS_CLIPSIBLINGS = $10000000;
CS_PARENTCLIP = $08000000;
CS_SAVEBITS = $04000000;
CS_SYNCPAINT = $02000000;
HWND_DESKTOP = 1;
HWND_OBJECT = 2;
HWND_TOP = 3;
HWND_BOTTOM = 4;
HWND_THREADCAPTURE = 5;
function WinRegisterClass(hab : HAB;pszClassName : PSZ;pfnWndProc : PFNWP;flStyle : ULONG;cbWindowData : ULONG) : BOOL;
function WinDefWindowProc(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
function WinDestroyWindow(hwnd : HWND) : BOOL;
function WinShowWindow(hwnd : HWND;fShow : BOOL) : BOOL;
function WinQueryWindowRect(hwnd : HWND;prclDest : PRECTL) : BOOL;
function WinGetPS(hwnd : HWND) : HPS;
function WinReleasePS(hps : HPS) : BOOL;
function WinEndPaint(hps : HPS) : BOOL;
function WinGetClipPS(hwnd : HWND;hwndClip : HWND;fl : ULONG) : HPS;
function WinIsWindowShowing(hwnd : HWND) : BOOL;
function WinBeginPaint(hwnd : HWND;hps : HPS;prclPaint : PRECTL) : HPS;
function WinOpenWindowDC(hwnd : HWND) : HDC;
function WinScrollWindow(hwnd : HWND;dx : LONG;dy : LONG;prclScroll : PRECTL;prclClip : PRECTL;hrgnUpdate : HRGN;prclUpdate : PRECTL;rgfsw : ULONG) : LONG;
const
PSF_LOCKWINDOWUPDATE = $0001;
PSF_CLIPUPWARDS = $0002;
PSF_CLIPDOWNWARDS = $0004;
PSF_CLIPSIBLINGS = $0008;
PSF_CLIPCHILDREN = $0010;
PSF_PARENTCLIP = $0020;
SW_SCROLLCHILDREN = $0001;
SW_INVALIDATERGN = $0002;
function WinFillRect(hps : HPS;prcl : PRECTL;lColor : LONG) : BOOL;
type
QVERSDATA = record
environment : USHORT;
version : USHORT;
end;
PQVERSDATA = ^QVERSDATA;
const
QV_OS2 = $0000;
QV_CMS = $0001;
QV_TSO = $0002;
QV_TSOBATCH = $0003;
QV_OS400 = $0004;
function WinQueryVersion(hab : HAB) : ULONG;
function WinInitialize(flOptions : ULONG) : HAB;
function WinTerminate(hab : HAB) : BOOL;
function WinQueryAnchorBlock(hwnd : HWND) : HAB;
function WinCreateWindow(hwndParent : HWND;pszClass : PSZ;pszName : PSZ;flStyle : ULONG;x : LONG;y : LONG;cx : LONG;cy : LONG;hwndOwner : HWND;hwndInsertBehind : HWND;id : ULONG;pCtlData : PVOID;pPresParams : PVOID) : HWND;
function WinEnableWindow(hwnd : HWND;fEnable : BOOL) : BOOL;
function WinIsWindowEnabled(hwnd : HWND) : BOOL;
function WinEnableWindowUpdate(hwnd : HWND;fEnable : BOOL) : BOOL;
function WinIsWindowVisible(hwnd : HWND) : BOOL;
function WinQueryWindowText(hwnd : HWND;cchBufferMax : LONG;pchBuffer : PCH) : LONG;
function WinSetWindowText(hwnd : HWND;pszText : PSZ) : BOOL;
function WinQueryWindowTextLength(hwnd : HWND) : LONG;
function WinWindowFromID(hwndParent : HWND;id : ULONG) : HWND;
function WinIsWindow(hab : HAB;hwnd : HWND) : BOOL;
function WinQueryWindow(hwnd : HWND;cmd : LONG) : HWND;
function WinMultWindowFromIDs(hwndParent : HWND;prghwnd : PHWND;idFirst : ULONG;idLast : ULONG) : LONG;
const
QW_NEXT = 0;
QW_PREV = 1;
QW_TOP = 2;
QW_BOTTOM = 3;
QW_OWNER = 4;
QW_PARENT = 5;
QW_NEXTTOP = 6;
QW_PREVTOP = 7;
QW_FRAMEOWNER = 8;
function WinSetParent(hwnd : HWND;hwndNewParent : HWND;fRedraw : BOOL) : BOOL;
function WinIsChild(hwnd : HWND;hwndParent : HWND) : BOOL;
function WinSetOwner(hwnd : HWND;hwndNewOwner : HWND) : BOOL;
function WinQueryWindowProcess(hwnd : HWND;ppid : PPID;ptid : PTID) : BOOL;
function WinQueryObjectWindow(hwndDesktop : HWND) : HWND;
function WinQueryDesktopWindow(hab : HAB;hdc : HDC) : HWND;
type
SWP = record
fl : ULONG;
cy : LONG;
cx : LONG;
y : LONG;
x : LONG;
hwndInsertBehind : HWND;
hwnd : HWND;
ulReserved1 : ULONG;
ulReserved2 : ULONG;
end;
PSWP = ^SWP;
function WinSetWindowPos(hwnd : HWND;hwndInsertBehind : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fl : ULONG) : BOOL;
function WinSetMultWindowPos(hab : HAB;pswp : PSWP;cswp : ULONG) : BOOL;
function WinQueryWindowPos(hwnd : HWND;pswp : PSWP) : BOOL;
const
AWP_MINIMIZED = $00010000;
AWP_MAXIMIZED = $00020000;
AWP_RESTORED = $00040000;
AWP_ACTIVATE = $00080000;
AWP_DEACTIVATE = $00100000;
SWP_SIZE = $0001;
SWP_MOVE = $0002;
SWP_ZORDER = $0004;
SWP_SHOW = $0008;
SWP_HIDE = $0010;
SWP_NOREDRAW = $0020;
SWP_NOADJUST = $0040;
SWP_ACTIVATE = $0080;
SWP_DEACTIVATE = $0100;
SWP_EXTSTATECHANGE = $0200;
SWP_MINIMIZE = $0400;
SWP_MAXIMIZE = $0800;
SWP_RESTORE = $1000;
SWP_FOCUSACTIVATE = $2000;
SWP_FOCUSDEACTIVATE = $4000;
SWP_NOAUTOCLOSE = $8000;
function WinUpdateWindow(hwnd : HWND) : BOOL;
function WinInvalidateRect(hwnd : HWND;pwrc : PRECTL;fIncludeChildren : BOOL) : BOOL;
function WinInvalidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;
function WinInvertRect(hps : HPS;prcl : PRECTL) : BOOL;
function WinDrawBitmap(hpsDst : HPS;hbm : HBITMAP;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore : LONG;clrBack : LONG;fl : ULONG) : BOOL;
const
DBM_NORMAL = $0000;
DBM_INVERT = $0001;
DBM_HALFTONE = $0002;
DBM_STRETCH = $0004;
DBM_IMAGEATTRS = $0008;
function WinDrawText(hps : HPS;cchText : LONG;lpchText : PCH;prcl : PRECTL;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : LONG;
const
DT_LEFT = $0000;
DT_QUERYEXTENT = $0002;
DT_UNDERSCORE = $0010;
DT_STRIKEOUT = $0020;
DT_TEXTATTRS = $0040;
DT_EXTERNALLEADING = $0080;
DT_CENTER = $0100;
DT_RIGHT = $0200;
DT_TOP = $0000;
DT_VCENTER = $0400;
DT_BOTTOM = $0800;
DT_HALFTONE = $1000;
DT_MNEMONIC = $2000;
DT_WORDBREAK = $4000;
DT_ERASERECT = $8000;
function WinDrawBorder(hps : HPS;prcl : PRECTL;cx : LONG;cy : LONG;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : BOOL;
const
DB_PATCOPY = $0000;
DB_PATINVERT = $0001;
DB_DESTINVERT = $0002;
DB_AREAMIXMODE = $0003;
DB_ROP = $0007;
DB_INTERIOR = $0008;
DB_AREAATTRS = $0010;
DB_STANDARD = $0100;
DB_DLGBORDER = $0200;
function WinLoadString(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;
function WinLoadMessage(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;
function WinSetActiveWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;
type
CREATESTRUCT = record
pPresParams : PVOID;
pCtlData : PVOID;
id : ULONG;
hwndInsertBehind : HWND;
hwndOwner : HWND;
cy : LONG;
cx : LONG;
y : LONG;
x : LONG;
flStyle : ULONG;
pszText : PSZ;
pszClass : PSZ;
hwndParent : HWND;
end;
PCREATESTRUCT = ^CREATESTRUCT;
CLASSINFO = record
flClassStyle : ULONG;
pfnWindowProc : PFNWP;
cbWindowData : ULONG;
end;
PCLASSINFO = ^CLASSINFO;
function WinSubclassWindow(hwnd : HWND;pfnwp : PFNWP) : PFNWP;
function WinQueryClassName(hwnd : HWND;cchMax : LONG;pch : PCH) : LONG;
function WinQueryClassInfo(hab : HAB;pszClassName : PSZ;pClassInfo : PCLASSINFO) : BOOL;
function WinQueryActiveWindow(hwndDesktop : HWND) : HWND;
function WinIsThreadActive(hab : HAB) : BOOL;
function WinQuerySysModalWindow(hwndDesktop : HWND) : HWND;
function WinSetSysModalWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;
function WinQueryWindowUShort(hwnd : HWND;index : LONG) : USHORT;
function WinSetWindowUShort(hwnd : HWND;index : LONG;us : USHORT) : BOOL;
function WinQueryWindowULong(hwnd : HWND;index : LONG) : ULONG;
function WinSetWindowULong(hwnd : HWND;index : LONG;ul : ULONG) : BOOL;
function WinQueryWindowPtr(hwnd : HWND;index : LONG) : PVOID;
function WinSetWindowPtr(hwnd : HWND;index : LONG;p : PVOID) : BOOL;
function WinSetWindowBits(hwnd : HWND;index : LONG;flData : ULONG;flMask : ULONG) : BOOL;
const
QWS_USER = 0;
QWS_ID = -1;
QWS_MIN = -1;
QWL_USER = 0;
QWL_STYLE = -2;
QWP_PFNWP = -3;
QWL_HMQ = -4;
QWL_RESERVED = -5;
QWL_MIN = -6;
QWL_HHEAP = $0004;
QWL_HWNDFOCUSSAVE = $0018;
QWL_DEFBUTTON = $0040;
QWL_PSSCBLK = $0048;
QWL_PFEPBLK = $004c;
QWL_PSTATBLK = $0050;
QWS_FLAGS = $0008;
QWS_RESULT = $000a;
QWS_XRESTORE = $000c;
QWS_YRESTORE = $000e;
QWS_CXRESTORE = $0010;
QWS_CYRESTORE = $0012;
QWS_XMINIMIZE = $0014;
QWS_YMINIMIZE = $0016;
type
HENUM = LHANDLE;
function WinBeginEnumWindows(hwnd : HWND) : HENUM;
function WinGetNextWindow(henum : HENUM) : HWND;
function WinEndEnumWindows(henum : HENUM) : BOOL;
function WinWindowFromPoint(hwnd : HWND;pptl : PPOINTL;fChildren : BOOL) : HWND;
function WinMapWindowPoints(hwndFrom : HWND;hwndTo : HWND;prgptl : PPOINTL;cwpt : LONG) : BOOL;
function WinValidateRect(hwnd : HWND;prcl : PRECTL;fIncludeChildren : BOOL) : BOOL;
function WinValidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;
function WinWindowFromDC(hdc : HDC) : HWND;
function WinQueryWindowDC(hwnd : HWND) : HDC;
function WinGetScreenPS(hwndDesktop : HWND) : HPS;
function WinLockWindowUpdate(hwndDesktop : HWND;hwndLockUpdate : HWND) : BOOL;
function WinLockVisRegions(hwndDesktop : HWND;fLock : BOOL) : BOOL;
function WinQueryUpdateRect(hwnd : HWND;prcl : PRECTL) : BOOL;
function WinQueryUpdateRegion(hwnd : HWND;hrgn : HRGN) : LONG;
function WinExcludeUpdateRegion(hps : HPS;hwnd : HWND) : LONG;
type
QMSG = record
hwnd : HWND;
msg : ULONG;
mp1 : MPARAM;
mp2 : MPARAM;
time : ULONG;
ptl : POINTL;
reserved : ULONG;
end;
PQMSG = ^QMSG;
const
WM_NULL = $0000;
WM_CREATE = $0001;
WM_DESTROY = $0002;
WM_ENABLE = $0004;
WM_SHOW = $0005;
WM_MOVE = $0006;
WM_SIZE = $0007;
WM_ADJUSTWINDOWPOS = $0008;
WM_CALCVALIDRECTS = $0009;
WM_SETWINDOWPARAMS = $000a;
WM_QUERYWINDOWPARAMS = $000b;
WM_HITTEST = $000c;
WM_ACTIVATE = $000d;
WM_SETFOCUS = $000f;
WM_SETSELECTION = $0010;
WM_PPAINT = $0011;
WM_PSETFOCUS = $0012;
WM_PSYSCOLORCHANGE = $0013;
WM_PSIZE = $0014;
WM_PACTIVATE = $0015;
WM_PCONTROL = $0016;
WM_COMMAND = $0020;
WM_SYSCOMMAND = $0021;
WM_HELP = $0022;
WM_PAINT = $0023;
WM_TIMER = $0024;
WM_SEM1 = $0025;
WM_SEM2 = $0026;
WM_SEM3 = $0027;
WM_SEM4 = $0028;
WM_CLOSE = $0029;
WM_QUIT = $002a;
WM_SYSCOLORCHANGE = $002b;
WM_SYSVALUECHANGED = $002d;
WM_APPTERMINATENOTIFY = $002e;
WM_PRESPARAMCHANGED = $002f;
WM_CONTROL = $0030;
WM_VSCROLL = $0031;
WM_HSCROLL = $0032;
WM_INITMENU = $0033;
WM_MENUSELECT = $0034;
WM_MENUEND = $0035;
WM_DRAWITEM = $0036;
WM_MEASUREITEM = $0037;
WM_CONTROLPOINTER = $0038;
WM_QUERYDLGCODE = $003a;
WM_INITDLG = $003b;
WM_SUBSTITUTESTRING = $003c;
WM_MATCHMNEMONIC = $003d;
WM_SAVEAPPLICATION = $003e;
WM_HELPBASE = $0F00;
WM_HELPTOP = $0FFF;
WM_USER = $1000;
CMDSRC_PUSHBUTTON = 1;
CMDSRC_MENU = 2;
CMDSRC_ACCELERATOR = 3;
CMDSRC_FONTDLG = 4;
CMDSRC_FILEDLG = 5;
CMDSRC_PRINTDLG = 6;
CMDSRC_COLORDLG = 7;
CMDSRC_OTHER = 0;
{$PACKRECORDS 1}
type
CMDMSG = record
cmd : USHORT;
unused : USHORT;
source : USHORT;
fMouse : USHORT;
end;
PCMDMSG = ^CMDMSG;
{$PACKRECORDS NORMAL}
MQINFO = record
cb : ULONG;
pid : PID;
tid : TID;
cmsgs : ULONG;
pReserved : PVOID;
end;
PMQINFO = ^MQINFO;
function WinSendMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
function WinCreateMsgQueue(hab : HAB;cmsg : LONG) : HMQ;
function WinDestroyMsgQueue(hmq : HMQ) : BOOL;
function WinQueryQueueInfo(hmq : HMQ;pmqi : PMQINFO;cbCopy : ULONG) : BOOL;
function WinCancelShutdown(hmq : HMQ;fCancelAlways : BOOL) : BOOL;
function WinGetMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG) : BOOL;
function WinPeekMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG;fl : ULONG) : BOOL;
function WinDispatchMsg(hab : HAB;pqmsg : PQMSG) : MRESULT;
function WinPostMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;
function WinRegisterUserMsg(hab : HAB;msgid : ULONG;datatype1 : LONG;dir1 : LONG;datatype2 : LONG;dir2 : LONG;datatyper : LONG) : BOOL;
function WinRegisterUserDatatype(hab : HAB;datatype : LONG;count : LONG;types : PLONG) : BOOL;
function WinSetMsgMode(hab : HAB;classname : PSZ;control : LONG) : BOOL;
function WinSetSynchroMode(hab : HAB;mode : LONG) : BOOL;
const
PM_REMOVE = $0001;
PM_NOREMOVE = $0000;
RUM_IN = 1;
RUM_OUT = 2;
RUM_INOUT = 3;
SMD_DELAYED = $0001;
SMD_IMMEDIATE = $0002;
SSM_SYNCHRONOUS = $0001;
SSM_ASYNCHRONOUS = $0002;
SSM_MIXED = $0003;
CVR_ALIGNLEFT = $0001;
CVR_ALIGNBOTTOM = $0002;
CVR_ALIGNRIGHT = $0004;
CVR_ALIGNTOP = $0008;
CVR_REDRAW = $0010;
HT_NORMAL = 0;
HT_TRANSPARENT = (-1);
HT_DISCARD = (-2);
HT_ERROR = (-3);
type
WNDPARAMS = record
fsStatus : ULONG;
cchText : ULONG;
pszText : PSZ;
cbPresParams : ULONG;
pPresParams : PVOID;
cbCtlData : ULONG;
pCtlData : PVOID;
end;
PWNDPARAMS = ^WNDPARAMS;
const
WPM_TEXT = $0001;
WPM_CTLDATA = $0002;
WPM_PRESPARAMS = $0004;
WPM_CCHTEXT = $0008;
WPM_CBCTLDATA = $0010;
WPM_CBPRESPARAMS = $0020;
function WinInSendMsg(hab : HAB) : BOOL;
function WinBroadcastMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM;rgf : ULONG) : BOOL;
const
BMSG_POST = $0000;
BMSG_SEND = $0001;
BMSG_POSTQUEUE = $0002;
BMSG_DESCENDANTS = $0004;
BMSG_FRAMEONLY = $0008;
function WinWaitMsg(hab : HAB;msgFirst : ULONG;msgLast : ULONG) : BOOL;
function WinQueryQueueStatus(hwndDesktop : HWND) : ULONG;
const
QS_KEY = $0001;
QS_MOUSEBUTTON = $0002;
QS_MOUSEMOVE = $0004;
QS_MOUSE = $0006;
QS_TIMER = $0008;
QS_PAINT = $0010;
QS_POSTMSG = $0020;
QS_SEM1 = $0040;
QS_SEM2 = $0080;
QS_SEM3 = $0100;
QS_SEM4 = $0200;
QS_SENDMSG = $0400;
function WinQueryMsgPos(hab : HAB;pptl : PPOINTL) : BOOL;
function WinQueryMsgTime(hab : HAB) : ULONG;
type
HEV = ULONG;
HMTX = ULONG;
HMUX = ULONG;
function WinWaitEventSem(hev : HEV;ulTimeout : ULONG) : APIRET;
function WinRequestMutexSem(hmtx : HMTX;ulTimeout : ULONG) : APIRET;
function WinWaitMuxWaitSem(hmux : HMUX;ulTimeout : ULONG;pulUser : PULONG) : APIRET;
function WinPostQueueMsg(hmq : HMQ;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;
const
SMIM_ALL = $0EFF;
SMI_NOINTEREST = $0001;
SMI_INTEREST = $0002;
SMI_RESET = $0004;
SMI_AUTODISPATCH = $0008;
function WinSetMsgInterest(hwnd : HWND;msg_class : ULONG;control : LONG) : BOOL;
function WinSetClassMsgInterest(hab : HAB;pszClassName : PSZ;msg_class : ULONG;control : LONG) : BOOL;
function WinSetFocus(hwndDesktop : HWND;hwndSetFocus : HWND) : BOOL;
function WinFocusChange(hwndDesktop : HWND;hwndSetFocus : HWND;flFocusChange : ULONG) : BOOL;
const
FC_NOSETFOCUS = $0001;
FC_NOBRINGTOTOP = FC_NOSETFOCUS;
FC_NOLOSEFOCUS = $0002;
FC_NOBRINGTOPFIRSTWINDOW = FC_NOLOSEFOCUS;
FC_NOSETACTIVE = $0004;
FC_NOLOSEACTIVE = $0008;
FC_NOSETSELECTION = $0010;
FC_NOLOSESELECTION = $0020;
QFC_NEXTINCHAIN = $0001;
QFC_ACTIVE = $0002;
QFC_FRAME = $0003;
QFC_SELECTACTIVE = $0004;
QFC_PARTOFCHAIN = $0005;
function WinSetCapture(hwndDesktop : HWND;hwnd : HWND) : BOOL;
function WinQueryCapture(hwndDesktop : HWND) : HWND;
const
WM_MOUSEFIRST = $0070;
WM_MOUSELAST = $0079;
WM_BUTTONCLICKFIRST = $0071;
WM_BUTTONCLICKLAST = $0079;
WM_MOUSEMOVE = $0070;
WM_BUTTON1DOWN = $0071;
WM_BUTTON1UP = $0072;
WM_BUTTON1DBLCLK = $0073;
WM_BUTTON2DOWN = $0074;
WM_BUTTON2UP = $0075;
WM_BUTTON2DBLCLK = $0076;
WM_BUTTON3DOWN = $0077;
WM_BUTTON3UP = $0078;
WM_BUTTON3DBLCLK = $0079;
WM_EXTMOUSEFIRST = $0410;
WM_EXTMOUSELAST = $0419;
WM_CHORD = $0410;
WM_BUTTON1MOTIONSTART = $0411;
WM_BUTTON1MOTIONEND = $0412;
WM_BUTTON1CLICK = $0413;
WM_BUTTON2MOTIONSTART = $0414;
WM_BUTTON2MOTIONEND = $0415;
WM_BUTTON2CLICK = $0416;
WM_BUTTON3MOTIONSTART = $0417;
WM_BUTTON3MOTIONEND = $0418;
WM_BUTTON3CLICK = $0419;
WM_MOUSETRANSLATEFIRST = $0420;
WM_MOUSETRANSLATELAST = $0428;
WM_BEGINDRAG = $0420;
WM_ENDDRAG = $0421;
WM_SINGLESELECT = $0422;
WM_OPEN = $0423;
WM_CONTEXTMENU = $0424;
WM_CONTEXTHELP = $0425;
WM_TEXTEDIT = $0426;
WM_BEGINSELECT = $0427;
WM_ENDSELECT = $0428;
function WinQueryFocus(hwndDesktop : HWND) : HWND;
const
WM_CHAR = $007a;
WM_VIOCHAR = $007b;
KC_NONE = $0000;
KC_CHAR = $0001;
KC_VIRTUALKEY = $0002;
KC_SCANCODE = $0004;
KC_SHIFT = $0008;
KC_CTRL = $0010;
KC_ALT = $0020;
KC_KEYUP = $0040;
KC_PREVDOWN = $0080;
KC_LONEKEY = $0100;
KC_DEADKEY = $0200;
KC_COMPOSITE = $0400;
KC_INVALIDCOMP = $0800;
KC_TOGGLE = $1000;
KC_INVALIDCHAR = $2000;
KC_DBCSRSRVD1 = $4000;
KC_DBCSRSRVD2 = $8000;
{$PACKRECORDS 1}
type
MSEMSG = record
x : SHORT;
y : SHORT;
codeHitTest : USHORT;
fsInp : USHORT;
end;
PMSEMSG = ^MSEMSG;
CHRMSG = record
fs : USHORT;
cRepeat : UCHAR;
scancode : UCHAR;
chr : USHORT;
vkey : USHORT;
end;
PCHRMSG = ^CHRMSG;
{$PACKRECORDS NORMAL}
const
INP_NONE = $0000;
INP_KBD = $0001;
INP_MULT = $0002;
INP_RES2 = $0004;
INP_SHIFT = $0008;
INP_CTRL = $0010;
INP_ALT = $0020;
INP_RES3 = $0040;
INP_RES4 = $0080;
INP_IGNORE = $FFFF;
VK_BUTTON1 = $01;
VK_BUTTON2 = $02;
VK_BUTTON3 = $03;
VK_BREAK = $04;
VK_BACKSPACE = $05;
VK_TAB = $06;
VK_BACKTAB = $07;
VK_NEWLINE = $08;
VK_SHIFT = $09;
VK_CTRL = $0A;
VK_ALT = $0B;
VK_ALTGRAF = $0C;
VK_PAUSE = $0D;
VK_CAPSLOCK = $0E;
VK_ESC = $0F;
VK_SPACE = $10;
VK_PAGEUP = $11;
VK_PAGEDOWN = $12;
VK_END = $13;
VK_HOME = $14;
VK_LEFT = $15;
VK_UP = $16;
VK_RIGHT = $17;
VK_DOWN = $18;
VK_PRINTSCRN = $19;
VK_INSERT = $1A;
VK_DELETE = $1B;
VK_SCRLLOCK = $1C;
VK_NUMLOCK = $1D;
VK_ENTER = $1E;
VK_SYSRQ = $1F;
VK_F1 = $20;
VK_F2 = $21;
VK_F3 = $22;
VK_F4 = $23;
VK_F5 = $24;
VK_F6 = $25;
VK_F7 = $26;
VK_F8 = $27;
VK_F9 = $28;
VK_F10 = $29;
VK_F11 = $2A;
VK_F12 = $2B;
VK_F13 = $2C;
VK_F14 = $2D;
VK_F15 = $2E;
VK_F16 = $2F;
VK_F17 = $30;
VK_F18 = $31;
VK_F19 = $32;
VK_F20 = $33;
VK_F21 = $34;
VK_F22 = $35;
VK_F23 = $36;
VK_F24 = $37;
VK_ENDDRAG = $38;
VK_MENU = VK_F10;
VK_DBCSFIRST = $0080;
VK_DBCSLAST = $00ff;
VK_USERFIRST = $0100;
VK_USERLAST = $01ff;
function WinGetKeyState(hwndDesktop : HWND;vkey : LONG) : LONG;
function WinGetPhysKeyState(hwndDesktop : HWND;sc : LONG) : LONG;
function WinEnablePhysInput(hwndDesktop : HWND;fEnable : BOOL) : BOOL;
function WinIsPhysInputEnabled(hwndDesktop : HWND) : BOOL;
function WinSetKeyboardStateTable(hwndDesktop : HWND;pKeyStateTable : PBYTE;fSet : BOOL) : BOOL;
const
WM_JOURNALNOTIFY = $007c;
JRN_QUEUESTATUS = $00000001;
JRN_PHYSKEYSTATE = $00000002;
function WinGetDlgMsg(hwndDlg : HWND;pqmsg : PQMSG) : BOOL;
function WinLoadDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : HWND;
function WinDlgBox(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : ULONG;
function WinDismissDlg(hwndDlg : HWND;usResult : ULONG) : BOOL;
function WinQueryDlgItemShort(hwndDlg : HWND;idItem : ULONG;pResult : PSHORT;fSigned : BOOL) : BOOL;
function WinSetDlgItemShort(hwndDlg : HWND;idItem : ULONG;usValue : USHORT;fSigned : BOOL) : BOOL;
function WinSetDlgItemText(hwndDlg : HWND;idItem : ULONG;pszText : PSZ) : BOOL;
function WinQueryDlgItemText(hwndDlg : HWND;idItem : ULONG;cchBufferMax : LONG;pchBuffer : PSZ) : ULONG;
function WinQueryDlgItemTextLength(hwndDlg : HWND;idItem : ULONG) : LONG;
function WinDefDlgProc(hwndDlg : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
const
DID_OK = 1;
DID_CANCEL = 2;
DID_ERROR = $ffff;
function WinAlarm(hwndDesktop : HWND;rgfType : ULONG) : BOOL;
const
WA_WARNING = 0;
WA_NOTE = 1;
WA_ERROR = 2;
WA_CWINALARMS = 3;
function WinMessageBox(hwndParent : HWND;hwndOwner : HWND;pszText : PSZ;pszCaption : PSZ;idWindow : ULONG;flStyle : ULONG) : ULONG;
const
MB_OK = $0000;
MB_OKCANCEL = $0001;
MB_RETRYCANCEL = $0002;
MB_ABORTRETRYIGNORE = $0003;
MB_YESNO = $0004;
MB_YESNOCANCEL = $0005;
MB_CANCEL = $0006;
MB_ENTER = $0007;
MB_ENTERCANCEL = $0008;
MB_NOICON = $0000;
MB_CUANOTIFICATION = $0000;
MB_ICONQUESTION = $0010;
MB_ICONEXCLAMATION = $0020;
MB_CUAWARNING = $0020;
MB_ICONASTERISK = $0030;
MB_ICONHAND = $0040;
MB_CUACRITICAL = $0040;
MB_QUERY = MB_ICONQUESTION;
MB_WARNING = MB_CUAWARNING;
MB_INFORMATION = MB_ICONASTERISK;
MB_CRITICAL = MB_CUACRITICAL;
MB_ERROR = MB_CRITICAL;
MB_DEFBUTTON1 = $0000;
MB_DEFBUTTON2 = $0100;
MB_DEFBUTTON3 = $0200;
MB_APPLMODAL = $0000;
MB_SYSTEMMODAL = $1000;
MB_HELP = $2000;
MB_MOVEABLE = $4000;
MBID_OK = 1;
MBID_CANCEL = 2;
MBID_ABORT = 3;
MBID_RETRY = 4;
MBID_IGNORE = 5;
MBID_YES = 6;
MBID_NO = 7;
MBID_HELP = 8;
MBID_ENTER = 9;
MBID_ERROR = $ffff;
DLGC_ENTRYFIELD = $0001;
DLGC_BUTTON = $0002;
DLGC_RADIOBUTTON = $0004;
DLGC_STATIC = $0008;
DLGC_DEFAULT = $0010;
DLGC_PUSHBUTTON = $0020;
DLGC_CHECKBOX = $0040;
DLGC_SCROLLBAR = $0080;
DLGC_MENU = $0100;
DLGC_TABONCLICK = $0200;
DLGC_MLE = $0400;
function WinProcessDlg(hwndDlg : HWND) : ULONG;
function WinSendDlgItemMsg(hwndDlg : HWND;idItem : ULONG;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
function WinMapDlgPoints(hwndDlg : HWND;prgwptl : PPOINTL;cwpt : ULONG;fCalcWindowCoords : BOOL) : BOOL;
function WinEnumDlgItem(hwndDlg : HWND;hwnd : HWND;code : ULONG) : HWND;
function WinSubstituteStrings(hwnd : HWND;pszSrc : PSZ;cchDstMax : LONG;pszDst : PSZ) : LONG;
const
EDI_FIRSTTABITEM = 0;
EDI_LASTTABITEM = 1;
EDI_NEXTTABITEM = 2;
EDI_PREVTABITEM = 3;
EDI_FIRSTGROUPITEM = 4;
EDI_LASTGROUPITEM = 5;
EDI_NEXTGROUPITEM = 6;
EDI_PREVGROUPITEM = 7;
{$PACKRECORDS 2}
type
DLGTITEM = record
fsItemStatus : USHORT;
cChildren : USHORT;
cchClassName : USHORT;
offClassName : USHORT;
cchText : USHORT;
offText : USHORT;
flStyle : ULONG;
x : SHORT;
y : SHORT;
cx : SHORT;
cy : SHORT;
id : USHORT;
offPresParams : USHORT;
offCtlData : USHORT;
end;
PDLGTITEM = ^DLGTITEM;
DLGTEMPLATE = record
cbTemplate : USHORT;
_type : USHORT;
codepage : USHORT;
offadlgti : USHORT;
fsTemplateStatus : USHORT;
iItemFocus : USHORT;
coffPresParams : USHORT;
adlgti : array[0..0] of DLGTITEM;
end;
PDLGTEMPLATE = ^DLGTEMPLATE;
{$PACKRECORDS NORMAL}
function WinCreateDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;pdlgt : PDLGTEMPLATE;pCreateParams : PVOID) : HWND;
const
SS_TEXT = $0001;
SS_GROUPBOX = $0002;
SS_ICON = $0003;
SS_BITMAP = $0004;
SS_FGNDRECT = $0005;
SS_HALFTONERECT = $0006;
SS_BKGNDRECT = $0007;
SS_FGNDFRAME = $0008;
SS_HALFTONEFRAME = $0009;
SS_BKGNDFRAME = $000a;
SS_SYSICON = $000b;
SS_AUTOSIZE = $0040;
SM_SETHANDLE = $0100;
SM_QUERYHANDLE = $0101;
BS_PUSHBUTTON = 0;
BS_CHECKBOX = 1;
BS_AUTOCHECKBOX = 2;
BS_RADIOBUTTON = 3;
BS_AUTORADIOBUTTON = 4;
BS_3STATE = 5;
BS_AUTO3STATE = 6;
BS_USERBUTTON = 7;
BS_PRIMARYSTYLES = $000f;
BS_BITMAP = $0040;
BS_ICON = $0080;
BS_HELP = $0100;
BS_SYSCOMMAND = $0200;
BS_DEFAULT = $0400;
BS_NOPOINTERFOCUS = $0800;
BS_NOBORDER = $1000;
BS_NOCURSORSELECT = $2000;
BS_AUTOSIZE = $4000;
{$PACKRECORDS 2}
type
BTNCDATA = record
cb : USHORT;
fsCheckState : USHORT;
fsHiliteState : USHORT;
hImage : LHANDLE;
end;
PBTNCDATA = ^BTNCDATA;
{$PACKRECORDS NORMAL}
USERBUTTON = record
hwnd : HWND;
hps : HPS;
fsState : ULONG;
fsStateOld : ULONG;
end;
PUSERBUTTON = ^USERBUTTON;
const
BM_CLICK = $0120;
BM_QUERYCHECKINDEX = $0121;
BM_QUERYHILITE = $0122;
BM_SETHILITE = $0123;
BM_QUERYCHECK = $0124;
BM_SETCHECK = $0125;
BM_SETDEFAULT = $0126;
BN_CLICKED = 1;
BN_DBLCLICKED = 2;
BN_PAINT = 3;
BDS_HILITED = $0100;
BDS_DISABLED = $0200;
BDS_DEFAULT = $0400;
ES_LEFT = $00000000;
ES_CENTER = $00000001;
ES_RIGHT = $00000002;
ES_AUTOSCROLL = $00000004;
ES_MARGIN = $00000008;
ES_AUTOTAB = $00000010;
ES_READONLY = $00000020;
ES_COMMAND = $00000040;
ES_UNREADABLE = $00000080;
ES_AUTOSIZE = $00000200;
ES_ANY = $00000000;
ES_SBCS = $00001000;
ES_DBCS = $00002000;
ES_MIXED = $00003000;
CBS_SIMPLE = $0001;
CBS_DROPDOWN = $0002;
CBS_DROPDOWNLIST = $0004;
CBS_COMPATIBLE = $0008;
CBID_LIST = $029A;
CBID_EDIT = $029B;
CBM_SHOWLIST = $0170;
CBM_HILITE = $0171;
CBM_ISLISTSHOWING = $0172;
CBN_EFCHANGE = 1;
CBN_EFSCROLL = 2;
CBN_MEMERROR = 3;
CBN_LBSELECT = 4;
CBN_LBSCROLL = 5;
CBN_SHOWLIST = 6;
CBN_ENTER = 7;
{$PACKRECORDS 2}
type
ENTRYFDATA = record
cb : USHORT;
cchEditLimit : USHORT;
ichMinSel : USHORT;
ichMaxSel : USHORT;
end;
PENTRYFDATA = ^ENTRYFDATA;
{$PACKRECORDS NORMAL}
const
EM_QUERYCHANGED = $0140;
EM_QUERYSEL = $0141;
EM_SETSEL = $0142;
EM_SETTEXTLIMIT = $0143;
EM_CUT = $0144;
EM_COPY = $0145;
EM_CLEAR = $0146;
EM_PASTE = $0147;
EM_QUERYFIRSTCHAR = $0148;
EM_SETFIRSTCHAR = $0149;
EM_QUERYREADONLY = $014a;
EM_SETREADONLY = $014b;
EM_SETINSERTMODE = $014c;
EN_SETFOCUS = $0001;
EN_KILLFOCUS = $0002;
EN_CHANGE = $0004;
EN_SCROLL = $0008;
EN_MEMERROR = $0010;
EN_OVERFLOW = $0020;
EN_INSERTMODETOGGLE = $0040;
LS_MULTIPLESEL = $00000001;
LS_OWNERDRAW = $00000002;
LS_NOADJUSTPOS = $00000004;
LS_HORZSCROLL = $00000008;
LS_EXTENDEDSEL = $00000010;
LN_SELECT = 1;
LN_SETFOCUS = 2;
LN_KILLFOCUS = 3;
LN_SCROLL = 4;
LN_ENTER = 5;
LM_QUERYITEMCOUNT = $0160;
LM_INSERTITEM = $0161;
LM_SETTOPINDEX = $0162;
LM_DELETEITEM = $0163;
LM_SELECTITEM = $0164;
LM_QUERYSELECTION = $0165;
LM_SETITEMTEXT = $0166;
LM_QUERYITEMTEXTLENGTH = $0167;
LM_QUERYITEMTEXT = $0168;
LM_SETITEMHANDLE = $0169;
LM_QUERYITEMHANDLE = $016a;
LM_SEARCHSTRING = $016b;
LM_SETITEMHEIGHT = $016c;
LM_QUERYTOPINDEX = $016d;
LM_DELETEALL = $016e;
LIT_CURSOR = (-4);
LIT_ERROR = (-3);
LIT_MEMERROR = (-2);
LIT_NONE = (-1);
LIT_FIRST = (-1);
LIT_END = (-1);
LIT_SORTASCENDING = (-2);
LIT_SORTDESCENDING = (-3);
LSS_SUBSTRING = $0001;
LSS_PREFIX = $0002;
LSS_CASESENSITIVE = $0004;
MS_ACTIONBAR = $00000001;
MS_TITLEBUTTON = $00000002;
MS_VERTICALFLIP = $00000004;
MS_CONDITIONALCASCADE = $00000040;
function WinLoadMenu(hwndFrame : HWND;hmod : HMODULE;idMenu : ULONG) : HWND;
const
MM_INSERTITEM = $0180;
MM_DELETEITEM = $0181;
MM_QUERYITEM = $0182;
MM_SETITEM = $0183;
MM_QUERYITEMCOUNT = $0184;
MM_STARTMENUMODE = $0185;
MM_ENDMENUMODE = $0186;
MM_REMOVEITEM = $0188;
MM_SELECTITEM = $0189;
MM_QUERYSELITEMID = $018a;
MM_QUERYITEMTEXT = $018b;
MM_QUERYITEMTEXTLENGTH = $018c;
MM_SETITEMHANDLE = $018d;
MM_SETITEMTEXT = $018e;
MM_ITEMPOSITIONFROMID = $018f;
MM_ITEMIDFROMPOSITION = $0190;
MM_QUERYITEMATTR = $0191;
MM_SETITEMATTR = $0192;
MM_ISITEMVALID = $0193;
MM_QUERYITEMRECT = $0194;
MM_QUERYDEFAULTITEMID = $0431;
MM_SETDEFAULTITEMID = $0432;
function WinCreateMenu(hwndParent : HWND;lpmt : PVOID) : HWND;
type
OWNERITEM = record
hwnd : HWND;
hps : HPS;
fsState : ULONG;
fsAttribute : ULONG;
fsStateOld : ULONG;
fsAttributeOld : ULONG;
rclItem : RECTL;
idItem : LONG;
hItem : ULONG;
end;
POWNERITEM = ^OWNERITEM;
{$PACKRECORDS 2}
MENUITEM = record
iPosition : SHORT;
afStyle : USHORT;
afAttribute : USHORT;
id : USHORT;
hwndSubMenu : HWND;
hItem : ULONG;
end;
PMENUITEM = ^MENUITEM;
{$PACKRECORDS NORMAL}
const
MIT_END = (-1);
MIT_NONE = (-1);
MIT_MEMERROR = (-1);
MIT_ERROR = (-1);
MIT_FIRST = (-2);
MIT_LAST = (-3);
MID_NONE = MIT_NONE;
MID_ERROR = (-1);
MIS_TEXT = $0001;
MIS_BITMAP = $0002;
MIS_SEPARATOR = $0004;
MIS_OWNERDRAW = $0008;
MIS_SUBMENU = $0010;
MIS_MULTMENU = $0020;
MIS_SYSCOMMAND = $0040;
MIS_HELP = $0080;
MIS_STATIC = $0100;
MIS_BUTTONSEPARATOR = $0200;
MIS_BREAK = $0400;
MIS_BREAKSEPARATOR = $0800;
MIS_GROUP = $1000;
MIS_SINGLE = $2000;
MIA_NODISMISS = $0020;
MIA_FRAMED = $1000;
MIA_CHECKED = $2000;
MIA_DISABLED = $4000;
MIA_HILITED = $8000;
function WinPopupMenu(hwndParent : HWND;hwndOwner : HWND;hwndMenu : HWND;x : LONG;y : LONG;idItem : LONG;fs : ULONG) : BOOL;
const
PU_POSITIONONITEM = $0001;
PU_HCONSTRAIN = $0002;
PU_VCONSTRAIN = $0004;
PU_NONE = $0000;
PU_MOUSEBUTTON1DOWN = $0008;
PU_MOUSEBUTTON2DOWN = $0010;
PU_MOUSEBUTTON3DOWN = $0018;
PU_SELECTITEM = $0020;
PU_MOUSEBUTTON1 = $0040;
PU_MOUSEBUTTON2 = $0080;
PU_MOUSEBUTTON3 = $0100;
PU_KEYBOARD = $0200;
SBS_HORZ = 0;
SBS_VERT = 1;
SBS_THUMBSIZE = 2;
SBS_AUTOTRACK = 4;
SBS_AUTOSIZE = $2000;
SBM_SETSCROLLBAR = $01a0;
SBM_SETPOS = $01a1;
SBM_QUERYPOS = $01a2;
SBM_QUERYRANGE = $01a3;
SBM_SETTHUMBSIZE = $01a6;
SB_LINEUP = 1;
SB_LINEDOWN = 2;
SB_LINELEFT = 1;
SB_LINERIGHT = 2;
SB_PAGEUP = 3;
SB_PAGEDOWN = 4;
SB_PAGELEFT = 3;
SB_PAGERIGHT = 4;
SB_SLIDERTRACK = 5;
SB_SLIDERPOSITION = 6;
SB_ENDSCROLL = 7;
{$PACKRECORDS 2}
type
SBCDATA = record
cb : USHORT;
sHilite : USHORT;
posFirst : SHORT;
posLast : SHORT;
posThumb : SHORT;
cVisible : SHORT;
cTotal : SHORT;
end;
PSBCDATA = ^SBCDATA;
{$PACKRECORDS NORMAL}
{$PACKRECORDS 2}
FRAMECDATA = record
cb : USHORT;
flCreateFlags : ULONG;
hmodResources : USHORT;
idResources : USHORT;
end;
PFRAMECDATA = ^FRAMECDATA;
{$PACKRECORDS NORMAL}
const
FCF_TITLEBAR = $00000001;
FCF_SYSMENU = $00000002;
FCF_MENU = $00000004;
FCF_SIZEBORDER = $00000008;
FCF_MINBUTTON = $00000010;
FCF_MAXBUTTON = $00000020;
FCF_MINMAX = $00000030;
FCF_VERTSCROLL = $00000040;
FCF_HORZSCROLL = $00000080;
FCF_DLGBORDER = $00000100;
FCF_BORDER = $00000200;
FCF_SHELLPOSITION = $00000400;
FCF_TASKLIST = $00000800;
FCF_NOBYTEALIGN = $00001000;
FCF_NOMOVEWITHOWNER = $00002000;
FCF_ICON = $00004000;
FCF_ACCELTABLE = $00008000;
FCF_SYSMODAL = $00010000;
FCF_SCREENALIGN = $00020000;
FCF_MOUSEALIGN = $00040000;
FCF_HIDEBUTTON = $01000000;
FCF_HIDEMAX = $01000020;
FCF_DBE_APPSTAT = $80000000;
FCF_AUTOICON = $40000000;
FCF_STANDARD = $0000CC3F;
FS_ICON = $00000001;
FS_ACCELTABLE = $00000002;
FS_SHELLPOSITION = $00000004;
FS_TASKLIST = $00000008;
FS_NOBYTEALIGN = $00000010;
FS_NOMOVEWITHOWNER = $00000020;
FS_SYSMODAL = $00000040;
FS_DLGBORDER = $00000080;
FS_BORDER = $00000100;
FS_SCREENALIGN = $00000200;
FS_MOUSEALIGN = $00000400;
FS_SIZEBORDER = $00000800;
FS_AUTOICON = $00001000;
FS_DBE_APPSTAT = $00008000;
FS_STANDARD = $0000000F;
FF_FLASHWINDOW = $0001;
FF_ACTIVE = $0002;
FF_FLASHHILITE = $0004;
FF_OWNERHIDDEN = $0008;
FF_DLGDISMISSED = $0010;
FF_OWNERDISABLED = $0020;
FF_SELECTED = $0040;
FF_NOACTIVATESWP = $0080;
function WinCreateStdWindow(hwndParent : HWND;flStyle : ULONG;pflCreateFlags : PULONG;pszClientClass : PSZ;pszTitle : PSZ;styleClient : ULONG;hmod : HMODULE;idResources : ULONG;phwndClient : PHWND) : HWND;
function WinFlashWindow(hwndFrame : HWND;fFlash : BOOL) : BOOL;
const
WM_FLASHWINDOW = $0040;
WM_FORMATFRAME = $0041;
WM_UPDATEFRAME = $0042;
WM_FOCUSCHANGE = $0043;
WM_SETBORDERSIZE = $0044;
WM_TRACKFRAME = $0045;
WM_MINMAXFRAME = $0046;
WM_SETICON = $0047;
WM_QUERYICON = $0048;
WM_SETACCELTABLE = $0049;
WM_QUERYACCELTABLE = $004a;
WM_TRANSLATEACCEL = $004b;
WM_QUERYTRACKINFO = $004c;
WM_QUERYBORDERSIZE = $004d;
WM_NEXTMENU = $004e;
WM_ERASEBACKGROUND = $004f;
WM_QUERYFRAMEINFO = $0050;
WM_QUERYFOCUSCHAIN = $0051;
WM_OWNERPOSCHANGE = $0052;
WM_CALCFRAMERECT = $0053;
WM_WINDOWPOSCHANGED = $0055;
WM_ADJUSTFRAMEPOS = $0056;
WM_QUERYFRAMECTLCOUNT = $0059;
WM_QUERYHELPINFO = $005B;
WM_SETHELPINFO = $005C;
WM_ERROR = $005D;
WM_REALIZEPALETTE = $005E;
FI_FRAME = $00000001;
FI_OWNERHIDE = $00000002;
FI_ACTIVATEOK = $00000004;
FI_NOMOVEWITHOWNER = $00000008;
function WinCreateFrameControls(hwndFrame : HWND;pfcdata : PFRAMECDATA;pszTitle : PSZ) : BOOL;
function WinCalcFrameRect(hwndFrame : HWND;prcl : PRECTL;fClient : BOOL) : BOOL;
function WinGetMinPosition(hwnd : HWND;pswp : PSWP;pptl : PPOINTL) : BOOL;
function WinGetMaxPosition(hwnd : HWND;pswp : PSWP) : BOOL;
type
HSAVEWP = LHANDLE;
function WinSaveWindowPos(hsvwp : HSAVEWP;pswp : PSWP;cswp : ULONG) : BOOL;
const
FID_SYSMENU = $8002;
FID_TITLEBAR = $8003;
FID_MINMAX = $8004;
FID_MENU = $8005;
FID_VERTSCROLL = $8006;
FID_HORZSCROLL = $8007;
FID_CLIENT = $8008;
FID_DBE_APPSTAT = $8010;
FID_DBE_KBDSTAT = $8011;
FID_DBE_PECIC = $8012;
FID_DBE_KKPOPUP = $8013;
SC_SIZE = $8000;
SC_MOVE = $8001;
SC_MINIMIZE = $8002;
SC_MAXIMIZE = $8003;
SC_CLOSE = $8004;
SC_NEXT = $8005;
SC_APPMENU = $8006;
SC_SYSMENU = $8007;
SC_RESTORE = $8008;
SC_NEXTFRAME = $8009;
SC_NEXTWINDOW = $8010;
SC_TASKMANAGER = $8011;
SC_HELPKEYS = $8012;
SC_HELPINDEX = $8013;
SC_HELPEXTENDED = $8014;
SC_SWITCHPANELIDS = $8015;
SC_DBE_FIRST = $8018;
SC_DBE_LAST = $801F;
SC_BEGINDRAG = $8020;
SC_ENDDRAG = $8021;
SC_SELECT = $8022;
SC_OPEN = $8023;
SC_CONTEXTMENU = $8024;
SC_CONTEXTHELP = $8025;
SC_TEXTEDIT = $8026;
SC_BEGINSELECT = $8027;
SC_ENDSELECT = $8028;
SC_WINDOW = $8029;
SC_HIDE = $802a;
TBM_SETHILITE = $01e3;
TBM_QUERYHILITE = $01e4;
function WinCopyRect(hab : HAB;prclDst : PRECTL;prclSrc : PRECTL) : BOOL;
function WinSetRect(hab : HAB;prcl : PRECTL;xLeft : LONG;yBottom : LONG;xRight : LONG;yTop : LONG) : BOOL;
function WinIsRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;
function WinEqualRect(hab : HAB;prcl1 : PRECTL;prcl2 : PRECTL) : BOOL;
function WinSetRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;
function WinOffsetRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;
function WinInflateRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;
function WinPtInRect(hab : HAB;prcl : PRECTL;pptl : PPOINTL) : BOOL;
function WinIntersectRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
function WinUnionRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
function WinSubtractRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
function WinMakeRect(hab : HAB;pwrc : PRECTL) : BOOL;
function WinMakePoints(hab : HAB;pwpt : PPOINTL;cwpt : ULONG) : BOOL;
function WinQuerySysValue(hwndDesktop : HWND;iSysValue : LONG) : LONG;
function WinSetSysValue(hwndDesktop : HWND;iSysValue : LONG;lValue : LONG) : BOOL;
const
SV_SWAPBUTTON = 0;
SV_DBLCLKTIME = 1;
SV_CXDBLCLK = 2;
SV_CYDBLCLK = 3;
SV_CXSIZEBORDER = 4;
SV_CYSIZEBORDER = 5;
SV_ALARM = 6;
SV_RESERVEDFIRST1 = 7;
SV_RESERVEDLAST1 = 8;
SV_CURSORRATE = 9;
SV_FIRSTSCROLLRATE = 10;
SV_SCROLLRATE = 11;
SV_NUMBEREDLISTS = 12;
SV_WARNINGFREQ = 13;
SV_NOTEFREQ = 14;
SV_ERRORFREQ = 15;
SV_WARNINGDURATION = 16;
SV_NOTEDURATION = 17;
SV_ERRORDURATION = 18;
SV_RESERVEDFIRST = 19;
SV_RESERVEDLAST = 19;
SV_CXSCREEN = 20;
SV_CYSCREEN = 21;
SV_CXVSCROLL = 22;
SV_CYHSCROLL = 23;
SV_CYVSCROLLARROW = 24;
SV_CXHSCROLLARROW = 25;
SV_CXBORDER = 26;
SV_CYBORDER = 27;
SV_CXDLGFRAME = 28;
SV_CYDLGFRAME = 29;
SV_CYTITLEBAR = 30;
SV_CYVSLIDER = 31;
SV_CXHSLIDER = 32;
SV_CXMINMAXBUTTON = 33;
SV_CYMINMAXBUTTON = 34;
SV_CYMENU = 35;
SV_CXFULLSCREEN = 36;
SV_CYFULLSCREEN = 37;
SV_CXICON = 38;
SV_CYICON = 39;
SV_CXPOINTER = 40;
SV_CYPOINTER = 41;
SV_DEBUG = 42;
SV_CMOUSEBUTTONS = 43;
SV_CPOINTERBUTTONS = 43;
SV_POINTERLEVEL = 44;
SV_CURSORLEVEL = 45;
SV_TRACKRECTLEVEL = 46;
SV_CTIMERS = 47;
SV_MOUSEPRESENT = 48;
SV_CXBYTEALIGN = 49;
SV_CXALIGN = 49;
SV_CYBYTEALIGN = 50;
SV_CYALIGN = 50;
SV_NOTRESERVED = 56;
SV_EXTRAKEYBEEP = 57;
SV_SETLIGHTS = 58;
SV_INSERTMODE = 59;
SV_MENUROLLDOWNDELAY = 64;
SV_MENUROLLUPDELAY = 65;
SV_ALTMNEMONIC = 66;
SV_TASKLISTMOUSEACCESS = 67;
SV_CXICONTEXTWIDTH = 68;
SV_CICONTEXTLINES = 69;
SV_CHORDTIME = 70;
SV_CXCHORD = 71;
SV_CYCHORD = 72;
SV_CXMOTION = 73;
SV_CYMOTION = 74;
SV_BEGINDRAG = 75;
SV_ENDDRAG = 76;
SV_SINGLESELECT = 77;
SV_OPEN = 78;
SV_CONTEXTMENU = 79;
SV_CONTEXTHELP = 80;
SV_TEXTEDIT = 81;
SV_BEGINSELECT = 82;
SV_ENDSELECT = 83;
SV_BEGINDRAGKB = 84;
SV_ENDDRAGKB = 85;
SV_SELECTKB = 86;
SV_OPENKB = 87;
SV_CONTEXTMENUKB = 88;
SV_CONTEXTHELPKB = 89;
SV_TEXTEDITKB = 90;
SV_BEGINSELECTKB = 91;
SV_ENDSELECTKB = 92;
SV_ANIMATION = 93;
SV_ANIMATIONSPEED = 94;
SV_MONOICONS = 95;
SV_KBDALTERED = 96;
SV_PRINTSCREEN = 97;
SV_CSYSVALUES = 98;
type
PARAM = record
id : ULONG;
cb : ULONG;
ab : array[0..1-1] of BYTE;
end;
NPPARAM = ^PARAM;
PPARAM = ^PARAM;
PRESPARAMS = record
cb : ULONG;
aparam : array[0..1-1] of PARAM;
end;
NPPRESPARAMS = ^PRESPARAMS;
PPRESPARAMS = ^PRESPARAMS;
function WinSetPresParam(hwnd : HWND;id : ULONG;cbParam : ULONG;pbParam : PVOID) : BOOL;
function WinQueryPresParam(hwnd : HWND;id1 : ULONG;id2 : ULONG;pulId : PULONG;cbBuf : ULONG;pbBuf : PVOID;fs : ULONG) : ULONG;
function WinRemovePresParam(hwnd : HWND;id : ULONG) : BOOL;
const
PP_FOREGROUNDCOLOR = 1;
PP_FOREGROUNDCOLORINDEX = 2;
PP_BACKGROUNDCOLOR = 3;
PP_BACKGROUNDCOLORINDEX = 4;
PP_HILITEFOREGROUNDCOLOR = 5;
PP_HILITEFOREGROUNDCOLORINDEX = 6;
PP_HILITEBACKGROUNDCOLOR = 7;
PP_HILITEBACKGROUNDCOLORINDEX = 8;
PP_DISABLEDFOREGROUNDCOLOR = 9;
PP_DISABLEDFOREGROUNDCOLORINDEX = 10;
PP_DISABLEDBACKGROUNDCOLOR = 11;
PP_DISABLEDBACKGROUNDCOLORINDEX = 12;
PP_BORDERCOLOR = 13;
PP_BORDERCOLORINDEX = 14;
PP_FONTNAMESIZE = 15;
PP_FONTHANDLE = 16;
PP_RESERVED = 17;
PP_ACTIVECOLOR = 18;
PP_ACTIVECOLORINDEX = 19;
PP_INACTIVECOLOR = 20;
PP_INACTIVECOLORINDEX = 21;
PP_ACTIVETEXTFGNDCOLOR = 22;
PP_ACTIVETEXTFGNDCOLORINDEX = 23;
PP_ACTIVETEXTBGNDCOLOR = 24;
PP_ACTIVETEXTBGNDCOLORINDEX = 25;
PP_INACTIVETEXTFGNDCOLOR = 26;
PP_INACTIVETEXTFGNDCOLORINDEX = 27;
PP_INACTIVETEXTBGNDCOLOR = 28;
PP_INACTIVETEXTBGNDCOLORINDEX = 29;
PP_SHADOW = 30;
PP_MENUFOREGROUNDCOLOR = 31;
PP_MENUFOREGROUNDCOLORINDEX = 32;
PP_MENUBACKGROUNDCOLOR = 33;
PP_MENUBACKGROUNDCOLORINDEX = 34;
PP_MENUHILITEFGNDCOLOR = 35;
PP_MENUHILITEFGNDCOLORINDEX = 36;
PP_MENUHILITEBGNDCOLOR = 37;
PP_MENUHILITEBGNDCOLORINDEX = 38;
PP_MENUDISABLEDFGNDCOLOR = 39;
PP_MENUDISABLEDFGNDCOLORINDEX = 40;
PP_MENUDISABLEDBGNDCOLOR = 41;
PP_MENUDISABLEDBGNDCOLORINDEX = 42;
PP_USER = $8000;
QPF_NOINHERIT = $0001;
QPF_ID1COLORINDEX = $0002;
QPF_ID2COLORINDEX = $0004;
QPF_PURERGBCOLOR = $0008;
QPF_VALIDFLAGS = $000F;
function WinQuerySysColor(hwndDesktop : HWND;clr : LONG;lReserved : LONG) : LONG;
function WinSetSysColors(hwndDesktop : HWND;flOptions : ULONG;flFormat : ULONG;clrFirst : LONG;cclr : ULONG;pclr : PLONG) : BOOL;
const
SYSCLR_SHADOWHILITEBGND = (-50);
SYSCLR_SHADOWHILITEFGND = (-49);
SYSCLR_SHADOWTEXT = (-48);
SYSCLR_ENTRYFIELD = (-47);
SYSCLR_MENUDISABLEDTEXT = (-46);
SYSCLR_MENUHILITE = (-45);
SYSCLR_MENUHILITEBGND = (-44);
SYSCLR_PAGEBACKGROUND = (-43);
SYSCLR_FIELDBACKGROUND = (-42);
SYSCLR_BUTTONLIGHT = (-41);
SYSCLR_BUTTONMIDDLE = (-40);
SYSCLR_BUTTONDARK = (-39);
SYSCLR_BUTTONDEFAULT = (-38);
SYSCLR_TITLEBOTTOM = (-37);
SYSCLR_SHADOW = (-36);
SYSCLR_ICONTEXT = (-35);
SYSCLR_DIALOGBACKGROUND = (-34);
SYSCLR_HILITEFOREGROUND = (-33);
SYSCLR_HILITEBACKGROUND = (-32);
SYSCLR_INACTIVETITLETEXTBGND = (-31);
SYSCLR_ACTIVETITLETEXTBGND = (-30);
SYSCLR_INACTIVETITLETEXT = (-29);
SYSCLR_ACTIVETITLETEXT = (-28);
SYSCLR_OUTPUTTEXT = (-27);
SYSCLR_WINDOWSTATICTEXT = (-26);
SYSCLR_SCROLLBAR = (-25);
SYSCLR_BACKGROUND = (-24);
SYSCLR_ACTIVETITLE = (-23);
SYSCLR_INACTIVETITLE = (-22);
SYSCLR_MENU = (-21);
SYSCLR_WINDOW = (-20);
SYSCLR_WINDOWFRAME = (-19);
SYSCLR_MENUTEXT = (-18);
SYSCLR_WINDOWTEXT = (-17);
SYSCLR_TITLETEXT = (-16);
SYSCLR_ACTIVEBORDER = (-15);
SYSCLR_INACTIVEBORDER = (-14);
SYSCLR_APPWORKSPACE = (-13);
SYSCLR_HELPBACKGROUND = (-12);
SYSCLR_HELPTEXT = (-11);
SYSCLR_HELPHILITE = (-10);
SYSCLR_CSYSCOLORS = 41;
function WinStartTimer(hab : HAB;hwnd : HWND;idTimer : ULONG;dtTimeout : ULONG) : ULONG;
function WinStopTimer(hab : HAB;hwnd : HWND;idTimer : ULONG) : BOOL;
function WinGetCurrentTime(hab : HAB) : ULONG;
const
TID_CURSOR = $ffff;
TID_SCROLL = $fffe;
TID_FLASHWINDOW = $fffd;
TID_USERMAX = $7fff;
type
HACCEL = LHANDLE;
const
AF_CHAR = $0001;
AF_VIRTUALKEY = $0002;
AF_SCANCODE = $0004;
AF_SHIFT = $0008;
AF_CONTROL = $0010;
AF_ALT = $0020;
AF_LONEKEY = $0040;
AF_SYSCOMMAND = $0100;
AF_HELP = $0200;
{$PACKRECORDS 2}
type
ACCEL = record
fs : USHORT;
key : USHORT;
cmd : USHORT;
end;
PACCEL = ^ACCEL;
ACCELTABLE = record
cAccel : USHORT;
codepage : USHORT;
aaccel : array[0..1-1] of ACCEL;
end;
PACCELTABLE = ^ACCELTABLE;
{$PACKRECORDS NORMAL}
function WinLoadAccelTable(hab : HAB;hmod : HMODULE;idAccelTable : ULONG) : HACCEL;
function WinCopyAccelTable(haccel : HACCEL;pAccelTable : PACCELTABLE;cbCopyMax : ULONG) : ULONG;
function WinCreateAccelTable(hab : HAB;pAccelTable : PACCELTABLE) : HACCEL;
function WinDestroyAccelTable(haccel : HACCEL) : BOOL;
function WinTranslateAccel(hab : HAB;hwnd : HWND;haccel : HACCEL;pqmsg : PQMSG) : BOOL;
function WinSetAccelTable(hab : HAB;haccel : HACCEL;hwndFrame : HWND) : BOOL;
function WinQueryAccelTable(hab : HAB;hwndFrame : HWND) : HACCEL;
const
EAF_DEFAULTOWNER = $0001;
EAF_UNCHANGEABLE = $0002;
EAF_REUSEICON = $0004;
type
TRACKINFO = record
cxBorder : LONG;
cyBorder : LONG;
cxGrid : LONG;
cyGrid : LONG;
cxKeyboard : LONG;
cyKeyboard : LONG;
rclTrack : RECTL;
rclBoundary : RECTL;
ptlMinTrackSize : POINTL;
ptlMaxTrackSize : POINTL;
fs : ULONG;
end;
PTRACKINFO = ^TRACKINFO;
function WinTrackRect(hwnd : HWND;hps : HPS;pti : PTRACKINFO) : BOOL;
function WinShowTrackRect(hwnd : HWND;fShow : BOOL) : BOOL;
const
TF_LEFT = $0001;
TF_TOP = $0002;
TF_RIGHT = $0004;
TF_BOTTOM = $0008;
TF_MOVE = $000F;
TF_SETPOINTERPOS = $0010;
TF_GRID = $0020;
TF_STANDARD = $0040;
TF_ALLINBOUNDARY = $0080;
TF_VALIDATETRACKRECT = $0100;
TF_PARTINBOUNDARY = $0200;
WM_RENDERFMT = $0060;
WM_RENDERALLFMTS = $0061;
WM_DESTROYCLIPBOARD = $0062;
WM_PAINTCLIPBOARD = $0063;
WM_SIZECLIPBOARD = $0064;
WM_HSCROLLCLIPBOARD = $0065;
WM_VSCROLLCLIPBOARD = $0066;
WM_DRAWCLIPBOARD = $0067;
CF_TEXT = 1;
CF_BITMAP = 2;
CF_DSPTEXT = 3;
CF_DSPBITMAP = 4;
CF_METAFILE = 5;
CF_DSPMETAFILE = 6;
CF_PALETTE = 9;
SZFMT_TEXT = '#1';
SZFMT_BITMAP = '#2';
SZFMT_DSPTEXT = '#3';
SZFMT_DSPBITMAP = '#4';
SZFMT_METAFILE = '#5';
SZFMT_DSPMETAFILE = '#6';
SZFMT_PALETTE = '#9';
SZFMT_SYLK = 'Sylk';
SZFMT_DIF = 'Dif';
SZFMT_TIFF = 'Tiff';
SZFMT_OEMTEXT = 'OemText';
SZFMT_DIB = 'Dib';
SZFMT_OWNERDISPLAY = 'OwnerDisplay';
SZFMT_LINK = 'Link';
SZFMT_METAFILEPICT = 'MetaFilePict';
SZFMT_DSPMETAFILEPICT = 'DspMetaFilePict';
SZFMT_CPTEXT = 'Codepage Text';
SZDDEFMT_RTF = 'Rich Text Format';
SZDDEFMT_PTRPICT = 'Printer_Picture';
{$PACKRECORDS 2}
type
MFP = record
sizeBounds : POINTL;
sizeMM : POINTL;
cbLength : ULONG;
mapMode : USHORT;
reserved : USHORT;
abData : array[0..1-1] of BYTE;
end;
PMFP = ^MFP;
CPTEXT = record
idCountry : USHORT;
usCodepage : USHORT;
usLangID : USHORT;
usSubLangID : USHORT;
abText : array[0..1-1] of BYTE;
end;
PCPTEXT = ^CPTEXT;
{$PACKRECORDS NORMAL}
function WinSetClipbrdOwner(hab : HAB;hwnd : HWND) : BOOL;
function WinSetClipbrdData(hab : HAB;ulData : ULONG;fmt : ULONG;rgfFmtInfo : ULONG) : BOOL;
function WinQueryClipbrdData(hab : HAB;fmt : ULONG) : ULONG;
function WinQueryClipbrdFmtInfo(hab : HAB;fmt : ULONG;prgfFmtInfo : PULONG) : BOOL;
function WinSetClipbrdViewer(hab : HAB;hwndNewClipViewer : HWND) : BOOL;
const
CFI_OWNERFREE = $0001;
CFI_OWNERDISPLAY = $0002;
CFI_POINTER = $0400;
CFI_HANDLE = $0200;
function WinEnumClipbrdFmts(hab : HAB;fmt : ULONG) : ULONG;
function WinEmptyClipbrd(hab : HAB) : BOOL;
function WinOpenClipbrd(hab : HAB) : BOOL;
function WinCloseClipbrd(hab : HAB) : BOOL;
function WinQueryClipbrdOwner(hab : HAB) : HWND;
function WinQueryClipbrdViewer(hab : HAB) : HWND;
function WinDestroyCursor(hwnd : HWND) : BOOL;
function WinShowCursor(hwnd : HWND;fShow : BOOL) : BOOL;
function WinCreateCursor(hwnd : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fs : ULONG;prclClip : PRECTL) : BOOL;
const
CURSOR_SOLID = $0000;
CURSOR_HALFTONE = $0001;
CURSOR_FRAME = $0002;
CURSOR_FLASH = $0004;
CURSOR_SETPOS = $8000;
type
CURSORINFO = record
hwnd : HWND;
x : LONG;
y : LONG;
cx : LONG;
cy : LONG;
fs : ULONG;
rclClip : RECTL;
end;
PCURSORINFO = ^CURSORINFO;
function WinQueryCursorInfo(hwndDesktop : HWND;pCursorInfo : PCURSORINFO) : BOOL;
type
HPOINTER = LHANDLE;
function WinSetPointer(hwndDesktop : HWND;hptrNew : HPOINTER) : BOOL;
function WinSetPointerOwner(hptr : HPOINTER;pid : PID;fDestroy : BOOL) : BOOL;
function WinShowPointer(hwndDesktop : HWND;fShow : BOOL) : BOOL;
function WinQuerySysPointer(hwndDesktop : HWND;iptr : LONG;fLoad : BOOL) : HPOINTER;
const
SPTR_ARROW = 1;
SPTR_TEXT = 2;
SPTR_WAIT = 3;
SPTR_SIZE = 4;
SPTR_MOVE = 5;
SPTR_SIZENWSE = 6;
SPTR_SIZENESW = 7;
SPTR_SIZEWE = 8;
SPTR_SIZENS = 9;
SPTR_APPICON = 10;
SPTR_ICONINFORMATION = 11;
SPTR_ICONQUESTION = 12;
SPTR_ICONERROR = 13;
SPTR_ICONWARNING = 14;
SPTR_CPTR = 14;
SPTR_ILLEGAL = 18;
SPTR_FILE = 19;
SPTR_FOLDER = 20;
SPTR_MULTFILE = 21;
SPTR_PROGRAM = 22;
SPTR_HANDICON = SPTR_ICONERROR;
SPTR_QUESICON = SPTR_ICONQUESTION;
SPTR_BANGICON = SPTR_ICONWARNING;
SPTR_NOTEICON = SPTR_ICONINFORMATION;
function WinLoadPointer(hwndDesktop : HWND;hmod : HMODULE;idres : ULONG) : HPOINTER;
function WinCreatePointer(hwndDesktop : HWND;hbmPointer : HBITMAP;fPointer : BOOL;xHotspot : LONG;yHotspot : LONG) : HPOINTER;
function WinSetPointerPos(hwndDesktop : HWND;x : LONG;y : LONG) : BOOL;
function WinDestroyPointer(hptr : HPOINTER) : BOOL;
function WinQueryPointer(hwndDesktop : HWND) : HPOINTER;
function WinQueryPointerPos(hwndDesktop : HWND;pptl : PPOINTL) : BOOL;
type
POINTERINFO = record
fPointer : ULONG;
xHotspot : LONG;
yHotspot : LONG;
hbmPointer : HBITMAP;
hbmColor : HBITMAP;
hbmMiniPointer : HBITMAP;
hbmMiniColor : HBITMAP;
end;
PPOINTERINFO = ^POINTERINFO;
function WinCreatePointerIndirect(hwndDesktop : HWND;pptri : PPOINTERINFO) : HPOINTER;
function WinQueryPointerInfo(hptr : HPOINTER;pPointerInfo : PPOINTERINFO) : BOOL;
function WinDrawPointer(hps : HPS;x : LONG;y : LONG;hptr : HPOINTER;fs : ULONG) : BOOL;
const
DP_NORMAL = $0000;
DP_HALFTONED = $0001;
DP_INVERTED = $0002;
function WinGetSysBitmap(hwndDesktop : HWND;ibm : ULONG) : HBITMAP;
const
SBMP_OLD_SYSMENU = 1;
SBMP_OLD_SBUPARROW = 2;
SBMP_OLD_SBDNARROW = 3;
SBMP_OLD_SBRGARROW = 4;
SBMP_OLD_SBLFARROW = 5;
SBMP_MENUCHECK = 6;
SBMP_OLD_CHECKBOXES = 7;
SBMP_BTNCORNERS = 8;
SBMP_OLD_MINBUTTON = 9;
SBMP_OLD_MAXBUTTON = 10;
SBMP_OLD_RESTOREBUTTON = 11;
SBMP_OLD_CHILDSYSMENU = 12;
SBMP_DRIVE = 15;
SBMP_FILE = 16;
SBMP_FOLDER = 17;
SBMP_TREEPLUS = 18;
SBMP_TREEMINUS = 19;
SBMP_PROGRAM = 22;
SBMP_MENUATTACHED = 23;
SBMP_SIZEBOX = 24;
SBMP_SYSMENU = 25;
SBMP_MINBUTTON = 26;
SBMP_MAXBUTTON = 27;
SBMP_RESTOREBUTTON = 28;
SBMP_CHILDSYSMENU = 29;
SBMP_SYSMENUDEP = 30;
SBMP_MINBUTTONDEP = 31;
SBMP_MAXBUTTONDEP = 32;
SBMP_RESTOREBUTTONDEP = 33;
SBMP_CHILDSYSMENUDEP = 34;
SBMP_SBUPARROW = 35;
SBMP_SBDNARROW = 36;
SBMP_SBLFARROW = 37;
SBMP_SBRGARROW = 38;
SBMP_SBUPARROWDEP = 39;
SBMP_SBDNARROWDEP = 40;
SBMP_SBLFARROWDEP = 41;
SBMP_SBRGARROWDEP = 42;
SBMP_SBUPARROWDIS = 43;
SBMP_SBDNARROWDIS = 44;
SBMP_SBLFARROWDIS = 45;
SBMP_SBRGARROWDIS = 46;
SBMP_COMBODOWN = 47;
SBMP_CHECKBOXES = 48;
function WinSetHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;
function WinReleaseHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;
function WinCallMsgFilter(hab : HAB;pqmsg : PQMSG;msgf : ULONG) : BOOL;
const
HK_SENDMSG = 0;
HK_INPUT = 1;
HK_MSGFILTER = 2;
HK_JOURNALRECORD = 3;
HK_JOURNALPLAYBACK = 4;
HK_HELP = 5;
HK_LOADER = 6;
HK_REGISTERUSERMSG = 7;
HK_MSGCONTROL = 8;
HK_PLIST_ENTRY = 9;
HK_PLIST_EXIT = 10;
HK_FINDWORD = 11;
HK_CODEPAGECHANGED = 12;
HK_WINDOWDC = 15;
HK_DESTROYWINDOW = 16;
HK_CHECKMSGFILTER = 20;
HMQ_CURRENT = 1;
MSGF_DIALOGBOX = 1;
MSGF_MESSAGEBOX = 2;
MSGF_TRACK = 8;
MSGF_DDEPOSTMSG = 3;
HLPM_FRAME = (-1);
HLPM_WINDOW = (-2);
HLPM_MENU = (-3);
PM_MODEL_1X = 0;
PM_MODEL_2X = 1;
type
SMHSTRUCT = record
mp2 : MPARAM;
mp1 : MPARAM;
msg : ULONG;
hwnd : HWND;
model : ULONG;
end;
PSMHSTRUCT = ^SMHSTRUCT;
const
LHK_DELETEPROC = 1;
LHK_DELETELIB = 2;
LHK_LOADPROC = 3;
LHK_LOADLIB = 4;
MCHK_MSGINTEREST = 1;
MCHK_CLASSMSGINTEREST = 2;
MCHK_SYNCHRONISATION = 3;
MCHK_MSGMODE = 4;
RUMHK_DATATYPE = 1;
RUMHK_MSG = 2;
function WinSetClassThunkProc(pszClassname : PSZ;pfnThunkProc : PFN) : BOOL;
function WinQueryClassThunkProc(pszClassname : PSZ) : PFN;
function WinSetWindowThunkProc(hwnd : HWND;pfnThunkProc : PFN) : BOOL;
function WinQueryWindowThunkProc(hwnd : HWND) : PFN;
function WinQueryWindowModel(hwnd : HWND) : LONG;
function WinQueryCp(hmq : HMQ) : ULONG;
function WinSetCp(hmq : HMQ;idCodePage : ULONG) : BOOL;
function WinQueryCpList(hab : HAB;ccpMax : ULONG;prgcp : PULONG) : ULONG;
function WinCpTranslateString(hab : HAB;cpSrc : ULONG;pszSrc : PSZ;cpDst : ULONG;cchDestMax : ULONG;pchDest : PSZ) : BOOL;
function WinCpTranslateChar(hab : HAB;cpSrc : ULONG;chSrc : UCHAR;cpDst : ULONG) : UCHAR;
function WinUpper(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : ULONG;
function WinUpperChar(hab : HAB;idcp : ULONG;idcc : ULONG;c : ULONG) : ULONG;
function WinNextChar(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : PSZ;
function WinPrevChar(hab : HAB;idcp : ULONG;idcc : ULONG;pszStart : PSZ;psz : PSZ) : PSZ;
function WinCompareStrings(hab : HAB;idcp : ULONG;idcc : ULONG;psz1 : PSZ;psz2 : PSZ;reserved : ULONG) : ULONG;
const
WCS_ERROR = 0;
WCS_EQ = 1;
WCS_LT = 2;
WCS_GT = 3;
type
HATOMTBL = LHANDLE;
ATOM = ULONG;
function WinCreateAtomTable(cbInitial : ULONG;cBuckets : ULONG) : HATOMTBL;
function WinDestroyAtomTable(hAtomTbl : HATOMTBL) : HATOMTBL;
function WinAddAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;
function WinFindAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;
function WinDeleteAtom(hAtomTbl : HATOMTBL;atom : ATOM) : ATOM;
function WinQueryAtomUsage(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;
function WinQueryAtomLength(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;
function WinQueryAtomName(hAtomTbl : HATOMTBL;atom : ATOM;pchBuffer : PSZ;cchBufferMax : ULONG) : ULONG;
const
WINDBG_HWND_NOT_DESTROYED = $1022;
WINDBG_HPTR_NOT_DESTROYED = $1023;
WINDBG_HACCEL_NOT_DESTROYED = $1024;
WINDBG_HENUM_NOT_DESTROYED = $1025;
WINDBG_VISRGN_SEM_BUSY = $1026;
WINDBG_USER_SEM_BUSY = $1027;
WINDBG_DC_CACHE_BUSY = $1028;
WINDBG_HOOK_STILL_INSTALLED = $1029;
WINDBG_WINDOW_STILL_LOCKED = $102a;
WINDBG_UPDATEPS_ASSERTION_FAIL = $102b;
WINDBG_SENDMSG_WITHIN_USER_SEM = $102c;
WINDBG_USER_SEM_NOT_ENTERED = $102d;
WINDBG_PROC_NOT_EXPORTED = $102e;
WINDBG_BAD_SENDMSG_HWND = $102f;
WINDBG_ABNORMAL_EXIT = $1030;
WINDBG_INTERNAL_REVISION = $1031;
WINDBG_INITSYSTEM_FAILED = $1032;
WINDBG_HATOMTBL_NOT_DESTROYED = $1033;
WINDBG_WINDOW_UNLOCK_WAIT = $1035;
type
ERRINFO = record
cbFixedErrInfo : ULONG;
idError : ERRORID;
cDetailLevel : ULONG;
offaoffszMsg : ULONG;
offBinaryData : ULONG;
end;
PERRINFO = ^ERRINFO;
function WinGetLastError(hab : HAB) : ERRORID;
function WinGetErrorInfo(hab : HAB) : PERRINFO;
function WinFreeErrorInfo(perrinfo : PERRINFO) : BOOL;
const
SZDDESYS_TOPIC = 'System';
SZDDESYS_ITEM_TOPICS = 'Topics';
SZDDESYS_ITEM_SYSITEMS = 'SysItems';
SZDDESYS_ITEM_RTNMSG = 'ReturnMessage';
SZDDESYS_ITEM_STATUS = 'Status';
SZDDESYS_ITEM_FORMATS = 'Formats';
SZDDESYS_ITEM_SECURITY = 'Security';
SZDDESYS_ITEM_ITEMFORMATS = 'ItemFormats';
SZDDESYS_ITEM_HELP = 'Help';
SZDDESYS_ITEM_PROTOCOLS = 'Protocols';
SZDDESYS_ITEM_RESTART = 'Restart';
type
CONVCONTEXT = record
cb : ULONG;
fsContext : ULONG;
idCountry : ULONG;
usCodepage : ULONG;
usLangID : ULONG;
usSubLangID : ULONG;
end;
PCONVCONTEXT = ^CONVCONTEXT;
const
DDECTXT_CASESENSITIVE = $0001;
type
DDEINIT = record
cb : ULONG;
pszAppName : PSZ;
pszTopic : PSZ;
offConvContext : ULONG;
end;
PDDEINIT = ^DDEINIT;
DDESTRUCT = record
cbData : ULONG;
fsStatus : USHORT;
usFormat : USHORT;
offszItemName : USHORT;
offabData : USHORT;
end;
PDDESTRUCT = ^DDESTRUCT;
const
DDE_FACK = $0001;
DDE_FBUSY = $0002;
DDE_FNODATA = $0004;
DDE_FACKREQ = $0008;
DDE_FRESPONSE = $0010;
DDE_NOTPROCESSED = $0020;
DDE_FRESERVED = $00C0;
DDE_FAPPSTATUS = $FF00;
DDEFMT_TEXT = $0001;
function WinDdeInitiate(hwndClient : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : BOOL;
function WinDdeRespond(hwndClient : HWND;hwndServer : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : MRESULT;
function WinDdePostMsg(hwndTo : HWND;hwndFrom : HWND;wm : ULONG;pddest : PDDESTRUCT;flOptions : ULONG) : BOOL;
const
DDEPM_RETRY = $00000001;
DDEPM_NOFREE = $00000002;
WM_DDE_FIRST = $00A0;
WM_DDE_INITIATE = $00A0;
WM_DDE_REQUEST = $00A1;
WM_DDE_ACK = $00A2;
WM_DDE_DATA = $00A3;
WM_DDE_ADVISE = $00A4;
WM_DDE_UNADVISE = $00A5;
WM_DDE_POKE = $00A6;
WM_DDE_EXECUTE = $00A7;
WM_DDE_TERMINATE = $00A8;
WM_DDE_INITIATEACK = $00A9;
WM_DDE_LAST = $00AF;
WM_QUERYCONVERTPOS = $00b0;
QCP_CONVERT = $0001;
QCP_NOCONVERT = $0000;
type
HLIB = HMODULE;
PHLIB = PHMODULE;
function WinDeleteProcedure(hab : HAB;wndproc : PFNWP) : BOOL;
function WinDeleteLibrary(hab : HAB;libhandle : HLIB) : BOOL;
function WinLoadProcedure(hab : HAB;libhandle : HLIB;procname : PSZ) : PFNWP;
function WinLoadLibrary(hab : HAB;libname : PSZ) : HLIB;
type
DESKTOP = record
cbSize : ULONG;
hbm : HBITMAP;
x : LONG;
y : LONG;
fl : ULONG;
lTileCount : LONG;
szFile : array[0..260-1] of CHAR;
end;
PDESKTOP = ^DESKTOP;
function WinSetDesktopBkgnd(hwndDesktop : HWND;pdskNew : PDESKTOP) : HBITMAP;
function WinQueryDesktopBkgnd(hwndDesktop : HWND;pdsk : PDESKTOP) : BOOL;
const
SDT_DESTROY = $0001;
SDT_NOBKGND = $0002;
SDT_TILE = $0004;
SDT_SCALE = $0008;
SDT_PATTERN = $0010;
SDT_CENTER = $0020;
SDT_RETAIN = $0040;
SDT_LOADFILE = $0080;
function WinRealizePalette(hwnd : HWND;hps : HPS;pcclr : PULONG) : LONG;
const
STR_DLLNAME = 'keyremap';
WM_DBCSFIRST = $00b0;
WM_DBCSLAST = $00cf;
function HWNDFROMMP(mp : MPARAM) : HWND;
function SHORT1FROMMP(mp : MPARAM) : USHORT;
function SHORT2FROMMP(mp : MPARAM) : USHORT;
implementation
function WinRegisterClass(hab : HAB;pszClassName : PSZ;pfnWndProc : PFNWP;flStyle : ULONG;cbWindowData : ULONG) : BOOL;[SYSTEM];
function WinDefWindowProc(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
function WinDestroyWindow(hwnd : HWND) : BOOL;[SYSTEM];
function WinShowWindow(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
function WinQueryWindowRect(hwnd : HWND;prclDest : PRECTL) : BOOL;[SYSTEM];
function WinGetPS(hwnd : HWND) : HPS;[SYSTEM];
function WinReleasePS(hps : HPS) : BOOL;[SYSTEM];
function WinEndPaint(hps : HPS) : BOOL;[SYSTEM];
function WinGetClipPS(hwnd : HWND;hwndClip : HWND;fl : ULONG) : HPS;[SYSTEM];
function WinIsWindowShowing(hwnd : HWND) : BOOL;[SYSTEM];
function WinBeginPaint(hwnd : HWND;hps : HPS;prclPaint : PRECTL) : HPS;[SYSTEM];
function WinOpenWindowDC(hwnd : HWND) : HDC;[SYSTEM];
function WinScrollWindow(hwnd : HWND;dx : LONG;dy : LONG;prclScroll : PRECTL;prclClip : PRECTL;hrgnUpdate : HRGN;prclUpdate : PRECTL;rgfsw : ULONG) : LONG;[SYSTEM];
function WinFillRect(hps : HPS;prcl : PRECTL;lColor : LONG) : BOOL;[SYSTEM];
function WinQueryVersion(hab : HAB) : ULONG;[SYSTEM];
function WinInitialize(flOptions : ULONG) : HAB;[SYSTEM];
function WinTerminate(hab : HAB) : BOOL;[SYSTEM];
function WinQueryAnchorBlock(hwnd : HWND) : HAB;[SYSTEM];
function WinCreateWindow(hwndParent : HWND;pszClass : PSZ;pszName : PSZ;flStyle : ULONG;x : LONG;y : LONG;cx : LONG;cy : LONG;hwndOwner : HWND;hwndInsertBehind : HWND;id : ULONG;pCtlData : PVOID;pPresParams : PVOID) : HWND;[SYSTEM];
function WinEnableWindow(hwnd : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
function WinIsWindowEnabled(hwnd : HWND) : BOOL;[SYSTEM];
function WinEnableWindowUpdate(hwnd : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
function WinIsWindowVisible(hwnd : HWND) : BOOL;[SYSTEM];
function WinQueryWindowText(hwnd : HWND;cchBufferMax : LONG;pchBuffer : PCH) : LONG;[SYSTEM];
function WinSetWindowText(hwnd : HWND;pszText : PSZ) : BOOL;[SYSTEM];
function WinQueryWindowTextLength(hwnd : HWND) : LONG;[SYSTEM];
function WinWindowFromID(hwndParent : HWND;id : ULONG) : HWND;[SYSTEM];
function WinIsWindow(hab : HAB;hwnd : HWND) : BOOL;[SYSTEM];
function WinQueryWindow(hwnd : HWND;cmd : LONG) : HWND;[SYSTEM];
function WinMultWindowFromIDs(hwndParent : HWND;prghwnd : PHWND;idFirst : ULONG;idLast : ULONG) : LONG;[SYSTEM];
function WinSetParent(hwnd : HWND;hwndNewParent : HWND;fRedraw : BOOL) : BOOL;[SYSTEM];
function WinIsChild(hwnd : HWND;hwndParent : HWND) : BOOL;[SYSTEM];
function WinSetOwner(hwnd : HWND;hwndNewOwner : HWND) : BOOL;[SYSTEM];
function WinQueryWindowProcess(hwnd : HWND;ppid : PPID;ptid : PTID) : BOOL;[SYSTEM];
function WinQueryObjectWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
function WinQueryDesktopWindow(hab : HAB;hdc : HDC) : HWND;[SYSTEM];
function WinSetWindowPos(hwnd : HWND;hwndInsertBehind : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fl : ULONG) : BOOL;[SYSTEM];
function WinSetMultWindowPos(hab : HAB;pswp : PSWP;cswp : ULONG) : BOOL;[SYSTEM];
function WinQueryWindowPos(hwnd : HWND;pswp : PSWP) : BOOL;[SYSTEM];
function WinUpdateWindow(hwnd : HWND) : BOOL;[SYSTEM];
function WinInvalidateRect(hwnd : HWND;pwrc : PRECTL;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
function WinInvalidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
function WinInvertRect(hps : HPS;prcl : PRECTL) : BOOL;[SYSTEM];
function WinDrawBitmap(hpsDst : HPS;hbm : HBITMAP;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore : LONG;clrBack : LONG;fl : ULONG) : BOOL;[SYSTEM];
function WinDrawText(hps : HPS;cchText : LONG;lpchText : PCH;prcl : PRECTL;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : LONG;[SYSTEM];
function WinDrawBorder(hps : HPS;prcl : PRECTL;cx : LONG;cy : LONG;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : BOOL;[SYSTEM];
function WinLoadString(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;[SYSTEM];
function WinLoadMessage(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;[SYSTEM];
function WinSetActiveWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
function WinSubclassWindow(hwnd : HWND;pfnwp : PFNWP) : PFNWP;[SYSTEM];
function WinQueryClassName(hwnd : HWND;cchMax : LONG;pch : PCH) : LONG;[SYSTEM];
function WinQueryClassInfo(hab : HAB;pszClassName : PSZ;pClassInfo : PCLASSINFO) : BOOL;[SYSTEM];
function WinQueryActiveWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
function WinIsThreadActive(hab : HAB) : BOOL;[SYSTEM];
function WinQuerySysModalWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
function WinSetSysModalWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
function WinQueryWindowUShort(hwnd : HWND;index : LONG) : USHORT;[SYSTEM];
function WinSetWindowUShort(hwnd : HWND;index : LONG;us : USHORT) : BOOL;[SYSTEM];
function WinQueryWindowULong(hwnd : HWND;index : LONG) : ULONG;[SYSTEM];
function WinSetWindowULong(hwnd : HWND;index : LONG;ul : ULONG) : BOOL;[SYSTEM];
function WinQueryWindowPtr(hwnd : HWND;index : LONG) : PVOID;[SYSTEM];
function WinSetWindowPtr(hwnd : HWND;index : LONG;p : PVOID) : BOOL;[SYSTEM];
function WinSetWindowBits(hwnd : HWND;index : LONG;flData : ULONG;flMask : ULONG) : BOOL;[SYSTEM];
function WinBeginEnumWindows(hwnd : HWND) : HENUM;[SYSTEM];
function WinGetNextWindow(henum : HENUM) : HWND;[SYSTEM];
function WinEndEnumWindows(henum : HENUM) : BOOL;[SYSTEM];
function WinWindowFromPoint(hwnd : HWND;pptl : PPOINTL;fChildren : BOOL) : HWND;[SYSTEM];
function WinMapWindowPoints(hwndFrom : HWND;hwndTo : HWND;prgptl : PPOINTL;cwpt : LONG) : BOOL;[SYSTEM];
function WinValidateRect(hwnd : HWND;prcl : PRECTL;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
function WinValidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
function WinWindowFromDC(hdc : HDC) : HWND;[SYSTEM];
function WinQueryWindowDC(hwnd : HWND) : HDC;[SYSTEM];
function WinGetScreenPS(hwndDesktop : HWND) : HPS;[SYSTEM];
function WinLockWindowUpdate(hwndDesktop : HWND;hwndLockUpdate : HWND) : BOOL;[SYSTEM];
function WinLockVisRegions(hwndDesktop : HWND;fLock : BOOL) : BOOL;[SYSTEM];
function WinQueryUpdateRect(hwnd : HWND;prcl : PRECTL) : BOOL;[SYSTEM];
function WinQueryUpdateRegion(hwnd : HWND;hrgn : HRGN) : LONG;[SYSTEM];
function WinExcludeUpdateRegion(hps : HPS;hwnd : HWND) : LONG;[SYSTEM];
function WinSendMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
function WinCreateMsgQueue(hab : HAB;cmsg : LONG) : HMQ;[SYSTEM];
function WinDestroyMsgQueue(hmq : HMQ) : BOOL;[SYSTEM];
function WinQueryQueueInfo(hmq : HMQ;pmqi : PMQINFO;cbCopy : ULONG) : BOOL;[SYSTEM];
function WinCancelShutdown(hmq : HMQ;fCancelAlways : BOOL) : BOOL;[SYSTEM];
function WinGetMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG) : BOOL;[SYSTEM];
function WinPeekMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG;fl : ULONG) : BOOL;[SYSTEM];
function WinDispatchMsg(hab : HAB;pqmsg : PQMSG) : MRESULT;[SYSTEM];
function WinPostMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;[SYSTEM];
function WinRegisterUserMsg(hab : HAB;msgid : ULONG;datatype1 : LONG;dir1 : LONG;datatype2 : LONG;dir2 : LONG;datatyper : LONG) : BOOL;[SYSTEM];
function WinRegisterUserDatatype(hab : HAB;datatype : LONG;count : LONG;types : PLONG) : BOOL;[SYSTEM];
function WinSetMsgMode(hab : HAB;classname : PSZ;control : LONG) : BOOL;[SYSTEM];
function WinSetSynchroMode(hab : HAB;mode : LONG) : BOOL;[SYSTEM];
function WinInSendMsg(hab : HAB) : BOOL;[SYSTEM];
function WinBroadcastMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM;rgf : ULONG) : BOOL;[SYSTEM];
function WinWaitMsg(hab : HAB;msgFirst : ULONG;msgLast : ULONG) : BOOL;[SYSTEM];
function WinQueryQueueStatus(hwndDesktop : HWND) : ULONG;[SYSTEM];
function WinQueryMsgPos(hab : HAB;pptl : PPOINTL) : BOOL;[SYSTEM];
function WinQueryMsgTime(hab : HAB) : ULONG;[SYSTEM];
function WinWaitEventSem(hev : HEV;ulTimeout : ULONG) : APIRET;[SYSTEM];
function WinRequestMutexSem(hmtx : HMTX;ulTimeout : ULONG) : APIRET;[SYSTEM];
function WinWaitMuxWaitSem(hmux : HMUX;ulTimeout : ULONG;pulUser : PULONG) : APIRET;[SYSTEM];
function WinPostQueueMsg(hmq : HMQ;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;[SYSTEM];
function WinSetMsgInterest(hwnd : HWND;msg_class : ULONG;control : LONG) : BOOL;[SYSTEM];
function WinSetClassMsgInterest(hab : HAB;pszClassName : PSZ;msg_class : ULONG;control : LONG) : BOOL;[SYSTEM];
function WinSetFocus(hwndDesktop : HWND;hwndSetFocus : HWND) : BOOL;[SYSTEM];
function WinFocusChange(hwndDesktop : HWND;hwndSetFocus : HWND;flFocusChange : ULONG) : BOOL;[SYSTEM];
function WinSetCapture(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
function WinQueryCapture(hwndDesktop : HWND) : HWND;[SYSTEM];
function WinQueryFocus(hwndDesktop : HWND) : HWND;[SYSTEM];
function WinGetKeyState(hwndDesktop : HWND;vkey : LONG) : LONG;[SYSTEM];
function WinGetPhysKeyState(hwndDesktop : HWND;sc : LONG) : LONG;[SYSTEM];
function WinEnablePhysInput(hwndDesktop : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
function WinIsPhysInputEnabled(hwndDesktop : HWND) : BOOL;[SYSTEM];
function WinSetKeyboardStateTable(hwndDesktop : HWND;pKeyStateTable : PBYTE;fSet : BOOL) : BOOL;[SYSTEM];
function WinGetDlgMsg(hwndDlg : HWND;pqmsg : PQMSG) : BOOL;[SYSTEM];
function WinLoadDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : HWND;[SYSTEM];
function WinDlgBox(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : ULONG;[SYSTEM];
function WinDismissDlg(hwndDlg : HWND;usResult : ULONG) : BOOL;[SYSTEM];
function WinQueryDlgItemShort(hwndDlg : HWND;idItem : ULONG;pResult : PSHORT;fSigned : BOOL) : BOOL;[SYSTEM];
function WinSetDlgItemShort(hwndDlg : HWND;idItem : ULONG;usValue : USHORT;fSigned : BOOL) : BOOL;[SYSTEM];
function WinSetDlgItemText(hwndDlg : HWND;idItem : ULONG;pszText : PSZ) : BOOL;[SYSTEM];
function WinQueryDlgItemText(hwndDlg : HWND;idItem : ULONG;cchBufferMax : LONG;pchBuffer : PSZ) : ULONG;[SYSTEM];
function WinQueryDlgItemTextLength(hwndDlg : HWND;idItem : ULONG) : LONG;[SYSTEM];
function WinDefDlgProc(hwndDlg : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
function WinAlarm(hwndDesktop : HWND;rgfType : ULONG) : BOOL;[SYSTEM];
function WinMessageBox(hwndParent : HWND;hwndOwner : HWND;pszText : PSZ;pszCaption : PSZ;idWindow : ULONG;flStyle : ULONG) : ULONG;[SYSTEM];
function WinProcessDlg(hwndDlg : HWND) : ULONG;[SYSTEM];
function WinSendDlgItemMsg(hwndDlg : HWND;idItem : ULONG;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
function WinMapDlgPoints(hwndDlg : HWND;prgwptl : PPOINTL;cwpt : ULONG;fCalcWindowCoords : BOOL) : BOOL;[SYSTEM];
function WinEnumDlgItem(hwndDlg : HWND;hwnd : HWND;code : ULONG) : HWND;[SYSTEM];
function WinSubstituteStrings(hwnd : HWND;pszSrc : PSZ;cchDstMax : LONG;pszDst : PSZ) : LONG;[SYSTEM];
function WinCreateDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;pdlgt : PDLGTEMPLATE;pCreateParams : PVOID) : HWND;[SYSTEM];
function WinLoadMenu(hwndFrame : HWND;hmod : HMODULE;idMenu : ULONG) : HWND;[SYSTEM];
function WinCreateMenu(hwndParent : HWND;lpmt : PVOID) : HWND;[SYSTEM];
function WinPopupMenu(hwndParent : HWND;hwndOwner : HWND;hwndMenu : HWND;x : LONG;y : LONG;idItem : LONG;fs : ULONG) : BOOL;[SYSTEM];
function WinCreateStdWindow(hwndParent : HWND;flStyle : ULONG;pflCreateFlags : PULONG;pszClientClass : PSZ;pszTitle : PSZ;styleClient : ULONG;hmod : HMODULE;idResources : ULONG;phwndClient : PHWND) : HWND;[SYSTEM];
function WinFlashWindow(hwndFrame : HWND;fFlash : BOOL) : BOOL;[SYSTEM];
function WinCreateFrameControls(hwndFrame : HWND;pfcdata : PFRAMECDATA;pszTitle : PSZ) : BOOL;[SYSTEM];
function WinCalcFrameRect(hwndFrame : HWND;prcl : PRECTL;fClient : BOOL) : BOOL;[SYSTEM];
function WinGetMinPosition(hwnd : HWND;pswp : PSWP;pptl : PPOINTL) : BOOL;[SYSTEM];
function WinGetMaxPosition(hwnd : HWND;pswp : PSWP) : BOOL;[SYSTEM];
function WinSaveWindowPos(hsvwp : HSAVEWP;pswp : PSWP;cswp : ULONG) : BOOL;[SYSTEM];
function WinCopyRect(hab : HAB;prclDst : PRECTL;prclSrc : PRECTL) : BOOL;[SYSTEM];
function WinSetRect(hab : HAB;prcl : PRECTL;xLeft : LONG;yBottom : LONG;xRight : LONG;yTop : LONG) : BOOL;[SYSTEM];
function WinIsRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;[SYSTEM];
function WinEqualRect(hab : HAB;prcl1 : PRECTL;prcl2 : PRECTL) : BOOL;[SYSTEM];
function WinSetRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;[SYSTEM];
function WinOffsetRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;[SYSTEM];
function WinInflateRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;[SYSTEM];
function WinPtInRect(hab : HAB;prcl : PRECTL;pptl : PPOINTL) : BOOL;[SYSTEM];
function WinIntersectRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
function WinUnionRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
function WinSubtractRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
function WinMakeRect(hab : HAB;pwrc : PRECTL) : BOOL;[SYSTEM];
function WinMakePoints(hab : HAB;pwpt : PPOINTL;cwpt : ULONG) : BOOL;[SYSTEM];
function WinQuerySysValue(hwndDesktop : HWND;iSysValue : LONG) : LONG;[SYSTEM];
function WinSetSysValue(hwndDesktop : HWND;iSysValue : LONG;lValue : LONG) : BOOL;[SYSTEM];
function WinSetPresParam(hwnd : HWND;id : ULONG;cbParam : ULONG;pbParam : PVOID) : BOOL;[SYSTEM];
function WinQueryPresParam(hwnd : HWND;id1 : ULONG;id2 : ULONG;pulId : PULONG;cbBuf : ULONG;pbBuf : PVOID;fs : ULONG) : ULONG;[SYSTEM];
function WinRemovePresParam(hwnd : HWND;id : ULONG) : BOOL;[SYSTEM];
function WinQuerySysColor(hwndDesktop : HWND;clr : LONG;lReserved : LONG) : LONG;[SYSTEM];
function WinSetSysColors(hwndDesktop : HWND;flOptions : ULONG;flFormat : ULONG;clrFirst : LONG;cclr : ULONG;pclr : PLONG) : BOOL;[SYSTEM];
function WinStartTimer(hab : HAB;hwnd : HWND;idTimer : ULONG;dtTimeout : ULONG) : ULONG;[SYSTEM];
function WinStopTimer(hab : HAB;hwnd : HWND;idTimer : ULONG) : BOOL;[SYSTEM];
function WinGetCurrentTime(hab : HAB) : ULONG;[SYSTEM];
function WinLoadAccelTable(hab : HAB;hmod : HMODULE;idAccelTable : ULONG) : HACCEL;[SYSTEM];
function WinCopyAccelTable(haccel : HACCEL;pAccelTable : PACCELTABLE;cbCopyMax : ULONG) : ULONG;[SYSTEM];
function WinCreateAccelTable(hab : HAB;pAccelTable : PACCELTABLE) : HACCEL;[SYSTEM];
function WinDestroyAccelTable(haccel : HACCEL) : BOOL;[SYSTEM];
function WinTranslateAccel(hab : HAB;hwnd : HWND;haccel : HACCEL;pqmsg : PQMSG) : BOOL;[SYSTEM];
function WinSetAccelTable(hab : HAB;haccel : HACCEL;hwndFrame : HWND) : BOOL;[SYSTEM];
function WinQueryAccelTable(hab : HAB;hwndFrame : HWND) : HACCEL;[SYSTEM];
function WinTrackRect(hwnd : HWND;hps : HPS;pti : PTRACKINFO) : BOOL;[SYSTEM];
function WinShowTrackRect(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
function WinSetClipbrdOwner(hab : HAB;hwnd : HWND) : BOOL;[SYSTEM];
function WinSetClipbrdData(hab : HAB;ulData : ULONG;fmt : ULONG;rgfFmtInfo : ULONG) : BOOL;[SYSTEM];
function WinQueryClipbrdData(hab : HAB;fmt : ULONG) : ULONG;[SYSTEM];
function WinQueryClipbrdFmtInfo(hab : HAB;fmt : ULONG;prgfFmtInfo : PULONG) : BOOL;[SYSTEM];
function WinSetClipbrdViewer(hab : HAB;hwndNewClipViewer : HWND) : BOOL;[SYSTEM];
function WinEnumClipbrdFmts(hab : HAB;fmt : ULONG) : ULONG;[SYSTEM];
function WinEmptyClipbrd(hab : HAB) : BOOL;[SYSTEM];
function WinOpenClipbrd(hab : HAB) : BOOL;[SYSTEM];
function WinCloseClipbrd(hab : HAB) : BOOL;[SYSTEM];
function WinQueryClipbrdOwner(hab : HAB) : HWND;[SYSTEM];
function WinQueryClipbrdViewer(hab : HAB) : HWND;[SYSTEM];
function WinDestroyCursor(hwnd : HWND) : BOOL;[SYSTEM];
function WinShowCursor(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
function WinCreateCursor(hwnd : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fs : ULONG;prclClip : PRECTL) : BOOL;[SYSTEM];
function WinQueryCursorInfo(hwndDesktop : HWND;pCursorInfo : PCURSORINFO) : BOOL;[SYSTEM];
function WinSetPointer(hwndDesktop : HWND;hptrNew : HPOINTER) : BOOL;[SYSTEM];
function WinSetPointerOwner(hptr : HPOINTER;pid : PID;fDestroy : BOOL) : BOOL;[SYSTEM];
function WinShowPointer(hwndDesktop : HWND;fShow : BOOL) : BOOL;[SYSTEM];
function WinQuerySysPointer(hwndDesktop : HWND;iptr : LONG;fLoad : BOOL) : HPOINTER;[SYSTEM];
function WinLoadPointer(hwndDesktop : HWND;hmod : HMODULE;idres : ULONG) : HPOINTER;[SYSTEM];
function WinCreatePointer(hwndDesktop : HWND;hbmPointer : HBITMAP;fPointer : BOOL;xHotspot : LONG;yHotspot : LONG) : HPOINTER;[SYSTEM];
function WinSetPointerPos(hwndDesktop : HWND;x : LONG;y : LONG) : BOOL;[SYSTEM];
function WinDestroyPointer(hptr : HPOINTER) : BOOL;[SYSTEM];
function WinQueryPointer(hwndDesktop : HWND) : HPOINTER;[SYSTEM];
function WinQueryPointerPos(hwndDesktop : HWND;pptl : PPOINTL) : BOOL;[SYSTEM];
function WinCreatePointerIndirect(hwndDesktop : HWND;pptri : PPOINTERINFO) : HPOINTER;[SYSTEM];
function WinQueryPointerInfo(hptr : HPOINTER;pPointerInfo : PPOINTERINFO) : BOOL;[SYSTEM];
function WinDrawPointer(hps : HPS;x : LONG;y : LONG;hptr : HPOINTER;fs : ULONG) : BOOL;[SYSTEM];
function WinGetSysBitmap(hwndDesktop : HWND;ibm : ULONG) : HBITMAP;[SYSTEM];
function WinSetHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;[SYSTEM];
function WinReleaseHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;[SYSTEM];
function WinCallMsgFilter(hab : HAB;pqmsg : PQMSG;msgf : ULONG) : BOOL;[SYSTEM];
function WinSetClassThunkProc(pszClassname : PSZ;pfnThunkProc : PFN) : BOOL;[SYSTEM];
function WinQueryClassThunkProc(pszClassname : PSZ) : PFN;[SYSTEM];
function WinSetWindowThunkProc(hwnd : HWND;pfnThunkProc : PFN) : BOOL;[SYSTEM];
function WinQueryWindowThunkProc(hwnd : HWND) : PFN;[SYSTEM];
function WinQueryWindowModel(hwnd : HWND) : LONG;[SYSTEM];
function WinQueryCp(hmq : HMQ) : ULONG;[SYSTEM];
function WinSetCp(hmq : HMQ;idCodePage : ULONG) : BOOL;[SYSTEM];
function WinQueryCpList(hab : HAB;ccpMax : ULONG;prgcp : PULONG) : ULONG;[SYSTEM];
function WinCpTranslateString(hab : HAB;cpSrc : ULONG;pszSrc : PSZ;cpDst : ULONG;cchDestMax : ULONG;pchDest : PSZ) : BOOL;[SYSTEM];
function WinCpTranslateChar(hab : HAB;cpSrc : ULONG;chSrc : UCHAR;cpDst : ULONG) : UCHAR;[SYSTEM];
function WinUpper(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : ULONG;[SYSTEM];
function WinUpperChar(hab : HAB;idcp : ULONG;idcc : ULONG;c : ULONG) : ULONG;[SYSTEM];
function WinNextChar(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : PSZ;[SYSTEM];
function WinPrevChar(hab : HAB;idcp : ULONG;idcc : ULONG;pszStart : PSZ;psz : PSZ) : PSZ;[SYSTEM];
function WinCompareStrings(hab : HAB;idcp : ULONG;idcc : ULONG;psz1 : PSZ;psz2 : PSZ;reserved : ULONG) : ULONG;[SYSTEM];
function WinCreateAtomTable(cbInitial : ULONG;cBuckets : ULONG) : HATOMTBL;[SYSTEM];
function WinDestroyAtomTable(hAtomTbl : HATOMTBL) : HATOMTBL;[SYSTEM];
function WinAddAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;[SYSTEM];
function WinFindAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;[SYSTEM];
function WinDeleteAtom(hAtomTbl : HATOMTBL;atom : ATOM) : ATOM;[SYSTEM];
function WinQueryAtomUsage(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;[SYSTEM];
function WinQueryAtomLength(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;[SYSTEM];
function WinQueryAtomName(hAtomTbl : HATOMTBL;atom : ATOM;pchBuffer : PSZ;cchBufferMax : ULONG) : ULONG;[SYSTEM];
function WinGetLastError(hab : HAB) : ERRORID;[SYSTEM];
function WinGetErrorInfo(hab : HAB) : PERRINFO;[SYSTEM];
function WinFreeErrorInfo(perrinfo : PERRINFO) : BOOL;[SYSTEM];
function WinDdeInitiate(hwndClient : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : BOOL;[SYSTEM];
function WinDdeRespond(hwndClient : HWND;hwndServer : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : MRESULT;[SYSTEM];
function WinDdePostMsg(hwndTo : HWND;hwndFrom : HWND;wm : ULONG;pddest : PDDESTRUCT;flOptions : ULONG) : BOOL;[SYSTEM];
function WinDeleteProcedure(hab : HAB;wndproc : PFNWP) : BOOL;[SYSTEM];
function WinDeleteLibrary(hab : HAB;libhandle : HLIB) : BOOL;[SYSTEM];
function WinLoadProcedure(hab : HAB;libhandle : HLIB;procname : PSZ) : PFNWP;[SYSTEM];
function WinLoadLibrary(hab : HAB;libname : PSZ) : HLIB;[SYSTEM];
function WinSetDesktopBkgnd(hwndDesktop : HWND;pdskNew : PDESKTOP) : HBITMAP;[SYSTEM];
function WinQueryDesktopBkgnd(hwndDesktop : HWND;pdsk : PDESKTOP) : BOOL;[SYSTEM];
function WinRealizePalette(hwnd : HWND;hps : HPS;pcclr : PULONG) : LONG;[SYSTEM];
function HWNDFROMMP(mp : MPARAM) : HWND;
begin
HWNDFROMMP:=HWND(mp);
end;
function SHORT1FROMMP(mp : MPARAM) : USHORT;
begin
SHORT1FROMMP:=lo(ULONG(mp));
end;
function SHORT2FROMMP(mp : MPARAM) : USHORT;
begin
SHORT2FROMMP:=hi(ULONG(mp));
end;
end.