| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115 |
- (****************************** Module Header ******************************
- *
- * Copyright (c) 1989..1992 Clarion Software Corporation
- *
- * This file is compatible with OS/2 version 1.2.
- *
- * Module Name: Win
- *
- * OS/2 Presentation Manager Window Manager definition file
- * Release 3.10
- *
- *****************************************************************************
- *)
- (*# call(o_a_size => off,
- o_a_copy=>off,
- result_optional=>on,
- reg_saved => (si, di, ds, st1, st2),
- reg_param => (),
- seg_name => none,
- near_call => off,
- ds_eq_ss => off) *)
- (*# module(implementation=>off, init_code => off) *)
- (*# name(prefix => os2_lib) *)
- (*# data(near_ptr => off,var_enum_size=>off) *)
- (*# check(index=>off,range=>off,overflow=>off,nil_ptr=>off) *)
- DEFINITION MODULE Win;
- FROM OS2DEF IMPORT HDC,HRGN,HAB,HPS,HBITMAP,HWND,HMODULE,HSEM,LSET,
- POINTL,RECTL,PID,TID,COLOR,BOOL,ERRORID,LHANDLE ;
- (**)
- (*--- Conditional sections, set to TRUE if required ------------------------*)
- (**)
- CONST
- i_GEN1 = TRUE ; (* General section 1 *)
- i_GEN2 = TRUE ; (* General section 2 *)
- i_GEN3 = TRUE ; (* General section 3 *)
- i_MSG1 = TRUE ; (* Message management *)
- i_DTYPES = FALSE; (* WinRegisterUserDatatype types *)
- i_MSG2 = FALSE; (* Message management uncommon *)
- i_KBDMOU = TRUE ; (* Mouse and keyboard input *)
- i_DIALOG1 = TRUE ; (* Dialog boxes *)
- i_DIALOG2 = TRUE ; (* Dialog boxes uncommon *)
- i_STATIC = FALSE; (* Static controls *)
- i_BUTTON = TRUE ; (* Button controls *)
- i_ENTRY = TRUE ; (* Entry fields *)
- i_MLENTRY = FALSE; (* Multiple line entry fields *)
- i_LIST = TRUE ; (* List box controls *)
- i_MENU = TRUE ; (* Menu controls *)
- i_SCROLL = FALSE; (* Scroll bar controls *)
- i_FRAME1 = TRUE ; (* Frame manager *)
- i_FRAME2 = TRUE ; (* Frame manager uncommon *)
- i_FRAMECTL = FALSE; (* Frame controls (title bars & size border) *)
- i_RECT = TRUE ; (* Rectangle routines *)
- i_SYS = TRUE ; (* System values *)
- i_COLOR = FALSE; (* Colors *)
- i_TIMER = TRUE ; (* Timer routines *)
- i_ACCEL = FALSE; (* Keyboard accelerators *)
- i_TRACK = TRUE ; (* WinTrackRect() function *)
- i_CLIP = FALSE; (* Clipboard manager *)
- i_CURSOR = FALSE; (* Text cursors *)
- i_POINTER = FALSE; (* Mouse pointers *)
- i_LATER = FALSE; (* Defines which version of SPTR definitions to include *)
- i_HOOK = FALSE; (* Hook manager *)
- i_SHELL = TRUE ; (* Shell API *)
- i_COUNTRY = FALSE; (* Country support *)
- i_HEAP = FALSE; (* Heap Manager *)
- i_ATOM = FALSE; (* Atom Manager *)
- i_CATCH = FALSE; (* WinCatch/WinThrow support *)
- i_ERROR = TRUE ; (* Error code definitions *)
- i_DDE = FALSE; (* DDE Manager *)
- i_NLS = FALSE; (* DBCS window manager definition *)
- i_WINHELP = FALSE; (* Help Manager definitions *)
- i_WINLOAD = FALSE; (* Load/Delete Library/Procedure *)
- i_MACROS = TRUE ; (* Inline Helper Macro Procedures *)
- (*%T i_MACROS *)
- (* Inline utility procedures *)
- (*# save, call(inline =>on) *)
- CONST
- (*%T _fcall *) _Ret = 0CBH; (*%E *)
- (*%F _fcall *) _Ret = 0C3H; (*%E *)
- TYPE
- _C1 = ARRAY[0..0] OF BYTE;
- _C3 = ARRAY[0..2] 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);
- (*# call(reg_param=>(dx,ax),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *)
- INLINE PROCEDURE HIWORD(lw:LONGWORD):WORD = _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);
- (*# restore *)
- (*%E *) (* i_MACROS *)
- (**)
- (**--- Win General section 1 -----------------------------------------------*)
- (**)
- (*%T i_GEN1*)
- TYPE
- MPARAM = LONGCARD;
- MRESULT = LONGCARD;
- PFNWP = PROCEDURE(HWND,CARDINAL,MPARAM,MPARAM):MRESULT;
- CONST
- HWND_DESKTOP = HWND(1);
- HWND_OBJECT = HWND(2);
- HWND_TOP = HWND(3);
- HWND_BOTTOM = HWND(4);
- HWND_THREADCAPTURE = HWND(5);
- (* Standard Window Styles *)
- WS_VISIBLE = 080000000H;
- WS_DISABLED = 040000000H;
- WS_CLIPCHILDREN = 020000000H;
- WS_CLIPSIBLINGS = 010000000H;
- WS_PARENTCLIP = 08000000H;
- WS_SAVEBITS = 04000000H;
- WS_SYNCPAINT = 02000000H;
- WS_MINIMIZED = 01000000H;
- WS_MAXIMIZED = 0800000H;
- (* Dialog manager styles *)
- WS_GROUP = 010000H;
- WS_TABSTOP = 020000H;
- WS_MULTISELECT = 040000H;
- (* Class styles *)
- CS_MOVENOTIFY = 01H;
- CS_SIZEREDRAW = 04H;
- CS_HITTEST = 08H;
- CS_PUBLIC = 010H;
- CS_FRAME = 020H;
- CS_CLIPCHILDREN = 020000000H;
- CS_CLIPSIBLINGS = 010000000H;
- CS_PARENTCLIP = 08000000H;
- CS_SAVEBITS = 04000000H;
- CS_SYNCPAINT = 02000000H;
- PROCEDURE RegisterClass(h: HAB; c: FarADDRESS; p: PFNWP; l: LONGCARD; e: CARDINAL) : BOOLEAN;
- PROCEDURE DefWindowProc(h: HWND; m: CARDINAL; p1,p2: MPARAM) : MRESULT;
- PROCEDURE DestroyWindow(h: HWND) : BOOLEAN;
- PROCEDURE ShowWindow(h: HWND; v: BOOL) : BOOLEAN;
- PROCEDURE QueryWindowRect(h: HWND; VAR r: RECTL) : BOOLEAN;
- PROCEDURE BeginPaint(h: HWND; s:HPS; VAR r: RECTL) : HPS;
- PROCEDURE EndPaint(h:HPS) : BOOLEAN;
- PROCEDURE GetPS(h: HWND) : HPS;
- PROCEDURE GetClipPS(h: HWND; w: HWND; c: CARDINAL) : HPS;
- PROCEDURE ReleasePS(h:HPS) : BOOLEAN;
- PROCEDURE OpenWindowDC(h: HWND) : HDC;
- PROCEDURE ScrollWindow(h: HWND; x,y: INTEGER; VAR s,c: RECTL; u: HRGN; VAR ur: RECTL; o: CARDINAL) : CARDINAL;
- PROCEDURE IsWindowShowing(h : HWND) : BOOLEAN;
- CONST
- (* WinGetClipPS flags *)
- PSF_LOCKWINDOWUPDATE = 01H;
- PSF_CLIPUPWARDS = 02H;
- PSF_CLIPDOWNWARDS = 04H;
- PSF_CLIPSIBLINGS = 08H;
- PSF_CLIPCHILDREN = 010H;
- PSF_PARENTCLIP = 020H;
- (* WinScrollWindow() flags *)
- SW_SCROLLCHILDREN = 01H;
- SW_INVALIDATERGN = 02H;
- PROCEDURE FillRect(h : HPS; VAR r : RECTL; c: COLOR) : BOOLEAN;
- (* WinInitialize/WinTerminate Interface declarations *)
- TYPE
- QVERSDATA = RECORD
- environment : CARDINAL;
- version : CARDINAL;
- END;
- CONST
- QV_OS2 = 00H;
- QV_CMS = 01H;
- QV_TSO = 02H;
- QV_TSOBATCH = 03H;
- QV_OS400 = 04H;
- PROCEDURE QueryVersion(h:HAB) : LONGCARD;
- PROCEDURE Initialize(o:CARDINAL) : HAB;
- PROCEDURE Terminate(h:HAB) : BOOLEAN;
- PROCEDURE QueryAnchorBlock(hwnd : LONGCARD) : LONGCARD;
- PROCEDURE SetActiveWindow(d,w: HWND) : BOOLEAN;
- PROCEDURE QueryActiveWindow(h: HWND; l: BOOL) : HWND;
- (*%E*)
- (**)
- (**--- Win General section 2 -----------------------------------------------*)
- (**)
- (*%T i_GEN2*)
- PROCEDURE CreateWindow(pa: HWND; c,n: ARRAY OF CHAR; s: LONGCARD; x,y,w,h: INTEGER; o,b: HWND; i: CARDINAL; d,p: FarADDRESS) : HWND;
- PROCEDURE EnableWindow(h: HWND; e: BOOL) : BOOLEAN;
- PROCEDURE IsWindowEnabled(h: HWND) : BOOLEAN;
- PROCEDURE EnableWindowUpdate(h: HWND; v: BOOL) : BOOLEAN;
- PROCEDURE IsWindowVisible(h: HWND) : BOOLEAN;
- PROCEDURE QueryWindowText(h: HWND; l: CARDINAL; VAR b: ARRAY OF CHAR) : CARDINAL;
- PROCEDURE SetWindowText(h: HWND; s: ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE QueryWindowTextLength(h: HWND) : CARDINAL;
- PROCEDURE WindowFromID(p: HWND; i: CARDINAL) : HWND;
- PROCEDURE MultWindowFromIDs(p: HWND; VAR w: HWND; f,l: CARDINAL) : INTEGER;
- PROCEDURE IsWindow(h:HAB; w: HWND) : BOOLEAN;
- (* QueryWindow Codes *)
- TYPE QW = (QW_NEXT, QW_PREV, QW_TOP, QW_BOTTOM,
- QW_OWNER, QW_PARENT, QW_NEXTTOP, QW_PREVTOP,
- QW_FRAMEOWNER);
- PROCEDURE QueryWindow(h: HWND; c: QW; l: BOOL) : HWND;
- PROCEDURE SetParent(h,p: HWND; r: BOOL) : BOOLEAN;
- PROCEDURE IsChild(c,p: HWND) : BOOLEAN;
- PROCEDURE SetOwner(h,o: HWND) : BOOLEAN;
- PROCEDURE QueryWindowProcess(h: HWND; VAR p: PID; VAR t: TID) : BOOLEAN;
- PROCEDURE QueryObjectWindow(h: HWND) : HWND;
- PROCEDURE QueryDesktopWindow(h:HAB; c: HDC) : HWND;
- TYPE
- SWP = RECORD
- options : BITSET;
- cy : INTEGER;
- cx : INTEGER;
- y : INTEGER;
- x : INTEGER;
- InsertBehind : HWND;
- hwnd : HWND;
- END;
- PROCEDURE SetWindowPos(h,b: HWND; x,y,cx,cy: INTEGER; s: BITSET) : BOOLEAN;
- PROCEDURE QueryWindowPos(h: HWND; VAR s: SWP) : BOOLEAN;
- PROCEDURE SetMultWindowPos(h:HAB; VAR s: ARRAY OF SWP; c: CARDINAL) : BOOLEAN;
- (* SWP options *)
- CONST
- SWP_SIZE = {0};
- SWP_MOVE = {1};
- SWP_ZORDER = {2};
- SWP_SHOW = {3};
- SWP_HIDE = {4};
- SWP_NOREDRAW = {5};
- SWP_NOADJUST = {6};
- SWP_ACTIVATE = {7};
- SWP_DEACTIVATE = {8};
- SWP_EXTSTATECHANGE = {9};
- SWP_MINIMIZE = {10};
- SWP_MAXIMIZE = {11};
- SWP_RESTORE = {12};
- SWP_FOCUSACTIVATE = {13};
- SWP_FOCUSDEACTIVATE = {14};
- (* Values returned from WM_ADJUSTWINDOWPOS and passed to WM_WINDOWPOSCHANGED *)
- AWP_MINIMIZED = 00010000H;
- AWP_MAXIMIZED = 00020000H;
- AWP_RESTORED = 00040000H;
- AWP_ACTIVATE = 00080000H;
- AWP_DEACTIVATE = 00100000H;
- (* Window painting *)
- PROCEDURE UpdateWindow(h: HWND) : BOOLEAN;
- PROCEDURE InvalidateRect(h: HWND; VAR p: RECTL; i: BOOL) : BOOLEAN;
- PROCEDURE InvalidateRegion(h: HWND; r: HRGN; i: BOOL) : BOOLEAN;
- (* Drawing helpers *)
- PROCEDURE InvertRect(h:HPS; VAR r: RECTL) : BOOLEAN;
- PROCEDURE DrawBitmap(h:HPS; bm: HBITMAP; VAR s: RECTL; VAR d: POINTL; f,b: LONGINT; r: BITSET) : BOOLEAN;
- (* WinDrawBitmap() flags *)
- CONST
- DBM_NORMAL = {};
- DBM_INVERT = {1};
- DBM_HALFTONE = {2};
- DBM_STRETCH = {3};
- DBM_IMAGEATTRS = {4};
- PROCEDURE DrawText(h:HPS; n: INTEGER; t: ARRAY OF CHAR; VAR r: RECTL; f,b: LONGINT; c:BITSET ) : INTEGER;
- (* DrawText() Codes:
- From DT_LEFT to DT_EXTERNALLEADING, the codes are designed to be combined
- with SS_TEXT to create variations of the basic text static item.
- *)
- CONST
- DT_LEFT = {};
- DT_EXTERNALLEADING = {7};
- DT_CENTER = {8};
- DT_RIGHT = {9};
- DT_TOP = {};
- DT_VCENTER = {10};
- DT_BOTTOM = {11};
- DT_HALFTONE = {12};
- DT_MNEMONIC = {13};
- DT_WORDBREAK = {14};
- DT_ERASERECT = {15};
- DT_QUERYEXTENT = {1};
- DT_TEXTATTRS = {6};
- PROCEDURE DrawBorder(s:HPS; VAR r: RECTL; h,v: INTEGER; b,i: LONGINT; c: BITSET) : BOOLEAN;
- (* WinDrawBorder() flags *)
- CONST
- DB_PATCOPY = {};
- DB_PATINVERT = {0};
- DB_DESTINVERT = {1};
- DB_AREAMIXMODE = {0,1};
- DB_ROP = {0..2};
- DB_INTERIOR = {3};
- DB_AREAATTRS = {4};
- DB_STANDARD = {8};
- DB_DLGBORDER = {9};
- (* Resource Loading Functions *)
- PROCEDURE LoadString(h:HAB; r: HMODULE; i,m: CARDINAL; VAR b: ARRAY OF CHAR) : INTEGER;
- PROCEDURE LoadMessage(h:HAB; m: HMODULE; c: CARDINAL; i: INTEGER; VAR a: ARRAY OF CHAR) : INTEGER; (*?*)
- (*%E*)
- (**)
- (**--- Win General section 3 -----------------------------------------------*)
- (**)
- (*%T i_GEN3*)
- TYPE
- CREATESTRUCT = RECORD
- PresParams : FarADDRESS;
- CtlData : FarADDRESS;
- id : CARDINAL;
- InsertBehind : HWND;
- Owner : HWND;
- cy,cx,y,x : INTEGER;
- Style : LONGCARD;
- Text : FarADDRESS;
- Class : FarADDRESS;
- Parent : HWND;
- END;
- CLASSINFO = RECORD
- ClassStyle : LONGCARD;
- WindowProc : PFNWP;
- WindowData : CARDINAL;
- END;
- PROCEDURE SubclassWindow(h: HWND; p: PFNWP) : PFNWP;
- PROCEDURE QueryClassName(h: HWND; l: CARDINAL; VAR b: ARRAY OF CHAR) : CARDINAL;
- PROCEDURE QueryClassInfo(h:HAB; n: FarADDRESS; VAR c: CLASSINFO) : BOOLEAN;
- PROCEDURE IsThreadActive(h:HAB) : BOOLEAN;
- PROCEDURE QuerySysModalWindow(h: HWND; l: BOOL) : HWND;
- PROCEDURE SetSysModalWindow(d: HWND; w: HWND) : BOOLEAN;
- PROCEDURE LockWindow(h: HWND; l: BOOL) : HWND;
- PROCEDURE RegisterWindowDestroy(h: HWND; r: BOOL) : BOOLEAN;
- PROCEDURE QueryWindowLockCount(h: HWND) : INTEGER;
- PROCEDURE QueryWindowUShort(h: HWND; b: INTEGER) : CARDINAL;
- PROCEDURE SetWindowUShort(h: HWND; b: INTEGER; d: CARDINAL ) : BOOLEAN;
- PROCEDURE QueryWindowULong(h: HWND; b: INTEGER) : LONGCARD;
- PROCEDURE SetWindowULong(h: HWND; b: INTEGER; d: LONGCARD) : BOOLEAN;
- PROCEDURE QueryWindowPtr(h: HWND; i: CARDINAL) : FarADDRESS;
- PROCEDURE SetWindowPtr(h: HWND; b: CARDINAL; p: FarADDRESS) : BOOLEAN;
- PROCEDURE SetWindowBits(h: HWND; b: CARDINAL; d,m: LONGCARD) : BOOLEAN;
- (* Standard QueryWindowShort/ULong() Indexes *)
- CONST
- QWS_USER = 0;
- QWS_ID = -1;
- QWS_MIN = -1;
- QWL_USER = 0;
- QWL_STYLE = -2;
- QWP_PFNWP = -3;
- QWL_HMQ = -4;
- QWL_MIN = -4;
- (* WC_FRAME QueryWindowUShort/ULong() Indexes *)
- QWL_HHEAP = 04H;
- QWL_HWNDFOCUSSAVE = 018H;
- QWS_FLAGS = 08H;
- QWS_RESULT = 0AH;
- QWS_XRESTORE = 0CH;
- QWS_YRESTORE = 0EH;
- QWS_CXRESTORE = 010H;
- QWS_CYRESTORE = 012H;
- QWS_XMINIMIZE = 014H;
- QWS_YMINIMIZE = 016H;
- (* Window enumeration *)
- TYPE
- HENUM = LHANDLE;
- PROCEDURE BeginEnumWindows(h: HWND) : HENUM;
- PROCEDURE GetNextWindow(h: HENUM) : HWND;
- PROCEDURE EndEnumWindows(h: HENUM) : BOOLEAN;
- PROCEDURE WindowFromPoint(h: HWND; VAR p: POINTL; e,l: BOOL) : HWND;
- PROCEDURE MapWindowPoints(f,t: HWND; VAR p: POINTL; c: INTEGER) : BOOLEAN;
- (* More window painting routines *)
- PROCEDURE ValidateRect(h: HWND; VAR r: RECTL; c: BOOL) : BOOLEAN;
- PROCEDURE ValidateRegion(h: HWND; r: HRGN; c: BOOL) : BOOLEAN;
- PROCEDURE WindowFromDC(h:HDC) : HWND;
- PROCEDURE QueryWindowDC(h: HWND) : HDC;
- PROCEDURE GetScreenPS(h: HWND) : HPS;
- PROCEDURE QueryUpdateRect(h: HWND; VAR r: RECTL) : BOOLEAN;
- PROCEDURE QueryUpdateRegion(h: HWND; r: HRGN) : INTEGER;
- PROCEDURE ExcludeUpdateRegion(h:HPS; w: HWND) : INTEGER;
- PROCEDURE LockWindowUpdate(d,l: HWND) : BOOLEAN;
- PROCEDURE LockVisRegions(h: HWND; l: BOOL) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Win Message Manager Common ------------------------------------------*)
- (**)
- (*%T i_MSG1*)
- TYPE
- QMSG = RECORD
- hwnd : HWND;
- msg : CARDINAL;
- mp1 : FarADDRESS;
- mp2 : FarADDRESS;
- time : LONGCARD;
- ptl : POINTL;
- END;
- HMQ = LHANDLE;
- CONST
- WM_NULL = 00H;
- WM_CREATE = 01H;
- WM_DESTROY = 02H;
- WM_OTHERWINDOWDESTROYED = 03H;
- WM_ENABLE = 04H;
- WM_SHOW = 05H;
- WM_MOVE = 06H;
- WM_SIZE = 07H;
- WM_ADJUSTWINDOWPOS = 08H;
- WM_CALCVALIDRECTS = 09H;
- WM_SETWINDOWPARAMS = 0AH;
- WM_QUERYWINDOWPARAMS = 0BH;
- WM_HITTEST = 0CH;
- WM_ACTIVATE = 0DH;
- WM_SETFOCUS = 0FH;
- WM_SETSELECTION = 010H;
- WM_PPAINT = 011H;
- WM_PSETFOCUS = 012H;
- WM_PSYSCOLORCHANGE = 013H;
- WM_PSIZE = 014H;
- WM_PACTIVATE = 015H;
- WM_PCONTROL = 016H;
- WM_COMMAND = 020H;
- WM_SYSCOMMAND = 021H;
- WM_HELP = 022H;
- WM_PAINT = 023H;
- WM_TIMER = 024H;
- WM_SEM1 = 025H;
- WM_SEM2 = 026H;
- WM_SEM3 = 027H;
- WM_SEM4 = 028H;
- WM_CLOSE = 029H;
- WM_QUIT = 02AH;
- WM_SYSCOLORCHANGE = 02BH;
- WM_SYSVALUECHANGED = 02DH;
- WM_APPTERMINATENOTIFY = 02EH;
- WM_PRESPARAMCHANGED = 02FH;
- (* control Notification Messages *)
- WM_CONTROL = 030H;
- WM_VSCROLL = 031H;
- WM_HSCROLL = 032H;
- WM_INITMENU = 033H;
- WM_MENUSELECT = 034H;
- WM_MENUEND = 035H;
- WM_DRAWITEM = 036H;
- WM_MEASUREITEM = 037H;
- WM_CONTROLPOINTER = 038H;
- WM_CONTROLHEAP = 039H;
- WM_QUERYDLGCODE = 03AH;
- WM_INITDLG = 03BH;
- WM_SUBSTITUTESTRING = 03CH;
- WM_MATCHMNEMONIC = 03DH;
- WM_SAVEAPPLICATION = 03EH;
- WM_HELPBASE = 0F00H;
- WM_HELPTOP = 0FFFH;
- WM_USER = 01000H;
- (* WM_COMMAND Msg Source Codes *)
- CMDSRC_PUSHBUTTON = 1;
- CMDSRC_MENU = 2;
- CMDSRC_ACCELERATOR = 3;
- CMDSRC_OTHER = 0;
- (* The following record is used to access the WM_COMMAND,
- WM_HELP, and WM_SYSCOMMAND message parameters:
- *)
- TYPE
- COMMANDMSG = RECORD
- source : CARDINAL;
- mouse : CARDINAL;
- cmd : CARDINAL;
- unused : CARDINAL;
- END; (*COMMANDMSG*)
- CONTROLMSG = RECORD
- controlspec: LONGCARD;
- id : CARDINAL;
- notifycode : CARDINAL;
- END; (*CONTROLMSG*)
- (* To use COMMANDMSG or CONTROLMSG,
- assign typecasted mp2 to local variable of type COMMANDMSG
- i.e.
- cm := COMMANDMSG(mp2);
- *)
- TYPE
- MQINFO = RECORD
- cb : CARDINAL;
- pid : PID;
- tid : TID;
- cmsgs : CARDINAL;
- reserved : FarADDRESS;
- END;
- PROCEDURE SendMsg(h: HWND; m: CARDINAL; p1,p2 :MPARAM) : MRESULT;
- PROCEDURE QueryQueueInfo(h: HMQ; VAR i: MQINFO; c: CARDINAL) : BOOLEAN;
- PROCEDURE CreateMsgQueue(h:HAB; s: INTEGER) : HMQ;
- PROCEDURE DestroyMsgQueue(q: HMQ) : BOOLEAN;
- PROCEDURE CancelShutdown(q: HMQ; always: BOOL) : BOOLEAN;
- PROCEDURE GetMsg(h:HAB; VAR m: QMSG; w: HWND; f,l: CARDINAL) : BOOLEAN;
- PROCEDURE DispatchMsg(h:HAB; VAR m: QMSG) : MRESULT;
- PROCEDURE PostMsg(h: HWND; i: CARDINAL; p1,p2: MPARAM) : BOOLEAN;
- PROCEDURE RegisterUserMsg(h:HAB; id: CARDINAL; dtype1,dir1,dtype2,dir2,dtyper : INTEGER) : BOOLEAN;
- PROCEDURE RegisterUserDatatype(h:HAB; d: INTEGER; c: INTEGER; VAR t : INTEGER) : BOOLEAN;
- PROCEDURE SetMsgMode(h:HAB; c: ARRAY OF CHAR; ctrl: INTEGER) : BOOLEAN;
- PROCEDURE SetSynchroMode(h:HAB; m: INTEGER) : BOOLEAN;
- (* PeekMsg() Constants *)
- TYPE
- WPM = (PM_NO_REMOVE,PM_REMOVE);
- PROCEDURE PeekMsg(h:HAB; VAR m: QMSG; w: HWND; f,l: CARDINAL; o : WPM) : BOOLEAN;
- (* WinRegisterUserMsg direction codes *)
- CONST
- RUM_IN = 1;
- RUM_OUT = 2;
- RUM_INOUT = 3;
- (* WinSetMsgMode constants *)
- SMD_DELAYED = 01H;
- SMD_IMMEDIATE = 02H;
- (* WinSetSynchroMode constants *)
- SSM_SYNCHRONOUS = 01H;
- SSM_ASYNCHRONOUS = 02H;
- SSM_MIXED = 03H;
- (*%E*)
- (**)
- (**--- WinRegisterUserDatatype types ---------------------------------------*)
- (**)
- (*%T i_DTYPES*)
- CONST
- DTYP_USER = 16384;
- DTYP_CTL_ARRAY = 1;
- DTYP_CTL_PARRAY = -1;
- DTYP_CTL_OFFSET = 2;
- DTYP_CTL_LENGTH = 3;
- DTYP_ACCEL = 28;
- DTYP_ACCELTABLE = 29;
- DTYP_ARCPARAMS = 38;
- DTYP_AREABUNDLE = 139;
- DTYP_ATOM = 90;
- DTYP_BITMAPINFO = 60;
- DTYP_BITMAPINFOHEADER = 61;
- DTYP_BIT16 = 20;
- DTYP_BIT32 = 21;
- DTYP_BIT8 = 19;
- DTYP_BOOL = 18;
- DTYP_BTNCDATA = 35;
- DTYP_BYTE = 13;
- DTYP_CATCHBUF = 141;
- DTYP_CHAR = 15;
- DTYP_CHARBUNDLE = 135;
- DTYP_CLASSINFO = 95;
- DTYP_COUNT2 = 93;
- DTYP_COUNT2B = 70;
- DTYP_COUNT2CH = 82;
- DTYP_COUNT4 = 152;
- DTYP_COUNT4B = 42;
- DTYP_CPID = 57;
- DTYP_CREATESTRUCT = 98;
- DTYP_CURSORINFO = 34;
- DTYP_DEVOPENSTRUC = 124;
- DTYP_DLGTEMPLATE = 96;
- DTYP_DLGTITEM = 97;
- DTYP_ENTRYFDATA = 127;
- DTYP_ERRORID = 45;
- DTYP_FATTRS = 75;
- DTYP_FFDESCS = 142;
- DTYP_FIXED = 99;
- DTYP_FONTMETRICS = 74;
- DTYP_FRAMECDATA = 144;
- DTYP_GRADIENTL = 48;
- DTYP_HAB = 10;
- DTYP_HACCEL = 30;
- DTYP_HAPP = 146;
- DTYP_HATOMTBL = 91;
- DTYP_HBITMAP = 62;
- DTYP_HCINFO = 46;
- DTYP_HDC = 132;
- DTYP_HENUM = 117;
- DTYP_HHEAP = 109;
- DTYP_HINI = 53;
- DTYP_HLIB = 147;
- DTYP_HMF = 85;
- DTYP_HMQ = 86;
- DTYP_HPOINTER = 106;
- DTYP_HPROGRAM = 131;
- DTYP_HPS = 12;
- DTYP_HRGN = 116;
- DTYP_HSEM = 140;
- DTYP_HSPL = 32;
- DTYP_HSWITCH = 66;
- DTYP_HVPS = 58;
- DTYP_HWND = 11;
- DTYP_IDENTITY = 133;
- DTYP_IDENTITY4 = 169;
- DTYP_IMAGEBUNDLE = 136;
- DTYP_INDEX2 = 81;
- DTYP_IPT = 155;
- DTYP_KERNINGPAIRS = 118;
- DTYP_LENGTH2 = 68;
- DTYP_LENGTH4 = 69;
- DTYP_LINEBUNDLE = 137;
- DTYP_LONG = 25;
- DTYP_MARKERBUNDLE = 138;
- DTYP_MATRIXLF = 113;
- DTYP_MLECTLDATA = 161;
- DTYP_MLEMARGSTRUCT = 157;
- DTYP_MLEOVERFLOW = 158;
- DTYP_OFFSET2B = 112;
- DTYP_OWNERITEM = 154;
- DTYP_PID = 92;
- DTYP_PIX = 156;
- DTYP_POINTERINFO = 105;
- DTYP_POINTL = 77;
- DTYP_PROGCATEGORY = 129;
- DTYP_PROGRAMENTRY = 128;
- DTYP_PROGTYPE = 130;
- DTYP_PROPERTY2 = 88;
- DTYP_PROPERTY4 = 89;
- DTYP_QMSG = 87;
- DTYP_RECTL = 121;
- DTYP_RESID = 125;
- DTYP_RGB = 111;
- DTYP_RGNRECT = 115;
- DTYP_SBCDATA = 159;
- DTYP_SEGOFF = 126;
- DTYP_SHORT = 23;
- DTYP_SIZEF = 101;
- DTYP_SIZEL = 102;
- DTYP_STRL = 17;
- DTYP_STR16 = 40;
- DTYP_STR32 = 37;
- DTYP_STR64 = 47;
- DTYP_STR8 = 33;
- DTYP_SWBLOCK = 63;
- DTYP_SWCNTRL = 64;
- DTYP_SWENTRY = 65;
- DTYP_SWP = 31;
- DTYP_TID = 104;
- DTYP_TIME = 107;
- DTYP_TRACKINFO = 73;
- DTYP_UCHAR = 22;
- DTYP_ULONG = 26;
- DTYP_USERBUTTON = 36;
- DTYP_USHORT = 24;
- DTYP_WIDTH4 = 108;
- DTYP_WNDPARAMS = 83;
- DTYP_WNDPROC = 84;
- DTYP_WPOINT = 59;
- DTYP_WRECT = 55;
- DTYP_XYWINSIZE = 52;
- DTYP_PACCEL = -28;
- DTYP_PACCELTABLE = -29;
- DTYP_PARCPARAMS = -38;
- DTYP_PAREABUNDLE = -139;
- DTYP_PATOM = -90;
- DTYP_PBITMAPINFO = -60;
- DTYP_PBITMAPINFOHEADER = -61;
- DTYP_PBIT16 = -20;
- DTYP_PBIT32 = -21;
- DTYP_PBIT8 = -19;
- DTYP_PBOOL = -18;
- DTYP_PBTNCDATA = -35;
- DTYP_PBYTE = -13;
- DTYP_PCATCHBUF = -141;
- DTYP_PCHAR = -15;
- DTYP_PCHARBUNDLE = -135;
- DTYP_PCLASSINFO = -95;
- DTYP_PCOUNT2 = -93;
- DTYP_PCOUNT2B = -70;
- DTYP_PCOUNT2CH = -82;
- DTYP_PCOUNT4 = -152;
- DTYP_PCOUNT4B = -42;
- DTYP_PCPID = -57;
- DTYP_PCREATESTRUCT = -98;
- DTYP_PCURSORINFO = -34;
- DTYP_PDEVOPENSTRUC = -124;
- DTYP_PDLGTEMPLATE = -96;
- DTYP_PDLGTITEM = -97;
- DTYP_PENTRYFDATA = -127;
- DTYP_PERRORID = -45;
- DTYP_PFATTRS = -75;
- DTYP_PFFDESCS = -142;
- DTYP_PFIXED = -99;
- DTYP_PFONTMETRICS = -74;
- DTYP_PFRAMECDATA = -144;
- DTYP_PGRADIENTL = -48;
- DTYP_PHAB = -10;
- DTYP_PHACCEL = -30;
- DTYP_PHAPP = -146;
- DTYP_PHATOMTBL = -91;
- DTYP_PHBITMAP = -62;
- DTYP_PHCINFO = -46;
- DTYP_PHDC = -132;
- DTYP_PHENUM = -117;
- DTYP_PHHEAP = -109;
- DTYP_PHINI = -53;
- DTYP_PHLIB = -147;
- DTYP_PHMF = -85;
- DTYP_PHMQ = -86;
- DTYP_PHPOINTER = -106;
- DTYP_PHPROGRAM = -131;
- DTYP_PHPS = -12;
- DTYP_PHRGN = -116;
- DTYP_PHSEM = -140;
- DTYP_PHSPL = -32;
- DTYP_PHSWITCH = -66;
- DTYP_PHVPS = -58;
- DTYP_PHWND = -11;
- DTYP_PIDENTITY = -133;
- DTYP_PIDENTITY4 = -169;
- DTYP_PIMAGEBUNDLE = -136;
- DTYP_PINDEX2 = -81;
- DTYP_PIPT = -155;
- DTYP_PKERNINGPAIRS = -118;
- DTYP_PLENGTH2 = -68;
- DTYP_PLENGTH4 = -69;
- DTYP_PLINEBUNDLE = -137;
- DTYP_PLONG = -25;
- DTYP_PMARKERBUNDLE = -138;
- DTYP_PMATRIXLF = -113;
- DTYP_PMLECTLDATA = -161;
- DTYP_PMLEMARGSTRUCT = -157;
- DTYP_PMLEOVERFLOW = -158;
- DTYP_POFFSET2B = -112;
- DTYP_POWNERITEM = -154;
- DTYP_PPID = -92;
- DTYP_PPIX = -156;
- DTYP_PPOINTERINFO = -105;
- DTYP_PPOINTL = -77;
- DTYP_PPROGCATEGORY = -129;
- DTYP_PPROGRAMENTRY = -128;
- DTYP_PPROGTYPE = -130;
- DTYP_PPROPERTY2 = -88;
- DTYP_PPROPERTY4 = -89;
- DTYP_PQMSG = -87;
- DTYP_PRECTL = -121;
- DTYP_PRESID = -125;
- DTYP_PRGB = -111;
- DTYP_PRGNRECT = -115;
- DTYP_PSBCDATA = -159;
- DTYP_PSEGOFF = -126;
- DTYP_PSHORT = -23;
- DTYP_PSIZEF = -101;
- DTYP_PSIZEL = -102;
- DTYP_PSTRL = -17;
- DTYP_PSTR16 = -40;
- DTYP_PSTR32 = -37;
- DTYP_PSTR64 = -47;
- DTYP_PSTR8 = -33;
- DTYP_PSWBLOCK = -63;
- DTYP_PSWCNTRL = -64;
- DTYP_PSWENTRY = -65;
- DTYP_PSWP = -31;
- DTYP_PTID = -104;
- DTYP_PTIME = -107;
- DTYP_PTRACKINFO = -73;
- DTYP_PUCHAR = -22;
- DTYP_PULONG = -26;
- DTYP_PUSERBUTTON = -36;
- DTYP_PUSHORT = -24;
- DTYP_PWIDTH4 = -108;
- DTYP_PWNDPARAMS = -83;
- DTYP_PWNDPROC = -84;
- DTYP_PWPOINT = -59;
- DTYP_PWRECT = -55;
- DTYP_PXYWINSIZE = -52;
- (*%E*)
- (**)
- (**--- Win Message Manager Uncommon ----------------------------------------*)
- (**)
- (*%T i_MSG2*)
- (* WM_CALCVALIDRECTS Return Flags *)
- CONST
- CVR_ALIGNLEFT = 01H;
- CVR_ALIGNBOTTOM = 02H;
- CVR_ALIGNRIGHT = 04H;
- CVR_ALIGNTOP = 08H;
- CVR_REDRAW = 010H;
- (* WM_HITTEST Return Codes *)
- HT_NORMAL = 0;
- HT_TRANSPARENT = -1;
- HT_DISCARD = -2;
- HT_ERROR = -3;
- (* WM_SET/QUERYWINDOWPARAMS Structure and Flags *)
- TYPE
- WNDPARAMS = RECORD
- Status : CARDINAL;
- CText : CARDINAL;
- Text : FarADDRESS;
- CPresParams : CARDINAL;
- PresParams : FarADDRESS;
- CCtlData : CARDINAL;
- CtlData : FarADDRESS;
- END;
- (* Flags used by WM_SET/QUERYWINDOWPARAMS *)
- CONST
- WPM_TEXT = 01H;
- WPM_CTLDATA = 02H;
- WPM_PRESPARAMS = 04H;
- WPM_CCHTEXT = 08H;
- WPM_CBCTLDATA = 010H;
- WPM_CBPRESPARAMS = 020H;
- PROCEDURE InSendMsg(h:HAB) : BOOLEAN;
- PROCEDURE BroadcastMsg(h: HWND; id: CARDINAL; p1,p2: MPARAM; c:BITSET) : BOOLEAN;
- (* WinBroadcastMsg codes *)
- CONST
- BMSG_POST = {};
- BMSG_SEND = {0};
- BMSG_POSTQUEUE = {1};
- BMSG_DESCENDANTS = {2};
- BMSG_FRAMEONLY = {3};
- PROCEDURE WaitMsg(h:HAB; f,l: CARDINAL) : BOOLEAN;
- PROCEDURE QueryQueueStatus(h: HWND) : LONGCARD;
- (* QueryQueueStatus() Constants *)
- CONST
- QS_KEY = 01H;
- QS_MOUSEBUTTON = 02H;
- QS_MOUSEMOVE = 04H;
- QS_MOUSE = 06H;
- QS_TIMER = 08H;
- QS_PAINT = 010H;
- QS_POSTMSG = 020H;
- QS_SEM1 = 040H;
- QS_SEM2 = 080H;
- QS_SEM3 = 0100H;
- QS_SEM4 = 0200H;
- QS_SENDMSG = 0400H;
- PROCEDURE PostQueueMsg(q: FarADDRESS; i: CARDINAL; mp1,mp2: MPARAM) : BOOLEAN;
- PROCEDURE QueryMsgPos(h:HAB; VAR p: POINTL) : BOOLEAN;
- PROCEDURE QueryMsgTime(h:HAB) : LONGCARD;
- PROCEDURE MsgSemWait(h:HSEM; t: LONGINT) : CARDINAL;
- PROCEDURE MsgMuxSemWait(VAR i: CARDINAL; l: FarADDRESS; t: LONGINT) : CARDINAL;
- (*SetMsgInterest()/ SetClassMsgInterest() Constants *)
- CONST
- SMIM_ALL = 0EFFH;
- SMI_NOINTEREST = {0};
- SMI_INTEREST = {1};
- SMI_RESET = {2};
- SMI_AUTODISPATCH = {3};
- PROCEDURE SetMsgInterest(h: HWND; m: CARDINAL; c: BITSET) : BOOLEAN;
- PROCEDURE SetClassMsgInterest(h:HAB; VAR s: ARRAY OF CHAR; c: CARDINAL; i: INTEGER) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Win Keyboard and Mouse ----------------------------------------------*)
- (**)
- (*%T i_KBDMOU*)
- (*** Keyboard and Mouse Input COMMON Subsection ***)
- PROCEDURE SetFocus(d,f: HWND) : BOOLEAN;
- PROCEDURE FocusChange(d,n: HWND; c: BITSET) : BOOLEAN;
- CONST
- FC_NOSETFOCUS = {0};
- FC_NOLOSEFOCUS = {1};
- FC_NOSETACTIVE = {2};
- FC_NOLOSEACTIVE = {3};
- FC_NOSETSELECTION = {4};
- FC_NOLOSESELECTION = {5};
- QFC_NEXTINCHAIN = 1;
- QFC_ACTIVE = 2;
- QFC_FRAME = 3;
- QFC_SELECTACTIVE = 4;
- PROCEDURE SetCapture(d,w: HWND) : BOOLEAN;
- PROCEDURE QueryCapture(h: HWND; l: BOOL) : HWND;
- (* Mouse input messages *)
- CONST
- WM_MOUSEFIRST = 070H;
- WM_MOUSELAST = 079H;
- WM_BUTTONCLICKFIRST = 071H;
- WM_BUTTONCLICKLAST = 079H;
- WM_MOUSEMOVE = 070H;
- WM_BUTTON1DOWN = 071H;
- WM_BUTTON1UP = 072H;
- WM_BUTTON1DBLCLK = 073H;
- WM_BUTTON2DOWN = 074H;
- WM_BUTTON2UP = 075H;
- WM_BUTTON2DBLCLK = 076H;
- WM_BUTTON3DOWN = 077H;
- WM_BUTTON3UP = 078H;
- WM_BUTTON3DBLCLK = 079H;
- PROCEDURE QueryFocus(h: HWND; l: BOOL) : HWND;
- (* Key/Character Input Msg *)
- CONST
- WM_CHAR = 07AH;
- WM_VIOCHAR = 07BH;
- (* CHARMSG flags *)
- KC_CHAR = {0};
- KC_VIRTUALKEY = {1};
- KC_SCANCODE = {2};
- KC_SHIFT = {3};
- KC_CTRL = {4};
- KC_ALT = {5};
- KC_KEYUP = {6};
- KC_PREVDOWN = {7};
- KC_LONEKEY = {8};
- KC_DEADKEY = {9};
- KC_COMPOSITE = {10};
- KC_INVALIDCOMP = {11};
- KC_TOGGLE = {12};
- KC_INVALIDCHAR = {13};
- KC_DBCSRSRVD1 = {14};
- KC_DBCSRSRVD2 = {15};
- TYPE
- MOUSEMSG = RECORD
- codeHitTest : CARDINAL;
- unused : CARDINAL;
- x,y : INTEGER;
- END;
- (* To use MOUSEMSG,
- assign typecasted mp2 to local variable of type MOUSEMSG
- i.e.
- mm := MOUSEMSG(mp2);
- *)
- (*** Virtual Key values *)
- TYPE VK = (VK_NULL, VK_BUTTON1, VK_BUTTON2, VK_BUTTON3,
- VK_BREAK, VK_BACKSPACE, VK_TAB, VK_BACKTAB,
- VK_NEWLINE, VK_SHIFT, VK_CTRL, VK_ALT,
- VK_ALTGRAF, VK_PAUSE, VK_CAPSLOCK, VK_ESC,
- VK_SPACE, VK_PAGEUP, VK_PAGEDOWN, VK_END,
- VK_HOME , VK_LEFT , VK_UP , VK_RIGHT,
- VK_DOWN, VK_PRINTSCRN, VK_INSERT, VK_DELETE,
- VK_SCRLLOCK, VK_NUMLOCK, VK_ENTER, VK_SYSRQ ,
- VK_F1, VK_F2, VK_F3, VK_F4,
- VK_F5, VK_F6, VK_F7, VK_F8,
- VK_F9, VK_F10, VK_F11, VK_F12,
- VK_F13, VK_F14, VK_F15, VK_F16,
- VK_F17, VK_F18, VK_F19, VK_F20,
- VK_F21, VK_F22, VK_F23, VK_F24);
- CONST
- VK_MENU = VK_F10;
- TYPE
- CHARMSG = RECORD
- chr : CARDINAL;
- vkey : VK;
- flags : BITSET;
- cRepeat : SHORTCARD;
- scancode : SHORTCARD;
- END;
- PCHARMSG = POINTER TO CHARMSG;
- (* To use CHARMSG,
- assign typecasted mp2 to local variable of type CHARMSG
- i.e.
- cm := CHARMSG(mp2);
- *)
- TYPE KEYSTATETABLE = ARRAY[0..255] OF SHORTCARD;
- PROCEDURE GetKeyState(h: HWND; k:VK) : INTEGER;
- PROCEDURE GetPhysKeyState(h: HWND; sc: CARDINAL) : INTEGER;
- PROCEDURE EnablePhysInput(h: HWND; e: BOOL) : BOOLEAN;
- PROCEDURE IsPhysInputEnabled(h: HWND) : BOOLEAN;
- PROCEDURE SetKeyboardStateTable(h: HWND; VAR k:KEYSTATETABLE; s: BOOL) : BOOLEAN;
- CONST
- (* Journal Notification messages *)
- WM_JOURNALNOTIFY = 07CH;
- (* valid commands (lParm1) for journal notify message *)
- JRN_QUEUESTATUS = 01H;
- JRN_PHYSKEYSTATE = 02H;
- (*%E*)
- (**)
- (**--- Win Dialog Manager Common -------------------------------------------*)
- (**)
- (*%T i_DIALOG1*)
- PROCEDURE GetDlgMsg(h: HWND; VAR q: QMSG) : BOOLEAN;
- PROCEDURE LoadDlg(p,o: HWND; d: PFNWP; r: HMODULE; i: CARDINAL; v: FarADDRESS) : HWND;
- PROCEDURE DlgBox(p,o: HWND; d: PFNWP; r: HMODULE; i: CARDINAL; k: FarADDRESS) : CARDINAL;
- PROCEDURE DismissDlg(h: HWND; r: CARDINAL) : BOOLEAN;
- PROCEDURE SetDlgItemShort(h:HWND;i:CARDINAL;v:INTEGER;s:BOOL):BOOLEAN;
- PROCEDURE QueryDlgItemShort(h: HWND; i: CARDINAL; VAR r: INTEGER; s: BOOL) : BOOLEAN;
- PROCEDURE SetDlgItemText(h: HWND; i: CARDINAL; t: ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE QueryDlgItemText(h: HWND; i,m: CARDINAL; VAR t: ARRAY OF CHAR) : CARDINAL;
- PROCEDURE QueryDlgItemTextLength(h: HWND; i: CARDINAL) : INTEGER;
- PROCEDURE DefDlgProc(h: HWND; m: CARDINAL; p1,p2: MPARAM) : MRESULT;
- (* Special Item IDs *)
- CONST
- DID_OK = 1;
- DID_CANCEL = 2;
- DID_ERROR = 0FFFFH;
- TYPE WA = (WA_WARNING,WA_NOTE,WA_ERROR,WA_CWINALARMS);
- PROCEDURE Alarm(h: HWND; w: WA) : BOOLEAN;
- TYPE
- (* Message Box return codes *)
- MBID = (MBID_NULL, MBID_OK, MBID_CANCEL, MBID_ABORT,
- MBID_RETRY, MBID_IGNORE, MBID_YES, MBID_NO,
- MBID_HELP, MBID_ENTER );
- CONST
- MBID_ERROR = MBID(0FFFFH);
- PROCEDURE MessageBox(p,o: HWND; s,t: ARRAY OF CHAR; i: CARDINAL; op: BITSET) : MBID;
- (* Message Box types *)
- CONST
- MB_OK = {};
- MB_OKCANCEL = {0};
- MB_RETRYCANCEL = {1};
- MB_ABORTRETRYIGNORE = {0,1};
- MB_YESNO = {2};
- MB_YESNOCANCEL = {0,2};
- MB_CANCEL = {1,2};
- MB_ENTER = {0,1,2};
- MB_ENTERCANCEL = {3};
- MB_NOICON = {};
- MB_CUANOTIFICATION = {};
- MB_ICONQUESTION = {4};
- MB_ICONEXCLAMATION = {5};
- MB_CUAWARNING = {5};
- MB_ICONASTERISK = {4,5};
- MB_ICONHAND = {6};
- MB_CUACRITICAL = {6};
- MB_QUERY = MB_ICONQUESTION;
- MB_WARNING = MB_CUAWARNING;
- MB_INFORMATION = MB_ICONASTERISK;
- MB_CRITICAL = MB_CUACRITICAL;
- MB_ERROR = MB_CRITICAL;
- MB_DEFBUTTON1 = {};
- MB_DEFBUTTON2 = {8};
- MB_DEFBUTTON3 = {9};
- MB_APPLMODAL = {};
- MB_SYSTEMMODAL = {12};
- MB_HELP = {13};
- MB_MOVEABLE = {14};
- (*%E*)
- (**)
- (**--- Win Dialog Manager Uncommon -----------------------------------------*)
- (**)
- (*%T i_DIALOG2*)
- CONST
- (* Dialog codes: returned by WM_QUERYDLGCODE *)
- DLGC_ENTRYFIELD = 01H;
- DLGC_BUTTON = 02H;
- DLGC_RADIOBUTTON = 04H;
- DLGC_STATIC = 08H;
- DLGC_DEFAULT = 010H;
- DLGC_PUSHBUTTON = 020H;
- DLGC_CHECKBOX = 040H;
- DLGC_SCROLLBAR = 080H;
- DLGC_MENU = 0100H;
- DLGC_TABONCLICK = 0200H;
- DLGC_MLE = 0400H; (* Multiple Line Entry *)
- PROCEDURE ProcessDlg(h: HWND) : CARDINAL;
- PROCEDURE StartDlg(h: HWND) : CARDINAL;
- PROCEDURE SendDlgItemMsg(h: HWND; i,m: CARDINAL; p1,p2:MPARAM) : MRESULT;
- PROCEDURE MapDlgPoints(d: HWND; VAR p: POINTL; c: CARDINAL; o: BOOL) : BOOLEAN;
- PROCEDURE SubstituteStrings(h: HWND; s: ARRAY OF CHAR; m: CARDINAL; VAR d: ARRAY OF CHAR) : CARDINAL;
- (* EnumDlgItem() Constants *)
- TYPE EDI = (EDI_FIRSTTABITEM, EDI_LASTTABITEM,
- EDI_NEXTTABITEM, EDI_PREVTABITEM,
- EDI_FIRSTGROUPITEM, EDI_LASTGROUPITEM,
- EDI_NEXTGROUPITEM, EDI_PREVGROUPITEM);
- PROCEDURE EnumDlgItem(d,h: HWND; c: EDI; l: BOOL) : HWND;
- TYPE
- (* Variable-sized dialog template items *)
- DLGTITEM = RECORD
- ItemStatus : CARDINAL;
- Children : CARDINAL;
- CClassName : CARDINAL;
- ClassName : CARDINAL;
- CText : CARDINAL;
- Text : CARDINAL;
- Style : LONGCARD;
- x,y,cx,cy : INTEGER;
- id : CARDINAL;
- PresParams : CARDINAL;
- CtlData : CARDINAL;
- END;
- DLGTEMPLATE = RECORD
- CTemplate : CARDINAL;
- type : CARDINAL;
- codepage : CARDINAL;
- offdlgti : CARDINAL;
- TemplateStatus : CARDINAL;
- ItemFocus : CARDINAL;
- PresParams : CARDINAL;
- dlgti : ARRAY [0..0] OF DLGTITEM;
- END;
- PROCEDURE CreateDlg(p,o: HWND; d: PFNWP; VAR t: DLGTEMPLATE; r: FarADDRESS) : HWND;
- (*%E*)
- (**)
- (**--- Win Static Control Manager ------------------------------------------*)
- (**)
- (*%T i_STATIC*)
- CONST
- (* Static control styles
- *
- * NOTE: the top 9 bits of the LOWORD of the window flStyle are used for
- * DT_* flags. The lower 7 bits are for SS_* styles. This gives us up
- * to 128 distinct static control types (we currently use 11 of them).
- *)
- SS_TEXT = 01H;
- SS_GROUPBOX = 02H;
- SS_ICON = 03H;
- SS_BITMAP = 04H;
- SS_FGNDRECT = 05H;
- SS_HALFTONERECT = 06H;
- SS_BKGNDRECT = 07H;
- SS_FGNDFRAME = 08H;
- SS_HALFTONEFRAME = 09H;
- SS_BKGNDFRAME = 0AH;
- SS_SYSICON = 0BH;
- (* Static control class name *)
- WC_STATIC = FarADDRESS(0FFFF0005H);
- (* Static control messages *)
- SM_SETHANDLE = 0100H;
- SM_QUERYHANDLE = 0101H;
- (*%E*)
- (**)
- (**--- Win Button Control Manager ------------------------------------------*)
- (**)
- (*%T i_BUTTON*)
- (* Button control styles *)
- CONST
- 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_HELP = 0100H;
- BS_SYSCOMMAND = 0200H;
- BS_DEFAULT = 0400H;
- BS_NOPOINTERFOCUS = 0800H;
- BS_NOBORDER = 01000H;
- BS_NOCURSORSELECT = 02000H;
- (* Button class name *)
- WC_BUTTON = FarADDRESS(0FFFF0003H);
- TYPE
- BTNCDATA = RECORD
- cb : CARDINAL;
- CheckState : CARDINAL;
- HiliteState : CARDINAL;
- END;
- USERBUTTON = RECORD
- hwnd : HWND;
- hps : HPS;
- State : CARDINAL;
- StateOld : CARDINAL;
- END;
- (* Button control messages *)
- CONST
- BM_CLICK = 0120H;
- BM_QUERYCHECKINDEX = 0121H;
- BM_QUERYHILITE = 0122H;
- BM_SETHILITE = 0123H;
- BM_QUERYCHECK = 0124H;
- BM_SETCHECK = 0125H;
- BM_SETDEFAULT = 0126H;
- (* Button notification codes *)
- BN_CLICKED = 1;
- BN_DBLCLICKED = 2;
- BN_PAINT = 3;
- (* BN_PAINT button draw state codes *)
- BDS_HILITED = 0100H;
- BDS_DISABLED = 0200H;
- BDS_DEFAULT = 0400H;
- (*%E*)
- (**)
- (**--- Entry Fields ------------------------------------------------------*)
- (**)
- (*%T i_ENTRY*)
- (* Entryfield controls *)
- CONST
- ES_LEFT = 00H;
- ES_CENTER = 01H;
- ES_RIGHT = 02H;
- ES_AUTOSCROLL = 04H;
- ES_MARGIN = 08H;
- ES_AUTOTAB = 0010H;
- ES_READONLY = 0020H;
- ES_COMMAND = 0040H;
- ES_UNREADABLE = 0080H;
- ES_PICTUREMASK= 0100H;
- ES_ANY = 00000H;
- ES_SBCS = 01000H;
- ES_DBCS = 02000H;
- ES_MIXED = 03000H;
- WC_COMBOBOX = FarADDRESS(0FFFF0002H);
- (* combo box styles *)
- CBS_SIMPLE = 01H;
- CBS_DROPDOWN = 02H;
- CBS_DROPDOWNLIST = 04H;
- CBM_SHOWLIST = 0170H;
- CBM_HILITE = 0171H;
- CBM_ISLISTSHOWING = 0172H;
- CBN_EFCHANGE = 1;
- CBN_EFSCROLL = 2;
- CBN_MEMERROR = 3;
- CBN_LBSELECT = 4;
- CBN_LBSCROLL = 5;
- CBN_SHOWLIST = 6;
- CBN_ENTER = 7;
- WC_ENTRYFIELD = FarADDRESS(0FFFF0006H);
- TYPE
- ENTRYFDATA = RECORD
- cb : CARDINAL;
- EditLimit : CARDINAL;
- MinSel : CARDINAL;
- MaxSel : CARDINAL;
- END;
- (* Entry Field messages *)
- CONST
- EM_QUERYCHANGED = 0140H;
- EM_QUERYSEL = 0141H;
- EM_SETSEL = 0142H;
- EM_SETTEXTLIMIT = 0143H;
- EM_CUT = 0144H;
- EM_COPY = 0145H;
- EM_CLEAR = 0146H;
- EM_PASTE = 0147H;
- EM_QUERYFIRSTCHAR = 0148H;
- EM_SETFIRSTCHAR = 0149H;
- EM_QUERYREADONLY = 014AH;
- EM_SETREADONLY = 014BH;
- EM_SETINSERTMODE = 014CH;
- (* Entry Field notification messages *)
- EN_SETFOCUS = 01H;
- EN_KILLFOCUS = 02H;
- EN_CHANGE = 04H;
- EN_SCROLL = 08H;
- EN_MEMERROR = 010H;
- EN_OVERFLOW = 020H;
- EN_INSERTMODETOGGLE = 040H;
- (*%E*)
- (**)
- (**--- Multiple Line Entry Fields------------------------------------------*)
- (**)
- (*%T i_MLENTRY*)
- (* MLE Window styles ( in addition to WS_* ) *)
- CONST
- MLS_WORDWRAP = 01H;
- MLS_BORDER = 02H;
- MLS_VSCROLL = 04H;
- MLS_HSCROLL = 08H;
- MLS_READONLY = 010H;
- MLS_IGNORETAB = 020H;
- (* MLE External Data Types *)
- TYPE
- IPT = LONGINT; (* Insertion point *)
- PIX = LONGINT; (* Pixel *)
- LINE = LONGCARD; (* Line number *)
- MLEFORMATRECT = RECORD (* MLEFRD format rectangle data *)
- cxFormat : LONGINT; (* format rectangle width *)
- cyFormat : LONGINT; (* format rectangle height *)
- END;
- MLECTLDATA = RECORD (* MLECTL control data *)
- CtlData : CARDINAL; (* Length of the MLECTLDATA structure *)
- IEFormat : CARDINAL; (* import/export format *)
- cchText : LONGCARD; (* text limit *)
- iptAnchor : IPT; (* beginning of selection *)
- iptCursor : IPT; (* ending of selection *)
- cxFormat : LONGINT; (* format rectangle width *)
- cyFormat : LONGINT; (* format rectangle height *)
- FormatFlags : LONGCARD; (* formatting rectangle flags *)
- END;
- CONST
- (* FormatFlags mask *)
- MLFFMTRECT_LIMITHORZ = 01H;
- MLFFMTRECT_LIMITVERT = 02H;
- MLFFMTRECT_MATCHWINDOW = 04H;
- MLFFMTRECT_FORMATRECT = 07H;
- (* IEFormat - Import/Export Format flags *)
- MLFIE_CFTEXT = 0;
- MLFIE_NOTRANS = 1;
- MLFIE_WINFMT = 2;
- MLFIE_RTF = 3;
- (* MLN_OVERFLOW structure *)
- TYPE
- MLEOVERFLOW = RECORD (* overflow structure *)
- afErrInd : LONGCARD; (* see mask below *)
- nBytesOver : LONGINT; (* bytes overflowed *)
- pixHorzOver : LONGINT; (* pixels horizontally overflowed *)
- pixVertOver : LONGINT; (* pixels vertically overflowed *)
- END;
- (* ErrInd - error format rectangle flags *)
- CONST
- MLFEFR_RESIZE = 01H;
- MLFEFR_TABSTOP = 02H;
- MLFEFR_FONT = 04H;
- MLFEFR_TEXT = 08H;
- MLFEFR_WORDWRAP = 010H;
- MLFETL_TEXTBYTES = 020H;
- TYPE
- (* MLN_MARGIN structure *)
- MLEMARGSTRUCT = RECORD (* margin structure *)
- afMargins : CARDINAL; (* margin indicator *)
- usMouMsg : CARDINAL; (* mouse message *)
- iptNear : IPT; (* geometrically nearest insertion point *)
- END;
- CONST
- (* afFlags - margin notification indicators *)
- MLFMARGIN_LEFT = 01H;
- MLFMARGIN_BOTTOM = 02H;
- MLFMARGIN_RIGHT = 03H;
- MLFMARGIN_TOP = 04H;
- (* MLM_QUERYSELECTION flags *)
- MLFQS_MINMAXSEL = 0;
- MLFQS_MINSEL = 1;
- MLFQS_MAXSEL = 2;
- MLFQS_ANCHORSEL = 3;
- MLFQS_CURSORSEL = 4;
- (* MLN_CLPBDFAIL flags *)
- MLFCLPBD_TOOMUCHTEXT = 01H;
- MLFCLPBD_ERROR = 02H;
- TYPE
- (* MLM_SEARCH structure *)
- MLE_SEARCHDATA = RECORD (* search structure *)
- cb : CARDINAL; (* size of search spec structure *)
- Find : FarADDRESS; (* string to search for *)
- Replace : FarADDRESS; (* string to replace with *)
- cFind : INTEGER; (* length of pchFindString *)
- cReplace : INTEGER; (* length of replace string *)
- iptStart : IPT; (* point at which to start search *)
- (* (negative indicates cursor pt) *)
- (* becomes pt where string found *)
- iptStop : IPT; (* point at which to stop search *)
- (* (negative indicates EOT) *)
- cchFound : CARDINAL; (* Length of found string *)
- END;
- CONST
- (* MLM_SEARCH style flags *)
- MLFSEARCH_CASESENSITIVE = 01H;
- MLFSEARCH_SELECTMATCH = 02H;
- MLFSEARCH_CHANGEALL = 04H;
- (* MLE messages - MLM from 0x01b0 to 0x01de; MLN from 0x0001 to 0x000f *)
- (* formatting messages *)
- MLM_SETTEXTLIMIT = 01B0H;
- MLM_QUERYTEXTLIMIT = 01B1H;
- MLM_SETFORMATRECT = 01B2H;
- MLM_QUERYFORMATRECT = 01B3H;
- MLM_SETWRAP = 01B4H;
- MLM_QUERYWRAP = 01B5H;
- MLM_SETTABSTOP = 01B6H;
- MLM_QUERYTABSTOP = 01B7H;
- MLM_SETREADONLY = 01B8H;
- MLM_QUERYREADONLY = 01B9H;
- (* text content manipulation and queries messages *)
- MLM_QUERYCHANGED = 01BAH;
- MLM_SETCHANGED = 01BBH;
- MLM_QUERYLINECOUNT = 01BCH;
- MLM_CHARFROMLINE = 01BDH;
- MLM_LINEFROMCHAR = 01BEH;
- MLM_QUERYLINELENGTH = 01BFH;
- MLM_QUERYTEXTLENGTH = 01C0H;
- (* text import and export messages *)
- MLM_FORMAT = 01C1H;
- MLM_SETIMPORTEXPORT = 01C2H;
- MLM_IMPORT = 01C3H;
- MLM_EXPORT = 01C4H;
- MLM_DELETE = 01C6H;
- MLM_QUERYFORMATLINELENGTH = 01C7H;
- MLM_QUERYFORMATTEXTLENGTH = 01C8H;
- MLM_INSERT = 01C9H;
- (* selection messages *)
- MLM_SETSEL = 01CAH;
- MLM_QUERYSEL = 01CBH;
- MLM_QUERYSELTEXT = 01CCH;
- (* undo and redo messages *)
- MLM_QUERYUNDO = 01CDH;
- MLM_UNDO = 01CEH;
- MLM_RESETUNDO = 01CFH;
- (* text attributes messages *)
- MLM_QUERYFONT = 01D0H;
- MLM_SETFONT = 01D1H;
- MLM_SETTEXTCOLOR = 01D2H;
- MLM_QUERYTEXTCOLOR = 01D3H;
- MLM_SETBACKCOLOR = 01D4H;
- MLM_QUERYBACKCOLOR = 01D5H;
- (* scrolling messages *)
- MLM_QUERYFIRSTCHAR = 01D6H;
- MLM_SETFIRSTCHAR = 01D7H;
- (* clipboard messages *)
- MLM_CUT = 01D8H;
- MLM_COPY = 01D9H;
- MLM_PASTE = 01DAH;
- MLM_CLEAR = 01DBH;
- (* display manipulation messages *)
- MLM_ENABLEREFRESH = 01DCH;
- MLM_DISABLEREFRESH = 01DDH;
- (* search message *)
- MLM_SEARCH = 01DEH;
- MLM_QUERYIMPORTEXPORT = 01DFH;
- (* notification messages *)
- MLN_OVERFLOW = 01H;
- MLN_PIXHORZOVERFLOW = 02H;
- MLN_PIXVERTOVERFLOW = 03H;
- MLN_TEXTOVERFLOW = 04H;
- MLN_VSCROLL = 05H;
- MLN_HSCROLL = 06H;
- MLN_CHANGE = 07H;
- MLN_SETFOCUS = 08H;
- MLN_KILLFOCUS = 09H;
- MLN_MARGIN = 0AH;
- MLN_SEARCHPAUSE = 0BH;
- MLN_MEMERROR = 0CH;
- MLN_UNDOOVERFLOW = 0DH;
- MLN_CLPBDFAIL = 0FH;
- (*%E*)
- (**)
- (**--- List box controls ------------------------------------------*)
- (**)
- (*%T i_LIST*)
- CONST
- (* List Box styles *)
- LS_MULTIPLESEL = 01H;
- LS_OWNERDRAW = 02H;
- LS_NOADJUSTPOS = 04H;
- LS_HORZSCROLL = 08H;
- (* List Box class name *)
- WC_LISTBOX = FarADDRESS(0FFFF0007H);
- (* List Box notification messages *)
- LN_SELECT = 1;
- LN_SETFOCUS = 2;
- LN_KILLFOCUS = 3;
- LN_SCROLL = 4;
- LN_ENTER = 5;
- (* List Box messages *)
- LM_QUERYITEMCOUNT = 0160H;
- LM_INSERTITEM = 0161H;
- LM_SETTOPINDEX = 0162H;
- LM_DELETEITEM = 0163H;
- LM_SELECTITEM = 0164H;
- LM_QUERYSELECTION = 0165H;
- LM_SETITEMTEXT = 0166H;
- LM_QUERYITEMTEXTLENGTH = 0167H;
- LM_QUERYITEMTEXT = 0168H;
- LM_SETITEMHANDLE = 0169H;
- LM_QUERYITEMHANDLE = 016AH;
- LM_SEARCHSTRING = 016BH;
- LM_SETITEMHEIGHT = 016CH;
- LM_QUERYTOPINDEX = 016DH;
- LM_DELETEALL = 016EH;
- (* List Box constants *)
- LIT_ERROR = MAX(MRESULT)-2;
- LIT_MEMERROR = MAX(MRESULT)-1;
- LIT_NONE = MAX(MRESULT);
- LIT_FIRST = MAX(MRESULT);
- (* For LM_INSERTITEM *)
- LIT_END = MAX(MRESULT);
- LIT_SORTASCENDING = MAX(MRESULT)-1;
- LIT_SORTDESCENDING = MAX(MRESULT)-2;
- (* For LM_SEARCHSTRING *)
- LSS_SUBSTRING = 01H;
- LSS_PREFIX = 02H;
- LSS_CASESENSITIVE = 04H;
- (*%E*)
- (**)
- (**--- Win Menu Manager ----------------------------------------------------*)
- (**)
- (*%T i_MENU*)
- (* Menu control styles *)
- CONST
- MS_ACTIONBAR = 01H;
- MS_TITLEBUTTON = 02H;
- MS_VERTICALFLIP = 04H;
- PROCEDURE LoadMenu(h: HWND; r:HMODULE; i:CARDINAL) : HWND;
- CONST
- (* Menu class name *)
- WC_MENU = FarADDRESS(0FFFF0004H);
- (* Menu control messages *)
- MM_INSERTITEM = 0180H;
- MM_DELETEITEM = 0181H;
- MM_QUERYITEM = 0182H;
- MM_SETITEM = 0183H;
- MM_QUERYITEMCOUNT = 0184H;
- MM_STARTMENUMODE = 0185H;
- MM_ENDMENUMODE = 0186H;
- MM_DISMISSMENU = 0187H;
- MM_REMOVEITEM = 0188H;
- MM_SELECTITEM = 0189H;
- MM_QUERYSELITEMID = 018AH;
- MM_QUERYITEMTEXT = 018BH;
- MM_QUERYITEMTEXTLENGTH = 018CH;
- MM_SETITEMHANDLE = 018DH;
- MM_SETITEMTEXT = 018EH;
- MM_ITEMPOSITIONFROMID = 018FH;
- MM_ITEMIDFROMPOSITION = 0190H;
- MM_QUERYITEMATTR = 0191H;
- MM_SETITEMATTR = 0192H;
- MM_ISITEMVALID = 0193H;
- PROCEDURE CreateMenu(o: HWND; t:FarADDRESS) : HWND;
- TYPE
- (* Owner Item Structure (Also used for listboxes) *)
- OWNERITEM = RECORD
- hwnd : HWND;
- hps : HPS;
- State : CARDINAL;
- Attribute : CARDINAL;
- StateOld : CARDINAL;
- AttributeOld : CARDINAL;
- Item : RECTL;
- IdItem : INTEGER;
- HItem : LONGCARD;
- END;
- MENUITEM = RECORD
- Position : INTEGER;
- Style : BITSET;
- Attribute : CARDINAL;
- id : CARDINAL;
- SubMenu : HWND;
- HItem : LONGCARD;
- END;
- CONST
- MIT_END = -1;
- MIT_NONE = -1;
- MIT_MEMERROR = -1;
- MIT_ERROR = -1;
- MID_NONE = MIT_NONE;
- MID_ERROR = -1;
- (* MENUITEM Style *)
- MIS_TEXT = {0};
- MIS_BITMAP = {1};
- MIS_SEPARATOR = {2};
- MIS_OWNERDRAW = {3};
- MIS_SUBMENU = {4};
- MIS_MULTMENU = {5}; (* Multiple choice submenu *)
- MIS_SYSCOMMAND = {6};
- MIS_HELP = {7};
- MIS_STATIC = {8};
- MIS_BUTTONSEPARATOR = {9};
- MIS_BREAK = {10};
- MIS_BREAKSEPARATOR = {11};
- MIS_GROUP = {12}; (* Multiple choice group start *)
- (* In multiple choice submenus a style of 'single' denotes the item is a
- ** radiobutton. Absence of this style defaults the item to a checkbox. *)
- MIS_SINGLE = {13};
- MIA_NODISMISS = {5};
- MIA_FRAMED = {12};
- MIA_CHECKED = {13};
- MIA_DISABLED = {14};
- MIA_HILITED = {15};
- (*%E*)
- (**)
- (**--- Win Scroll Bar Controls ---------------------------------------------*)
- (**)
- (*%T i_SCROLL*)
- CONST
- (* Scroll Bar styles *)
- SBS_HORZ = 0;
- SBS_VERT = 1;
- SBS_THUMBSIZE = 2;
- SBS_AUTOTRACK = 4;
- (* Scroll Bar class name *)
- WC_SCROLLBAR = FarADDRESS(0FFFF0008H);
- (* Scroll Bar messages *)
- SBM_SETSCROLLBAR = 01A0H;
- SBM_SETPOS = 01A1H;
- SBM_QUERYPOS = 01A2H;
- SBM_QUERYRANGE = 01A3H;
- SBM_SETHILITE = 01A4H;
- SBM_QUERYHILITE = 01A5H;
- SBM_SETTHUMBSIZE = 01A6H;
- (* Scroll Bar commands *)
- 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;
- TYPE
- SBCDATA = RECORD
- cb : CARDINAL;
- Hilite : CARDINAL; (* Reserved - should point to zero *)
- posFirst : INTEGER;
- posLast : INTEGER;
- posThumb : INTEGER;
- cVisible : INTEGER;
- cTotal : INTEGER;
- END;
- (*%E*)
- (**)
- (**--- Win Frame Manager Common --------------------------------------------*)
- (**)
- (*%T i_FRAME1*)
- TYPE
- FRAMECDATA = RECORD
- cb : CARDINAL;
- CreateFlags : LSET;
- Resources : HMODULE;
- ResId : CARDINAL;
- END;
- CONST
- FCF_TITLEBAR = LSET{0};
- FCF_SYSMENU = LSET{1};
- FCF_MENU = LSET{2};
- FCF_SIZEBORDER = LSET{3};
- FCF_MINBUTTON = LSET{4};
- FCF_MAXBUTTON = LSET{5};
- FCF_MINMAX = FCF_MINBUTTON+FCF_MAXBUTTON;
- FCF_VERTSCROLL = LSET{6};
- FCF_HORZSCROLL = LSET{7};
- FCF_DLGBORDER = LSET{8};
- FCF_BORDER = LSET{9};
- FCF_SHELLPOSITION = LSET{10};
- FCF_TASKLIST = LSET{11};
- FCF_NOBYTEALIGN = LSET{12};
- FCF_NOMOVEWITHOWNER = LSET{13};
- FCF_ICON = LSET{14};
- FCF_ACCELTABLE = LSET{15};
- FCF_SYSMODAL = LSET{16};
- FCF_SCREENALIGN = LSET{17};
- FCF_MOUSEALIGN = LSET{18};
- (* New values to enable multiple palettes. Note that if none of the four *)
- (* styles specified below are used then we default to the 'system' palette *)
- FCF_PALETTE_NORMAL = LSET{19}; (* Normal palette *)
- FCF_PALETTE_HELP = LSET{20}; (* Help palette *)
- FCF_PALETTE_POPUPODD = LSET{21}; (* Odd level popup palette *)
- FCF_PALETTE_POPUPEVEN = LSET{22}; (* Even level popup palette *)
- FCF_STANDARD = FCF_TITLEBAR+FCF_SYSMENU+FCF_MENU+FCF_SIZEBORDER+
- FCF_MINMAX+FCF_ICON+FCF_ACCELTABLE+FCF_SHELLPOSITION+
- FCF_TASKLIST+FCF_PALETTE_NORMAL;
- FS_ICON = 01H;
- FS_ACCELTABLE = 02H;
- FS_SHELLPOSITION = 04H;
- FS_TASKLIST = 08H;
- FS_NOBYTEALIGN = 010H;
- FS_NOMOVEWITHOWNER = 020H;
- FS_SYSMODAL = 040H;
- FS_DLGBORDER = 080H;
- FS_BORDER = 0100H;
- FS_SCREENALIGN = 0200H;
- FS_MOUSEALIGN = 0400H;
- FS_STANDARD = 0FH;
- (* Frame Window flags accessed via Set/QueryWindowUShort(QWS_FLAGS) *)
- FF_FLASHWINDOW = 01H;
- FF_ACTIVE = 02H;
- FF_FLASHHILITE = 04H;
- FF_OWNERHIDDEN = 08H;
- FF_DLGDISMISSED = 010H;
- FF_OWNERDISABLED = 020H;
- FF_SELECTED = 040H;
- FF_NOACTIVATESWP = 080H;
- PROCEDURE CreateStdWindow(h: HWND; s: LONGCARD; VAR f: LSET; cc: FarADDRESS; t: ARRAY OF CHAR; sc: LONGCARD; r: HMODULE; i: CARDINAL; VAR c: HWND) : HWND;
- (* To use a WC_ constant as cc parameter cast to LPSTR and de-reference
- LPSTR(WC_SCROLLBAR)^ NB !!!!!!!!!!
- *)
- (*%E*)
- (**)
- (**--- Win Frame Manager Uncommon ------------------------------------------*)
- (**)
- (*%T i_FRAME2*)
- PROCEDURE FlashWindow(h: HWND; f: BOOL) : BOOLEAN;
- CONST
- (* Frame Window related messages *)
- WM_FLASHWINDOW = 040H;
- WM_FORMATFRAME = 041H;
- WM_UPDATEFRAME = 042H;
- WM_FOCUSCHANGE = 043H;
- WM_SETBORDERSIZE = 044H;
- WM_TRACKFRAME = 045H;
- WM_MINMAXFRAME = 046H;
- WM_SETICON = 047H;
- WM_QUERYICON = 048H;
- WM_SETACCELTABLE = 049H;
- WM_QUERYACCELTABLE = 04AH;
- WM_TRANSLATEACCEL = 04BH;
- WM_QUERYTRACKINFO = 04CH;
- WM_QUERYBORDERSIZE = 04DH;
- WM_NEXTMENU = 04EH;
- WM_ERASEBACKGROUND = 04FH;
- WM_QUERYFRAMEINFO = 050H;
- (* Note 0x0051/5 are reserved *)
- WM_QUERYFOCUSCHAIN = 051H;
- WM_CALCFRAMERECT = 053H;
- WM_WINDOWPOSCHANGED = 055H;
- WM_QUERYFRAMECTLCOUNT = 059H;
- (* Note 0x005A is reserved *)
- WM_QUERYHELPINFO = 05BH;
- WM_SETHELPINFO = 05CH;
- WM_ERROR = 05DH;
- (* WM_QUERYFRAMEINFO constants *)
- FI_FRAME = 01H;
- FI_OWNERHIDE = 02H;
- FI_ACTIVATEOK = 04H;
- FI_NOMOVEWITHOWNER = 08H;
- (* Frame Class name *)
- WC_FRAME = FarADDRESS(0FFFF0001H);
- PROCEDURE CreateFrameControls(h: HWND; s: LONGCARD; VAR f:FRAMECDATA; t: ARRAY OF CHAR) : BOOLEAN;
- (* PROCEDURE FormatFrame(h: HWND; VAR r: RECTL; VAR s: SWP; m: CARDINAL; VAR c: RECTL) : INTEGER; *)
- PROCEDURE CalcFrameRect(h: HWND; VAR r: RECTL; f: BOOL) : BOOLEAN;
- PROCEDURE GetMinPosition(h: HWND; VAR s: SWP; VAR p: POINTL) : BOOLEAN;
- PROCEDURE GetMaxPosition(h: HWND; VAR s: SWP) : BOOLEAN;
- CONST
- (* Frame Control IDs *)
- FID_SYSMENU = 08002H;
- FID_TITLEBAR = 08003H;
- FID_MINMAX = 08004H;
- FID_MENU = 08005H;
- FID_VERTSCROLL = 08006H;
- FID_HORZSCROLL = 08007H;
- FID_CLIENT = 08008H;
- (* Note 08009H is reserved *)
- FID_DBE_APPSTAT = 08010H;
- FID_DBE_KBDSTAT = 08011H;
- FID_DBE_PECIC = 08012H;
- FID_DBE_KKPOPUP = 08013H;
- (* Standard WM_SYSCOMMAND command values *)
- SC_SIZE = 08000H;
- SC_MOVE = 08001H;
- SC_MINIMIZE = 08002H;
- SC_MAXIMIZE = 08003H;
- SC_CLOSE = 08004H;
- SC_NEXT = 08005H;
- SC_APPMENU = 08006H;
- SC_SYSMENU = 08007H;
- SC_RESTORE = 08008H;
- SC_NEXTFRAME = 08009H;
- SC_NEXTWINDOW = 08010H;
- SC_TASKMANAGER = 08011H;
- SC_HELPKEYS = 08012H;
- SC_HELPINDEX = 08013H;
- SC_HELPEXTENDED = 08014H;
- SC_SWITCHPANELIDS = 08015H;
- SC_DBE_FIRST = 08018H;
- SC_DBE_LAST = 0801FH;
- (*%E*)
- (**)
- (**--- Win Frame Controls --------------------------------------------------*)
- (**)
- (*%T i_FRAMECTL*)
- CONST
- (* Title Bar control class name *)
- WC_TITLEBAR = FarADDRESS(0FFFF0009H);
- (* Title Bar control messages *)
- TBM_SETHILITE = 01E3H;
- TBM_QUERYHILITE = 01E4H;
- TBM_TRACKMOVE = 01E5H;
- (*%E*)
- (**)
- (**--- Win Rectangles ------------------------------------------------------*)
- (**)
- (*%T i_RECT*)
- TYPE
- WRECT = RECORD
- xLeft : INTEGER;
- dummy1 : INTEGER;
- yBottom : INTEGER;
- dummy2 : INTEGER;
- xRight : INTEGER;
- dummy3 : INTEGER;
- yTop : INTEGER;
- dummy4 : INTEGER;
- END;
- WPOINT = RECORD
- x : INTEGER;
- dummy1 : INTEGER;
- y : INTEGER;
- dummy2 : INTEGER;
- END;
- PROCEDURE SetRect(h: HAB; VAR s: RECTL; l,b,r,t: INTEGER) : BOOLEAN;
- PROCEDURE IsRectEmpty(h:HAB; VAR r: RECTL) : BOOLEAN;
- PROCEDURE CopyRect(h:HAB; VAR s: RECTL; VAR d: RECTL) : BOOLEAN;
- PROCEDURE EqualRect(h:HAB; VAR r1,r2: RECTL) : BOOLEAN;
- PROCEDURE SetRectEmpty(h:HAB; VAR r: RECTL) : BOOLEAN;
- PROCEDURE OffsetRect(h:HAB; VAR r: RECTL; cx,cy: INTEGER) : BOOLEAN;
- PROCEDURE InflateRect(h:HAB; VAR r: RECTL; x,y: INTEGER) : BOOLEAN;
- PROCEDURE PtInRect(h:HAB; VAR r: RECTL; VAR p: POINTL) : BOOLEAN;
- PROCEDURE IntersectRect(h:HAB; VAR d,r1,r2: RECTL) : BOOLEAN;
- PROCEDURE UnionRect(h:HAB; VAR d: RECTL; VAR s1,s2: RECTL) : BOOLEAN;
- PROCEDURE SubtractRect(h:HAB; VAR r: RECTL; VAR s1,s2: RECTL) : BOOLEAN;
- PROCEDURE MakeRect(h:HAB; VAR r: WRECT) : BOOLEAN;
- PROCEDURE MakePoints(h:HAB; VAR p: WPOINT; c: CARDINAL) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Win System Values ---------------------------------------------------*)
- (**)
- (*%T i_SYS*)
- TYPE SV = (
- SV_SWAPBUTTON, SV_DBLCLKTIME,
- SV_CXDBLCLK, SV_CYDBLCLK,
- SV_CXSIZEBORDER, SV_CYSIZEBORDER,
- SV_ALARM, SV_RESERVEDFIRST1,
- SV_RESERVEDLAST1, SV_CURSORRATE,
- SV_FIRSTSCROLLRATE, SV_SCROLLRATE,
- SV_NUMBEREDLISTS, SV_WARNINGFREQ,
- SV_NOTEFREQ, SV_ERRORFREQ,
- SV_WARNINGDURATION, SV_NOTEDURATION,
- SV_ERRORDURATION, SV_RESERVEDFIRST,
- SV_CXSCREEN, SV_CYSCREEN,
- SV_CXVSCROLL, SV_CYHSCROLL,
- SV_CYVSCROLLARROW, SV_CXHSCROLLARROW,
- SV_CXBORDER, SV_CYBORDER,
- SV_CXDLGFRAME, SV_CYDLGFRAME,
- SV_CYTITLEBAR, SV_CYVSLIDER,
- SV_CXHSLIDER, SV_CXMINMAXBUTTON,
- SV_CYMINMAXBUTTON, SV_CYMENU,
- SV_CXFULLSCREEN, SV_CYFULLSCREEN,
- SV_CXICON, SV_CYICON,
- SV_CXPOINTER, SV_CYPOINTER,
- SV_DEBUG, SV_CMOUSEBUTTONS,
- SV_POINTERLEVEL, SV_CURSORLEVEL,
- SV_TRACKRECTLEVEL, SV_CTIMERS,
- SV_MOUSEPRESENT, SV_CXBYTEALIGN,
- SV_CYBYTEALIGN,
- (* Values of 51-55 are spare for extra non-settable system values *)
- SV_SPARE51, SV_SPARE52, SV_SPARE53, SV_SPARE54, SV_SPARE55,
- (* The following value enables any greater value to be set by WinSetSysVlaue. *)
- SV_NOTRESERVED,
- (* This is to enable the setting of SV_EXTRAKEYBEEP by applications. *)
- SV_EXTRAKEYBEEP,
- (* The following system value controls whether PM controls the keyboard *)
- (* lights for light key keystrokes (else applications will) *)
- SV_SETLIGHTS,
- SV_INSERTMODE,
- SV_SPARE60, SV_SPARE61, SV_SPARE62, SV_SPARE63,
- SV_MENUROLLDOWNDELAY, SV_MENUROLLUPDELAY,
- SV_ALTMNEMONIC, SV_TASKLISTMOUSEACCESS,
- SV_CSYSVALUES, SV_CPOINTERBUTTONS,
- SV_CXALIGN, SV_CYALIGN,
- SV_MNEMONICSENABLED);
- PROCEDURE QuerySysValue(h: HWND; i: SV) : LONGINT;
- PROCEDURE SetSysValue(h: HWND; i: SV; v: LONGINT) : BOOLEAN;
- (*
- * Presentation parameter structures.
- *)
- TYPE
- PARAM = RECORD
- id : LONGCARD;
- cb : LONGCARD;
- ab : ARRAY [1..1] OF BYTE;
- END;
- PRESPARAMS = RECORD
- cb: LONGCARD;
- aparam: ARRAY [1..1] OF PARAM;
- END;
- (*
- * Presentation parameter APIs
- *)
- PROCEDURE SetPresParam(h:HWND;id,cb:LONGCARD;p:FarADDRESS):BOOLEAN;
- PROCEDURE QueryPresParam(h:HWND;id1,id2:LONGCARD;VAR pId: LONGCARD;cb:LONGCARD;pb:FarADDRESS;fs:CARDINAL):LONGCARD;
- PROCEDURE RemovePresParam(h:HWND;id:LONGCARD):BOOLEAN;
- (* Presentation parameter types *)
- 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;
- (* Flags for WinQueryPresParams *)
- QPF_NOINHERIT = 01H; (* Don't inherit *)
- QPF_ID1COLORINDEX = 02H; (* Convert id1 color index into RGB *)
- QPF_ID2COLORINDEX = 04H; (* Convert id2 color index into RGB *)
- QPF_PURERGBCOLOR = 08H; (* Return pure RGB colors *)
- QPF_VALIDFLAGS = 0FH; (* Valid WinQueryPresParams() flags. *)
- (*%E*)
- (**)
- (**--- Win Color Functions -------------------------------------------------*)
- (**)
- (*%T i_COLOR*)
- PROCEDURE QuerySysColor(h: HWND; c: COLOR; r: LONGINT) : COLOR;
- PROCEDURE SetSysColors(h: HWND; o,f,s: LONGCARD; l: LONGCARD; VAR t: ARRAY OF COLOR) : BOOLEAN;
- CONST
- 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 = 32;
- (*%E*)
- (**)
- (**--- Win Timer Functions -------------------------------------------------*)
- (**)
- (*%T i_TIMER*)
- PROCEDURE StartTimer(h:HAB; w: HWND; i: CARDINAL; t: CARDINAL) : CARDINAL;
- PROCEDURE StopTimer(h:HAB; w: HWND; i: CARDINAL) : BOOLEAN;
- PROCEDURE GetCurrentTime(h:HAB) : LONGCARD;
- CONST
- (* Reserved timer ids *)
- TID_CURSOR = 0FFFFH; (* Reserved cursor timer ID *)
- TID_SCROLL = 0FFFEH; (* Reserved scrolling timer ID *)
- TID_FLASHWINDOW = 0FFFDH; (* Reserved for window flashing timer ID *)
- TID_USERMAX = 07FFFH; (* Maximum user timer ID *)
- (*%E*)
- (**)
- (**--- Win Accelerator -----------------------------------------------------*)
- (**)
- (*%T i_ACCEL*)
- CONST
- (* ACCEL flags *)
- AF_CHAR = {0};
- AF_VIRTUALKEY = {1};
- AF_SCANCODE = {2};
- AF_SHIFT = {3};
- AF_CONTROL = {4};
- AF_ALT = {5};
- AF_LONEKEY = {6};
- AF_SYSCOMMAND = {8};
- AF_HELP = {9};
- TYPE
- HACCEL = LHANDLE;
- ACCEL = RECORD
- flags : BITSET;
- key : CARDINAL;
- cmd : CARDINAL;
- END;
- ACCELTABLE = RECORD
- CAccel : CARDINAL;
- codepage : CARDINAL;
- Accel : ARRAY [0..0] OF ACCEL;
- END;
- PROCEDURE LoadAccelTable(h:HAB; r: HMODULE; i: CARDINAL) : HACCEL;
- PROCEDURE CreateAccelTable(h:HAB; VAR t: ACCELTABLE) : HACCEL;
- PROCEDURE DestroyAccelTable(a: HACCEL) : BOOLEAN;
- PROCEDURE CopyAccelTable(a: HACCEL; VAR t: ACCELTABLE; m: CARDINAL) : CARDINAL;
- PROCEDURE TranslateAccel(h:HAB; w: HWND; a: HACCEL; VAR q: QMSG) : BOOLEAN;
- PROCEDURE SetAccelTable(h:HAB; a: HACCEL; f: HWND) : BOOLEAN;
- PROCEDURE QueryAccelTable(h:HAB; f: HWND) : HACCEL;
- (*%E*)
- (**** Extended Attribute Flags (Association Table) *)
- CONST
- EAF_DEFAULTOWNER = 01H;
- EAF_UNCHANGEABLE = 02H;
- EAF_REUSEICON = 04H;
- (**)
- (**--- Win Track Rectangle -------------------------------------------------*)
- (**)
- (*%T i_TRACK*)
- TYPE
- (* TrackRect() tracking information *)
- TRACKINFO = RECORD
- cxBorder : INTEGER;
- cyBorder : INTEGER;
- cxGrid : INTEGER;
- cyGrid : INTEGER;
- cxKeyboard : INTEGER;
- cyKeyboard : INTEGER;
- Track : RECTL;
- Boundary : RECTL;
- MinTrackSize : POINTL;
- MaxTrackSize : POINTL;
- options : BITSET;
- END;
- PROCEDURE TrackRect(h: HWND; s: HPS; VAR t: TRACKINFO) : BOOLEAN;
- PROCEDURE ShowTrackRect(h: HWND; s: BOOL) : BOOLEAN;
- CONST
- (* TRACKINFO options *)
- TF_LEFT = {0};
- TF_TOP = {1};
- TF_RIGHT = {2};
- TF_BOTTOM = {3};
- TF_MOVE = {0..3};
- TF_SETPOINTERPOS = {4};
- TF_GRID = {5};
- TF_STANDARD = {6};
- TF_ALLINBOUNDARY = {7};
- TF_VALIDATETRACKRECT = {8};
- TF_PARTINBOUND = {9};
- (*%E*)
- (**)
- (**--- Win Clipboard -------------------------------------------------------*)
- (**)
- (*%T i_CLIP*)
- CONST
- WM_RENDERFMT = 060H;
- WM_RENDERALLFMTS = 061H;
- WM_DESTROYCLIPBOARD = 062H;
- WM_PAINTCLIPBOARD = 063H;
- WM_SIZECLIPBOARD = 064H;
- WM_HSCROLLCLIPBOARD = 065H;
- WM_VSCROLLCLIPBOARD = 066H;
- WM_DRAWCLIPBOARD = 067H;
- TYPE
- CF = (CF_NULL, CF_TEXT, CF_BITMAP, CF_DSPTEXT,
- CF_DSPBITMAP,CF_METAFILE,CF_DSPMETAFILE );
- PROCEDURE SetClipbrdOwner(h:HAB; w: HWND) : BOOLEAN;
- PROCEDURE SetClipbrdData(a:HAB; h: LONGCARD; f: CF; i: CARDINAL) : BOOLEAN;
- PROCEDURE QueryClipbrdData(h:HAB; f: CF) : LONGCARD;
- PROCEDURE QueryClipbrdFmtInfo(h:HAB; f: CF; VAR m: CARDINAL) : BOOLEAN;
- PROCEDURE SetClipbrdViewer(h:HAB; w: HWND) : BOOLEAN;
- PROCEDURE EnumClipbrdFmts(h:HAB; p: CF) : CF;
- PROCEDURE OpenClipbrd(h:HAB) : BOOLEAN;
- PROCEDURE CloseClipbrd(h:HAB) : BOOLEAN;
- PROCEDURE EmptyClipbrd(h:HAB) : BOOLEAN;
- PROCEDURE QueryClipbrdOwner(h:HAB; l: BOOL) : HWND;
- PROCEDURE QueryClipbrdViewer(h:HAB; l: BOOL) : HWND;
- CONST
- (* SetClipbrdData() flags *)
- CFI_OWNERFREE = 01H;
- CFI_OWNERDISPLAY = 02H;
- CFI_SELECTOR = 0100H;
- CFI_HANDLE = 0200H;
- (*%E*)
- (**)
- (**--- Win Cursor Management -----------------------------------------------*)
- (**)
- (*%T i_CURSOR*)
- PROCEDURE DestroyCursor(h: HWND) : BOOLEAN;
- PROCEDURE ShowCursor(h: HWND; s: BOOL) : BOOLEAN;
- PROCEDURE CreateCursor(h: HWND; x,y,cx,cy: INTEGER; f: BITSET; VAR c: RECTL) : BOOLEAN;
- CONST
- (* CreatCursor()/CURSORINFO flags *)
- CURSOR_SOLID = {};
- CURSOR_HALFTONE = {0};
- CURSOR_FRAME = {1};
- CURSOR_FLASH = {2};
- CURSOR_SETPOS = {15};
- TYPE
- CURSORINFO = RECORD
- hwnd : HWND;
- x,y,cx,cy : INTEGER;
- flags : BITSET;
- rclClip : RECTL;
- END;
- PROCEDURE QueryCursorInfo(h: HWND; VAR c: CURSORINFO) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Win Pointer Management ----------------------------------------------*)
- (**)
- (*%T i_POINTER*)
- TYPE
- HPOINTER = LHANDLE;
- PROCEDURE SetPointer(h: HWND; p: HPOINTER) : BOOLEAN;
- PROCEDURE ShowPointer(h: HWND; s: BOOL) : BOOLEAN;
- PROCEDURE QuerySysPointer(h: HWND; i: INTEGER; c: BOOL) : HPOINTER;
- (* System pointers *)
- (*%T i_LATER *)
- CONST
- SPTR_ARROW = 1;
- SPTR_TEXT = 2;
- SPTR_WAIT = 3;
- SPTR_MOVE = 4;
- SPTR_SIZENWSE = 5;
- SPTR_SIZENESW = 6;
- SPTR_SIZEWE = 7;
- SPTR_SIZENS = 8;
- SPTR_APPICON = 9;
- SPTR_ICONINFORMATION = 10;
- SPTR_ICONQUESTION = 11;
- SPTR_ICONERROR = 12;
- SPTR_ICONWARNING = 13;
-
- SPTR_CPTR = 13; (* Count of pointers loaded by PMWIN *)
-
- SPTR_ILLEGAL = 14;
- SPTR_FILE = 15;
- SPTR_FOLDER = 16;
- SPTR_MULTFILE = 17;
- SPTR_PROGRAM = 18;
-
- (*%E *)
- (*%F i_LATER *)
- 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; (* count loaded by pmwin *)
- SPTR_ILLEGAL = 18;
- SPTR_FILE = 19;
- SPTR_FOLDER = 20;
- SPTR_MULTFILE = 21;
- SPTR_PROGRAM = 22;
- (* backward compatibility *)
- SPTR_HANDICON = SPTR_ICONERROR;
- SPTR_QUESICON = SPTR_ICONQUESTION;
- SPTR_BANGICON = SPTR_ICONWARNING;
- SPTR_NOTEICON = SPTR_ICONINFORMATION;
- (*%E *)
- PROCEDURE LoadPointer(h: HWND; r: HMODULE; idres: CARDINAL) : HPOINTER;
- PROCEDURE CreatePointer(h: HWND; b: HBITMAP; p: BOOL; x,y: INTEGER) : HPOINTER;
- PROCEDURE DestroyPointer(p: HPOINTER) : BOOLEAN;
- PROCEDURE QueryPointer(h: HWND) : HPOINTER;
- PROCEDURE SetPointerPos(h: HWND; x,y: INTEGER) : BOOLEAN;
- PROCEDURE QueryPointerPos(h: HWND; VAR p: POINTL) : BOOLEAN;
- TYPE
- POINTERINFO = RECORD
- flag : BOOL;
- xHotspot : INTEGER;
- yHotspot : INTEGER;
- Pointer,
- Color : HBITMAP;
- END;
- PROCEDURE WinCreatePointerIndirect(h: HWND; VAR i: POINTERINFO): HPOINTER;
- PROCEDURE QueryPointerInfo(h: HPOINTER; VAR i: POINTERINFO) : BOOLEAN;
- TYPE DP=(DP_NORMAL,DP_HALFTONED,DP_INVERTED);
- PROCEDURE DrawPointer(s:HPS; x,y: INTEGER; p: HPOINTER; h: DP) : BOOLEAN;
- (* System Bitmaps *)
- TYPE SBMP=(SBMP_NULL, SBMP_OLD_SYSMENU,
- SBMP_OLD_SBUPARROW, SBMP_OLD_SBDNARROW,
- SBMP_OLD_SBRGARROW, SBMP_OLD_SBLFARROW,
- SBMP_MENUCHECK, SBMP_CHECKBOXES,
- SBMP_BTNCORNERS, SBMP_OLD_MINBUTTON,
- SBMP_OLD_MAXBUTTON, SBMP_OLD_RESTOREBUTTON,
- SBMP_OLD_CHILDSYSMENU, SBM_13,
- SBM_14, SBMP_DRIVE,
- SBMP_FILE, SBMP_FOLDER,
- SBMP_TREEPLUS, SBMP_TREEMINUS,
- SBMP_20, SBMP_21,
- SBMP_PROGRAM, SBMP_MENUATTACHED,
- SBMP_SIZEBOX, SBMP_SYSMENU,
- SBMP_MINBUTTON, SBMP_MAXBUTTON,
- SBMP_RESTOREBUTTON, SBMP_CHILDSYSMENU,
- SBMP_SYSMENUDEP, SBMP_MINBUTTONDEP,
- SBMP_MAXBUTTONDEP, SBMP_RESTOREBUTTONDEP,
- SBMP_CHILDSYSMENUDEP, SBMP_SBUPARROW,
- SBMP_SBDNARROW, SBMP_SBLFARROW,
- SBMP_SBRGARROW, SBMP_SBUPARROWDEP,
- SBMP_SBDNARROWDEP, SBMP_SBLFARROWDEP,
- SBMP_SBRGARROWDEP, SBMP_SBUPARROWDIS,
- SBMP_SBDNARROWDIS, SBMP_SBLFARROWDIS,
- SBMP_SBRGARROWDIS, SBMP_COMBODOWN);
- PROCEDURE GetSysBitmap(h: HWND; s: SBMP) : HBITMAP;
- (*%E*)
- (**)
- (**--- Win Hook Manager ----------------------------------------------------*)
- (**)
- (*%T i_HOOK*)
- TYPE HK=(HK_SENDMSG,HK_INPUT,HK_MSGFILTER,HK_JOURNALRECORD,
- HK_JOURNALPLAYBACK,HK_HELP,HK_LOADER,HK_REGISTERUSERMSG,
- HK_MSGCONTROL,HK_PLIST_ENTRY,HK_PLIST_EXIT,HK_FINDWORD,
- HK_CODEPAGECHANGED);
- PROCEDURE SetHook(h:HAB; q: HMQ; t: HK; p: PROC; m: HMODULE) : BOOLEAN;
- PROCEDURE ReleaseHook(h:HAB; q: HMQ; t: HK; p: PROC; m: HMODULE) : BOOLEAN;
- PROCEDURE CallMsgFilter(h:HAB; VAR m: QMSG; f: INTEGER) : BOOLEAN;
- CONST
- HMQ_CURRENT = HMQ(1);
- (* WH_MSGFILTER context codes *)
- MSGF_DIALOGBOX = 1;
- MSGF_MESSAGEBOX = 2;
- MSGF_TRACK = 8;
- (* HK_HELP help modes *)
- HLPM_FRAME = -1;
- HLPM_WINDOW = -2;
- HLPM_MENU = -3;
- TYPE
- (* HK_SENDMSG structure *)
- SMHSTRUCT = RECORD
- mp2 : MPARAM;
- mp1 : MPARAM;
- msg : CARDINAL;
- hwnd : HWND;
- END;
- CONST
- (*HK_LOADER context codes *)
- LHK_DELETEPROC = 1;
- LHK_DELETELIB = 2;
- LHK_LOADPROC = 3;
- LHK_LOADLIB = 4;
- (*HK_MSGCONTROL context codes *)
- MCHK_MSGINTEREST = 1;
- MCHK_CLASSMSGINTEREST = 2;
- MCHK_SYNCHRONISATION = 3;
- MCHK_MSGMODE = 4;
- (*HK_REGISTERUSERMSG conext codes *)
- RUMHK_DATATYPE = 1;
- RUMHK_MSG = 2;
- (*%E*)
- (**)
- (**--- Win Shell API -------------------------------------------------------*)
- (**)
- (*%T i_SHELL*)
- (* Maximum filename length *)
- CONST
- MAXNAMEL = 60;
- (* Maximum path length *)
- MAXPATHL = 128;
- TYPE
- PATHSTR = ARRAY[0..MAXPATHL] OF CHAR;
- NAMESTR = ARRAY[0..MAXNAMEL] OF CHAR;
- XYWINSIZE = RECORD
- x,y,cx,cy : INTEGER;
- flags : BITSET;
- END;
- CONST
- (* XYWINSIZE flags *)
- XYF_NOAUTOCLOSE = {3};
- XYF_MINIMIZED = {2};
- XYF_MAXIMIZED = {1};
- XYF_INVISIBLE = {0};
- XYF_NORMAL = {};
- TYPE
- HPROGRAM = LHANDLE;
- HINI = LHANDLE;
- CONST
- HINI_PROFILE = 0;
- HINI_USERPROFILE = -1;
- HINI_SYSTEMPROFILE = -2;
- HINI_USER = HINI_USERPROFILE;
- HINI_SYSTEM = HINI_SYSTEMPROFILE;
- TYPE
- PRFPROFILE = RECORD
- cchUserName : LONGCARD;
- UserName : POINTER TO CHAR;
- cchSysName : LONGCARD;
- SysName : POINTER TO CHAR;
- END;
- CONST
- (* Root group handle *)
- SGH_ROOT = 2;
- TYPE
- HPROGARRAY = RECORD
- hprog : ARRAY [0..0] OF HPROGRAM;
- END;
- PROGCATEGORY = SHORTCARD;
- (* values acceptable for PROGCATEGORY for PM groups *)
- CONST
- PROG_DEFAULT = 0;
- PROG_FULLSCREEN = 1;
- PROG_WINDOWABLEVIO = 2;
- PROG_PM = 3;
- PROG_GROUP = 5;
- PROG_REAL = 4; (* Was 7 *)
- PROG_DLL = 6;
- PROG_RESERVED = 255;
- (* visibility flag for PROGTYPE structure *)
- SHE_VISIBLE = 0;
- SHE_INVISIBLE = 1;
- SHE_RESERVED = 255;
- (* Protected group flag for PROGTYPE structure *)
- SHE_UNPROTECTED = 0;
- SHE_PROTECTED = 2;
- TYPE
- PROGTYPE = RECORD
- progc : PROGCATEGORY;
- Visible : SHORTCARD;
- END;
- PROGRAMENTRY = RECORD
- hprog : HPROGRAM;
- progt : PROGTYPE;
- Title : NAMESTR;
- END;
- PIBSTRUCT = RECORD
- progt : PROGTYPE;
- Title : NAMESTR;
- IconFileName : PATHSTR;
- Executable : PATHSTR;
- StartupDir : PATHSTR;
- winInitial : XYWINSIZE;
- res1 : CARDINAL;
- res2 : FarADDRESS;
- CEnvironmentVars : CARDINAL;
- EnvironmentVars : FarADDRESS;
- CProgramParameter : CARDINAL;
- ProgramParameter : FarADDRESS;
- END;
- (* Structures associated with 'Prf' calls *)
- PROGDETAILS = RECORD
- Length: LONGCARD; (* set this to sizeof(PROGDETAILS) *)
- progt: PROGTYPE;
- pad1: ARRAY[0..2] OF SHORTCARD; (* ready for 32-bit PROGTYPE *)
- Title: FarADDRESS; (* any of the pointers can be NIL *)
- Executable: FarADDRESS;
- Parameters: FarADDRESS;
- StartupDir: FarADDRESS;
- Icon: FarADDRESS;
- Environment: FarADDRESS; (* terminated by /0/0 *)
- Initial: SWP; (* this replaces XYWINSIZE *)
- pad2: ARRAY[0..4] OF SHORTCARD; (* ready for 32-bit SWP *)
- END;
- PROGTITLE = RECORD
- hprog: HPROGRAM;
- progt: PROGTYPE;
- pad1: ARRAY[0..2] OF SHORTCARD; (* padding ready for 32-bit PROGTYPE *)
- Title: FarADDRESS;
- END;
- QFEOUTBLK = RECORD
- Total: SHORTCARD;
- Count: SHORTCARD;
- ProgramArr: ARRAY [0..0] OF HPROGRAM;
- END;
- (* Program List API Function Definitions *)
- PROCEDURE QueryProgramTitles(h:HAB; p:HPROGRAM; VAR b:PROGRAMENTRY; l:CARDINAL; VAR t:CARDINAL) : CARDINAL;
- PROCEDURE AddProgram(h:HAB; VAR i:PIBSTRUCT; p:HPROGRAM) : HPROGRAM;
- PROCEDURE QueryDefinition(h:HAB; p:HPROGRAM; VAR i:PIBSTRUCT; m:CARDINAL) : CARDINAL;
- PROCEDURE CreateGroup(h:HAB; t:ARRAY OF CHAR; v:CARDINAL; r1,r2:LONGCARD) : HPROGRAM;
- (* Program List API available 'Prf' calls *)
- PROCEDURE PrfQueryProgramTitles(h: HINI; pgroup: HPROGRAM;
- VAR T: PROGTITLE; Max: LONGCARD; VAR Count: LONGCARD): LONGCARD;
- PROCEDURE PrfAddProgram (h:HINI; VAR p: PROGDETAILS; hpGroup: HPROGRAM): HPROGRAM;
- PROCEDURE PrfChangeProgram (h:HINI; hp: HPROGRAM; VAR p: PROGDETAILS): BOOLEAN;
- PROCEDURE PrfQueryDefinition (h:HINI; hp:HPROGRAM; VAR p: PROGDETAILS; BufMax: LONGCARD): LONGCARD;
- PROCEDURE PrfRemoveProgram(h:HINI; hp:HPROGRAM): BOOLEAN;
- PROCEDURE PrfQueryProgramHandle (h:HINI; Exe: FarADDRESS;
- VAR p:HPROGARRAY; bufmax: LONGCARD; VAR Count: LONGCARD): LONGCARD;
- PROCEDURE PrfCreateGroup (h:HINI; Title: FarADDRESS; Visibility: SHORTCARD): HPROGRAM;
- PROCEDURE PrfDestroyGroup(h:HINI; hp:HPROGRAM): BOOLEAN;
- PROCEDURE PrfQueryProgramCategory(h:HINI; Exe: FarADDRESS): PROGCATEGORY;
- TYPE
- HSWITCH = LHANDLE;
- CONST
- (* SWCNTRL Visibility *)
- SWL_VISIBLE = 4;
- SWL_INVISIBLE = 1;
- SWL_GRAYED = 2;
- (* SWCNTRL Jump *)
- SWL_JUMPABLE = 2;
- SWL_NOTJUMPABLE = 1;
- TYPE
- SWCNTRL = RECORD
- hwnd : HWND;
- hwndIcon : HWND;
- hprog : HPROGRAM;
- idProcess : CARDINAL;
- idSession : CARDINAL;
- Visibility : SHORTCARD;
- Jump : SHORTCARD;
- Swtitle : NAMESTR;
- Reserved : SHORTCARD;
- END;
- PROCEDURE AddSwitchEntry(VAR c:SWCNTRL) : HSWITCH;
- PROCEDURE RemoveSwitchEntry(h:HSWITCH) : CARDINAL;
- TYPE
- SWENTRY = RECORD
- hswitch: HSWITCH;
- swctl: SWCNTRL;
- END;
- SWBLOCK = RECORD
- cswentry: CARDINAL;
- swentry: ARRAY [0..0] OF SWENTRY;
- END;
- PROCEDURE ChangeSwitchEntry(s:HSWITCH; VAR c:SWCNTRL) : CARDINAL;
- PROCEDURE QueryTaskTitle(c:CARDINAL; VAR t:ARRAY OF CHAR; c2:CARDINAL) : CARDINAL;
- PROCEDURE CreateSwitchEntry(h: HAB; VAR c:SWCNTRL ): HSWITCH;
- PROCEDURE QuerySessionTitle(h:HAB; s: CARDINAL; VAR Title: ARRAY OF CHAR;
- Titlelen: CARDINAL): CARDINAL;
- PROCEDURE QuerySwitchEntry(h:HSWITCH; VAR SwitchData: SWCNTRL): CARDINAL;
- PROCEDURE QuerySwitchHandle(h:HWND; process: PID): HSWITCH;
- PROCEDURE QuerySwitchList(h:HAB; VAR Entries: SWBLOCK; Datalen: CARDINAL): CARDINAL;
- PROCEDURE QueryTaskSizePos(h:HAB; ScreenGroup: CARDINAL; VAR pdata: SWP): CARDINAL;
- PROCEDURE SwitchToProgram(h:HSWITCH): CARDINAL;
- (* OS2.INI access functions *)
- PROCEDURE QueryProfileInt(h:HAB; a,k:ARRAY OF CHAR; d:INTEGER) : INTEGER;
- PROCEDURE QueryProfileString(h:HAB; a,k,d:ARRAY OF CHAR; VAR p : ARRAY OF CHAR; m:CARDINAL) : CARDINAL;
- PROCEDURE WriteProfileString(h:HAB; a,k,v:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE QueryProfileSize(h:HAB; a,k:ARRAY OF CHAR; VAR s:CARDINAL) : CARDINAL;
- PROCEDURE QueryProfileData(h:HAB; a,k:ARRAY OF CHAR; v:FarADDRESS; VAR s:CARDINAL) : BOOLEAN;
- PROCEDURE WriteProfileData(h:HAB; a,k:ARRAY OF CHAR; v:FarADDRESS; s:CARDINAL) : BOOLEAN;
- (* new public message, broadcast on WinReset *)
- CONST
- PL_ALTERED =08EH; (* WM_SHELLFIRST + 0E *)
- TYPE
- HAPP = LHANDLE;
- PROCEDURE InstStartApp(h:HINI; Notify:HWND; Count: CARDINAL;
- Application: FarADDRESS;
- VAR CmdLine: ARRAY OF CHAR; Data: FarADDRESS;
- Options: CARDINAL): HAPP;
- PROCEDURE TerminateApp(h: HAPP): BOOLEAN;
- CONST
- (* bit values for Options parameter of WinInstStartAppl *)
- SAF_INSTALLEDCMDLINE = 1; (* use installed parameters *)
- SAF_STARTCHILDAPP = 2; (* related application *)
- (*%E*)
- (**)
- (**--- Win Country Functions -----------------------------------------------*)
- (**)
- (*%T i_COUNTRY*)
- PROCEDURE SetCp(h: HMQ; c: CARDINAL) : BOOLEAN;
- PROCEDURE QueryCp(q: HMQ) : CARDINAL;
- PROCEDURE QueryCpList(h:HAB; n: CARDINAL; VAR c: ARRAY OF CARDINAL) : CARDINAL;
- PROCEDURE CpTranslateString(h:HAB; cs: CARDINAL; s: ARRAY OF CHAR; cd: CARDINAL; m: CARDINAL; VAR d: ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE CpTranslateChar(h:HAB; cs: CARDINAL; c: CHAR; cd: CARDINAL) : CHAR;
- PROCEDURE Upper(h:HAB; p,c: CARDINAL; VAR s: ARRAY OF CHAR) : CARDINAL;
- PROCEDURE UpperChar(h:HAB; p,c: CARDINAL; i: CARDINAL) : CARDINAL;
- PROCEDURE NextChar(h:HAB; p,c: CARDINAL; ca: FarADDRESS) : FarADDRESS;
- PROCEDURE PrevChar(h:HAB; p,c: CARDINAL; s,ca: FarADDRESS) : FarADDRESS;
- TYPE WCS = (WCS_ERROR,WCS_EQ,WCS_LT,WCS_GT);
- PROCEDURE CompareStrings(h:HAB; c1,c2: CARDINAL; s1,s2: ARRAY OF CHAR; o: CARDINAL) : WCS;
- (*%E*)
- (**)
- (**--- Win Heap Manager ----------------------------------------------------*)
- (**)
- (*%T i_HEAP*)
- TYPE
- HHEAP = LHANDLE;
- CONST
- HM_NULL = 0;
- HM_MOVEABLE = 1;
- HM_VALIDSIZE = 2;
- PROCEDURE CreateHeap(b,s,g,mi,ma: CARDINAL; o: CARDINAL) : HHEAP;
- PROCEDURE DestroyHeap(h: HHEAP) : HHEAP;
- PROCEDURE AvailMem(h: HHEAP; c: BOOL; r: CARDINAL) : CARDINAL;
- PROCEDURE AllocMem(h: HHEAP; a: CARDINAL) : CARDINAL;
- PROCEDURE ReallocMem(h: HHEAP; s,o,n: CARDINAL ) : CARDINAL;
- PROCEDURE FreeMem(h: HHEAP; m,l: CARDINAL) : CARDINAL;
- PROCEDURE LockHeap(h: HHEAP) : FarADDRESS;
- (*%E*)
- (**)
- (**--- Win Atom Manager ----------------------------------------------------*)
- (**)
- (*%T i_ATOM*)
- TYPE
- HATOMTBL = LHANDLE;
- ATOM = CARDINAL;
- PROCEDURE QuerySystemAtomTable() : HATOMTBL;
- PROCEDURE CreateAtomTable(i,b: CARDINAL) : HATOMTBL;
- PROCEDURE DestroyAtomTable(h: HATOMTBL) : HATOMTBL;
- PROCEDURE AddAtom(h: HATOMTBL; s: ARRAY OF CHAR) : ATOM;
- PROCEDURE FindAtom(h: HATOMTBL; s: ARRAY OF CHAR) : ATOM;
- PROCEDURE DeleteAtom(h: HATOMTBL; a: ATOM) : ATOM;
- PROCEDURE QueryAtomUsage(h: HATOMTBL; a: ATOM) : INTEGER;
- PROCEDURE QueryAtomLength(h: HATOMTBL; a: ATOM) : CARDINAL;
- PROCEDURE QueryAtomName(h: HATOMTBL; a: ATOM; VAR b: ARRAY OF CHAR; m: CARDINAL) : CARDINAL;
- (*%E*)
- (**)
- (**--- Win Catch and Throw -------------------------------------------------*)
- (**)
- (*%T i_CATCH*)
- TYPE
- CATCHBUF = RECORD
- reserved : ARRAY [0..3] OF LONGCARD;
- END;
- PROCEDURE Catch(VAR b: CATCHBUF) : INTEGER;
- PROCEDURE Throw(VAR b: CATCHBUF; r: INTEGER);
- (*%E*)
- (**)
- (**--- Win Errors ---------------------------------------------------*)
- (**)
- (*%T i_ERROR*)
- (* Error codes for debugging support *)
- (* 0x1001 - 0x1021, 0x1034, 0x1036 - 0x1050 are reserved *)
- CONST
- WINDBG_HWND_NOT_DESTROYED = 01022H;
- WINDBG_HPTR_NOT_DESTROYED = 01023H;
- WINDBG_HACCEL_NOT_DESTROYED = 01024H;
- WINDBG_HENUM_NOT_DESTROYED = 01025H;
- WINDBG_VISRGN_SEM_BUSY = 01026H;
- WINDBG_USER_SEM_BUSY = 01027H;
- WINDBG_DC_CACHE_BUSY = 01028H;
- WINDBG_HOOK_STILL_INSTALLED = 01029H;
- WINDBG_WINDOW_STILL_LOCKED = 0102AH;
- WINDBG_UPDATEPS_ASSERTION_FAIL = 0102BH;
- WINDBG_SENDMSG_WITHIN_USER_SEM = 0102CH;
- WINDBG_USER_SEM_NOT_ENTERED = 0102DH;
- WINDBG_PROC_NOT_EXPORTED = 0102EH;
- WINDBG_BAD_SENDMSG_HWND = 0102FH;
- WINDBG_ABNORMAL_EXIT = 01030H;
- WINDBG_INTERNAL_REVISION = 01031H;
- WINDBG_INITSYSTEM_FAILED = 01032H;
- WINDBG_HATOMTBL_NOT_DESTROYED = 01033H;
- WINDBG_WINDOW_UNLOCK_WAIT = 01035H;
- (* Get/Set Error Information Interface declarations *)
- TYPE
- ERRINFO = RECORD
- FixedErrInfo : CARDINAL;
- idError : LONGCARD;
- DetailLevel : CARDINAL;
- Msg : CARDINAL;
- BinaryData : CARDINAL;
- END;
- PERRINFO = POINTER TO ERRINFO;
- PROCEDURE GetLastError(h: HAB): ERRORID;
- PROCEDURE GetErrorInfo(h: HAB): PERRINFO;
- PROCEDURE FreeErrorInfo(VAR e: ERRINFO): BOOLEAN;
- (* SetErrorInfo API *)
- (*# save *)
- (*# call(c_conv=>on,var_arg=>on,reg_param=>()) *)
- PROCEDURE WinSetErrorInfo(e:ERRORID; flg:CARDINAL): ERRORID;
- (*# restore *)
- CONST
- SEI_BREAKPOINT = 08000H; (* Always enter an INT 3 breakpt *)
- SEI_NOBEEP = 04000H; (* Do not call DosBeep *)
- SEI_NOPROMPT = 02000H; (* Do not prompt the user *)
- SEI_DBGRSRVD = 01000H; (* Reserved for debug use *)
- SEI_DEBUGONLY = 0F000H; (* SEI_BREAKPOINT | SEI_NOBEEP | SEI_NOPROMPT | SEI_RSRVD *)
- SEI_STACKTRACE = 00001H; (* save the stack trace *)
- SEI_REGISTERS = 00002H; (* save the registers *)
- SEI_ARGCOUNT = 00004H; (* first USHORT in args is arg count *)
- SEI_DOSERROR = 00008H; (* first USHORT in args is OS2 error code *)
- SEI_MSGSTR = 00010H; (* first PSZ in arg -> msg string *)
- SEI_RESERVED = 00FE0H; (* Reserved for future use *)
- (* Note that when SEI_ARGCOUNT, SEI_DOSERROR and DOS_MSGSTR are specified *)
- (* together, then the implied order of the parameters is: *)
- (* *)
- (* *)
- (* WinSetErrorInfo( MAKEERRORID( .... ), *)
- (* SEI_ARGCOUNT | SEI_DOSERROR | SEI_MSGSTR, *)
- (* argCount, *)
- (* dosErrorCode, *)
- (* "This is the error msg string: %s\n", *)
- (* "This is an insert for the %s format specifier" ); *)
- (* *)
- (*%E*)
- (**)
- (**--- Win DDE Structure ---------------------------------------------------*)
- (**)
- (*%T i_DDE*)
- TYPE
- DDEINIT = RECORD
- cb : CARDINAL;
- AppName : FarADDRESS;
- Topic : FarADDRESS;
- END ;
- DDESTRUCT = RECORD
- Data : LONGINT;
- Status : BITSET;
- Format : CARDINAL;
- OffItemName : CARDINAL;
- OffData : CARDINAL;
- END;
- (* DDESTRUCT Status *)
- CONST
- DDE_FACK = {0};
- DDE_FBUSY = {1};
- DDE_FNODATA = {2};
- DDE_FACKREQ = {3};
- DDE_FRESPONSE = {4};
- DDE_NOTPROCESSED = {5};
- DDE_FRESERVED = {6,7};
- DDE_FAPPSTATUS = {8..15};
- (* DDESTRUCT Format *)
- DDEFMT_TEXT = 1;
- PROCEDURE DdeInitiate (h: HWND; n,t:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE DdeRespond (c,s: HWND; n,t:ARRAY OF CHAR) : MRESULT;
- PROCEDURE DdePostMsg (f,t: HWND; m:CARDINAL; VAR d:DDESTRUCT; r:BOOL) : BOOL;
- CONST
- (* DDE Messages *)
- WM_DDE_FIRST = 00A0H;
- WM_DDE_INITIATE = 00A0H;
- WM_DDE_REQUEST = 00A1H;
- WM_DDE_ACK = 00A2H;
- WM_DDE_DATA = 00A3H;
- WM_DDE_ADVISE = 00A4H;
- WM_DDE_UNADVISE = 00A5H;
- WM_DDE_POKE = 00A6H;
- WM_DDE_EXECUTIVE = 00A7H;
- WM_DDE_TERMINATE = 00A8H;
- WM_DDE_INITIATEACK = 00A9H;
- WM_DDE_LAST = 00AFH;
- (*%E*)
- CONST
- WM_QUERYCONVERTPOS = 0B0H;
- (* Return values for WM_QUERYCONVERTPOS *)
- QCP_CONVERT = 1;
- QCP_NOCONVERT = 0;
- (**)
- (**--- Win HELP Structure ---------------------------------------------------*)
- (**)
- (*%T i_WINHELP*)
- TYPE
- HELPSUBTABLE = INTEGER;
- PHELPSUBTABLE = POINTER TO HELPSUBSABLE;
- HELPTABLE = RECORD
- AppWindow : CARDINAL;
- HelpSubTable: PHELPSUBTABLE;
- ExtPanel : CARDINAL;
- END;
- PHELPTABLE = POINTER TO HELPTABLE;
- HELPINIT = RECORD
- cb : CARDINAL;
- ReturnCode : LONGCARD;
- TutorialName : FarADDRESS;
- HelpTable : PHELPTABLE;
- HelpTableModule : HMODULE;
- AccelActionBarModule : HMODULE;
- AccelTable : CARDINAL;
- ActionBar : CARDINAL;
- HelpWindowTitle : FarADDRESS;
- ShowPanelId : CARDINAL;
- HelpLibraryName : FarADDRESS;
- END;
- CONST
- HWND_NULL = HWND (0);
- (* Constants used to define whether user wants to display panel using *)
- (* panel number or panel name. *)
- HM_RESOURCEID = 0;
- HM_PANELNAME = 1;
- HMPANELTYPE_NUMBER = 0;
- HMPANELTYPE_NAME = 1;
- (* Constants used to define how the panel IDs are displayed on *)
- (* help panels. *)
- CMIC_HIDE_PANEL_ID = 00H;
- CMIC_SHOW_PANEL_ID = 01H;
- CMIC_TOGGLE_PANEL_ID = 02H;
- PROCEDURE DestroyHelpInstance(HelpInstance : HWND): BOOLEAN;
- PROCEDURE CreateHelpInstance(hab : HAB; VAR HMInitStructure : HELPINIT) : HWND;
- PROCEDURE AssociateHelpInstance(HelpInstance, App: HWND) : BOOLEAN;
- PROCEDURE QueryHelpInstance(App: HWND) : HWND;
- PROCEDURE LoadHelpTable(HelpInstance: HWND; HelpTable : CARDINAL; Module : HMODULE) : BOOLEAN;
- PROCEDURE CreateHelpTable(HelpInstance: HWND; VAR HelpTable : HELPTABLE) : BOOLEAN;
- CONST
- HM_MSG_BASE = 0220H;
- HM_DISMISS_WINDOW = HM_MSG_BASE+01H;
- HM_DISPLAY_HELP = HM_MSG_BASE+02H;
- HM_EXT_HELP = HM_MSG_BASE+03H;
- HM_SET_ACTIVE_WINDOW = HM_MSG_BASE+04H;
- HM_LOAD_HELP_TABLE = HM_MSG_BASE+05H;
- HM_CREATE_HELP_TABLE = HM_MSG_BASE+06H;
- HM_SET_HELP_WINDOW_TITLE = HM_MSG_BASE+07H;
- HM_SET_SHOW_PANEL_ID = HM_MSG_BASE+08H;
- HM_REPLACE_HELP_FOR_HELP = HM_MSG_BASE+09H;
- HM_HELP_INDEX = HM_MSG_BASE+0AH;
- HM_HELP_CONTENTS = HM_MSG_BASE+0BH;
- HM_KEYS_HELP = HM_MSG_BASE+0CH;
- HM_SET_HELP_LIBRARY_NAME = HM_MSG_BASE+0DH;
- HM_ERROR = HM_MSG_BASE+0EH;
- HM_HELPSUBITEM_NOT_FOUND = HM_MSG_BASE+0FH;
- HM_QUERY_KEYS_HELP = HM_MSG_BASE+010H;
- HM_TUTORIAL = HM_MSG_BASE+011H;
- HM_EXT_HELP_UNDEFINED = HM_MSG_BASE+012H;
- HM_ACTIONBAR_COMMAND = HM_MSG_BASE+013H;
- HM_INFORM = HM_MSG_BASE+014H;
- HMERR_NO_FRAME_WND_IN_CHAIN = 01001H;
- HMERR_INVALID_ASSOC_APP_WND = 01002H;
- HMERR_INVALID_ASSOC_HELP_INST = 01003H;
- HMERR_INVALID_DESTROY_HELP_INST = 01004H;
- HMERR_NO_HELP_INST_IN_CHAIN = 01005H;
- HMERR_INVALID_HELP_INSTANCE_HDL = 01006H;
- HMERR_INVALID_QUERY_APP_WND = 01007H;
- HMERR_HELP_INST_CALLED_INVALID = 01008H;
- HMERR_HELPTABLE_UNDEFINE = 01009H;
- HMERR_HELP_INSTANCE_UNDEFINE = 0100AH;
- HMERR_HELPITEM_NOT_FOUND = 0100BH;
- HMERR_INVALID_HELPSUBITEM_SIZE = 0100CH;
- HMERR_HELPSUBITEM_NOT_FOUND = 0100DH;
- HMERR_INDEX_NOT_FOUND = 02001H;
- HMERR_CONTENT_NOT_FOUND = 02002H;
- HMERR_OPEN_LIB_FILE = 02003H;
- HMERR_READ_LIB_FILE = 02004H;
- HMERR_CLOSE_LIB_FILE = 02005H;
- HMERR_INVALID_LIB_FILE = 02006H;
- HMERR_NO_MEMORY = 02007H;
- HMERR_ALLOCATE_SEGMENT = 02008H;
- HMERR_FREE_MEMORY = 02009H;
- HMERR_PANEL_NOT_FOUND = 02010H;
- HMERR_DATABASE_NOT_OPEN = 02011H;
- (*%E*)
- (**)
- (**--- Win Load procedure ---------------------------------------------------*)
- (**)
- (*%T i_WINLOAD*)
- TYPE
- HLIB = HMODULE;
- PROCEDURE DeleteProcedure(h:HAB; wndproc: FarADDRESS): BOOLEAN;
- PROCEDURE DeleteLibrary(h:HAB; libhandle: HLIB): BOOLEAN;
- PROCEDURE LoadProcedure(h:HAB; libhandle: HLIB; VAR procname: ARRAY OF CHAR): FarADDRESS;
- PROCEDURE LoadLibrary(h:HAB; VAR libname: ARRAY OF CHAR): HLIB;
- (*%E*)
- (**)
- (**--- Win DBCS Structure ---------------------------------------------------*)
- (**)
- (*%T i_NLS*)
- CONST
- WM_DBCSFIRST = 0B0H;
- WM_DBCSLAST = 0CFH;
- WC_APPSTAT = FarADDRESS(0FFFF0010H);
- WC_KBDSTAT = FarADDRESS(0FFFF0011H);
- WC_PECIC = FarADDRESS(0FFFF0012H);
- WC_DBE_KKPOPUP = FarADDRESS(0FFFF0013H);
- (*%E *)
- END Win.
|