WINDOWS.DEF 97 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * WINDOWS.DEF - Modula-2 Windows 3.0 API *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# module(implementation=>off, init_code => off) *)
  11. (*# call(result_optional=>on,opt_var_arg=>off,o_a_copy=>off,o_a_size=>off) *)
  12. DEFINITION MODULE Windows;
  13. (*# save *) (* inline procedures at end use standard model-dependent settings *)
  14. (*# call(near_call=>off, reg_param=>(),
  15. reg_saved=>(ds,si,di,st1,st2),
  16. seg_name=>Windows, ds_eq_ss=>off) *)
  17. (*# data(near_ptr=>off) *)
  18. (*# name(prefix=>windows) *)
  19. CONST
  20. NULL = 0;
  21. True = 1;
  22. False = 0;
  23. TYPE
  24. BOOL = INTEGER;
  25. LPSTR = POINTER TO ARRAY[0..MAX(CARDINAL)-1] OF CHAR;
  26. LPBYTE = POINTER TO SHORTCARD;
  27. LPINT = POINTER TO INTEGER;
  28. LPWORD = POINTER TO CARDINAL;
  29. LPLONG = POINTER TO LONGINT;
  30. LPDWORD = POINTER TO LONGCARD;
  31. LPVOID = ADDRESS;
  32. HANDLE = CARDINAL;
  33. HWND = CARDINAL;
  34. LPHANDLE = POINTER TO CARDINAL;
  35. GLOBALHANDLE = CARDINAL;
  36. LOCALHANDLE = CARDINAL;
  37. FARPROC = PROCEDURE () : INTEGER;
  38. HSTR = HANDLE;
  39. HICON = HANDLE;
  40. HDC = HANDLE;
  41. HMENU = HANDLE;
  42. HPEN = HANDLE;
  43. HFONT = HANDLE;
  44. HBRUSH = HANDLE;
  45. HBITMAP = HANDLE;
  46. HCURSOR = HANDLE;
  47. HRGN = HANDLE;
  48. HPALETTE = HANDLE;
  49. COLORREF = LONGCARD;
  50. RECT = RECORD
  51. left : INTEGER;
  52. top : INTEGER;
  53. right : INTEGER;
  54. bottom : INTEGER;
  55. END;
  56. LPRECT = POINTER TO RECT;
  57. POINT = RECORD
  58. x : INTEGER;
  59. y : INTEGER;
  60. END;
  61. LPPOINT = POINTER TO POINT;
  62. TYPE
  63. MAKEINTRESOURCE = LPSTR;
  64. MAKEINTATOM = LPSTR;
  65. PROCEDURE EntryPoint(); (* This is the entry point for a *)
  66. (* windows main module *)
  67. PROCEDURE GetVersion() : LONGCARD;
  68. PROCEDURE GetNumTasks() : CARDINAL;
  69. PROCEDURE GetCodeHandle(_:FARPROC) : HANDLE;
  70. PROCEDURE GetCodeInfo(lpProc : FARPROC; lpSegInfo : ADDRESS);
  71. PROCEDURE GetModuleHandle(_:ARRAY OF CHAR) : HANDLE;
  72. PROCEDURE GetModuleUsage(_:HANDLE) : INTEGER;
  73. PROCEDURE GetModuleFileName(_:HANDLE; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  74. PROCEDURE GetInstanceData(_:HANDLE; _:NearADDRESS; _:INTEGER) : INTEGER;
  75. PROCEDURE GetProcAddress(_:HANDLE; _:ARRAY OF CHAR) : FARPROC;
  76. PROCEDURE MakeProcInstance(_:FARPROC; _:HANDLE) : FARPROC;
  77. PROCEDURE FreeProcInstance(_:FARPROC);
  78. PROCEDURE LoadLibrary(_:ARRAY OF CHAR) : HANDLE;
  79. PROCEDURE LoadModule(_:ARRAY OF CHAR; _:ADDRESS) : HANDLE;
  80. PROCEDURE FreeModule(_:HANDLE) : BOOL;
  81. PROCEDURE FreeLibrary(_:HANDLE);
  82. PROCEDURE GetFreeSpace(_:CARDINAL) : LONGCARD;
  83. PROCEDURE WinExec(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL;
  84. PROCEDURE DebugBreak();
  85. PROCEDURE OutputDebugString(_:ARRAY OF CHAR);
  86. PROCEDURE SwitchStackBack();
  87. PROCEDURE SwitchStackTo(_:CARDINAL; _:CARDINAL; _:CARDINAL);
  88. PROCEDURE GetCurrentPDB() : CARDINAL;
  89. TYPE
  90. OFSTRUCT = RECORD
  91. cBytes : SHORTCARD;
  92. fFixedDisk : SHORTCARD;
  93. nErrCode : CARDINAL;
  94. reserved : ARRAY [0..3] OF SHORTCARD;
  95. szPathName : ARRAY [0..127] OF CHAR;
  96. END;
  97. LPOFSTRUCT = POINTER TO OFSTRUCT;
  98. CONST
  99. OF_READ = 00H;
  100. OF_WRITE = 01H;
  101. OF_READWRITE = 02H;
  102. OF_SHARE_COMPAT = 00H;
  103. OF_SHARE_EXCLUSIVE = 010H;
  104. OF_SHARE_DENY_WRITE = 020H;
  105. OF_SHARE_DENY_READ = 030H;
  106. OF_SHARE_DENY_NONE = 040H;
  107. OF_PARSE = 0100H;
  108. OF_DELETE = 0200H;
  109. OF_VERIFY = 0400H;
  110. OF_CANCEL = 0800H;
  111. OF_CREATE = 01000H;
  112. OF_PROMPT = 02000H;
  113. OF_EXIST = 04000H;
  114. OF_REOPEN = 08000H;
  115. PROCEDURE OpenFile(_:ARRAY OF CHAR; VAR _:OFSTRUCT; _:CARDINAL) : INTEGER;
  116. CONST
  117. TF_FORCEDRIVE = 080H;
  118. PROCEDURE GetTempDrive(_:SHORTCARD) : SHORTCARD;
  119. PROCEDURE GetTempFileName(_:SHORTCARD; _:ARRAY OF CHAR; _:CARDINAL; _:ARRAY OF CHAR) : INTEGER;
  120. PROCEDURE SetHandleCount(_:CARDINAL) : CARDINAL;
  121. PROCEDURE GetDriveType(_:INTEGER) : CARDINAL;
  122. CONST
  123. DRIVE_REMOVABLE = 2;
  124. DRIVE_FIXED = 3;
  125. DRIVE_REMOTE = 4;
  126. GMEM_FIXED = 00H;
  127. GMEM_MOVEABLE = 02H;
  128. GMEM_NOCOMPACT = 010H;
  129. GMEM_NODISCARD = 020H;
  130. GMEM_ZEROINIT = 040H;
  131. GMEM_MODIFY = 080H;
  132. GMEM_DISCARDABLE = 0100H;
  133. GMEM_NOT_BANKED = 01000H;
  134. GMEM_SHARE = 02000H;
  135. GMEM_DDESHARE = 02000H;
  136. GMEM_NOTIFY = 04000H;
  137. GMEM_LOWER = GMEM_NOT_BANKED;
  138. GHND = 042H; (* GMEM_MOVEABLE OR GMEM_ZEROINIT *)
  139. GPTR = 040H; (* GMEM_FIXED OR GMEM_ZEROINIT *)
  140. (* GlobalDiscard(x) ::= GlobalReAlloc(x, 0, GMEM_MOVEABLE) - see below *)
  141. PROCEDURE GlobalAlloc(_:CARDINAL; _:LONGCARD) : HANDLE;
  142. PROCEDURE GlobalCompact(_:LONGCARD) : LONGCARD;
  143. PROCEDURE GlobalFree(_:HANDLE) : HANDLE;
  144. PROCEDURE GlobalHandle(_:CARDINAL) : LONGCARD;
  145. PROCEDURE GlobalLock(_:HANDLE) : LPSTR;
  146. PROCEDURE GlobalReAlloc(_:HANDLE; _:LONGCARD; _:CARDINAL) : HANDLE;
  147. PROCEDURE GlobalSize(_:HANDLE) : LONGCARD;
  148. PROCEDURE GlobalUnlock(_:HANDLE) : BOOL;
  149. PROCEDURE GlobalFlags(_:HANDLE) : CARDINAL;
  150. PROCEDURE GlobalWire(_:HANDLE) : LPSTR;
  151. PROCEDURE GlobalUnWire(_:HANDLE) : BOOL;
  152. PROCEDURE GlobalLRUNewest(_:HANDLE) : HANDLE;
  153. PROCEDURE GlobalLRUOldest(_:HANDLE) : HANDLE;
  154. PROCEDURE GlobalNotify(_:FARPROC);
  155. PROCEDURE GlobalPageLock(_:HANDLE) : CARDINAL;
  156. PROCEDURE GlobalPageUnlock(_:HANDLE) : CARDINAL;
  157. PROCEDURE GlobalFix(_:HANDLE);
  158. PROCEDURE GlobalUnfix(_:HANDLE) : BOOL;
  159. CONST
  160. GMEM_DISCARDED = 04000H;
  161. GMEM_LOCKCOUNT = 0FFH;
  162. DataSegment = 0FFFFH;
  163. (* LockData ::= LockSegment(DataSegment) *)
  164. (* UnlockData ::= UnlockSegment(DataSegment) *)
  165. PROCEDURE LockSegment(_:CARDINAL) : HANDLE;
  166. PROCEDURE UnlockSegment(_:CARDINAL) : HANDLE;
  167. CONST
  168. LMEM_FIXED = 00H;
  169. LMEM_MOVEABLE = 02H;
  170. LMEM_NOCOMPACT = 010H;
  171. LMEM_NODISCARD = 020H;
  172. LMEM_ZEROINIT = 040H;
  173. LMEM_MODIFY = 080H;
  174. LMEM_DISCARDABLE = 0F00H;
  175. LHND = 042H; (* LMEM_MOVEABLE OR LMEM_ZEROINIT *)
  176. LPTR = 040H; (* LMEM_FIXED OR LMEM_ZEROINIT *)
  177. NONZEROLHND = LMEM_MOVEABLE;
  178. NONZEROLPTR = LMEM_FIXED;
  179. LNOTIFY_OUTOFMEM = 0;
  180. LNOTIFY_MOVE = 1;
  181. LNOTIFY_DISCARD = 2;
  182. VAR
  183. pLocalHeap : NearADDRESS;
  184. (* LocalDiscard(x) ::= LocalReAlloc(x, 0, LMEM_MOVEABLE) *)
  185. PROCEDURE LocalAlloc(_:CARDINAL; _:CARDINAL) : HANDLE;
  186. PROCEDURE LocalCompact(_:CARDINAL) : CARDINAL;
  187. PROCEDURE LocalFree(_:HANDLE) : HANDLE;
  188. PROCEDURE LocalHandle(_:CARDINAL) : HANDLE;
  189. PROCEDURE LocalInit(_:CARDINAL; _:CARDINAL; _:CARDINAL) : BOOL;
  190. PROCEDURE LocalLock(_:HANDLE) : NearADDRESS;
  191. PROCEDURE LocalNotify(_:FARPROC) : FARPROC;
  192. PROCEDURE LocalReAlloc(_:HANDLE; _:CARDINAL; _:CARDINAL) : HANDLE;
  193. PROCEDURE LocalSize(_:HANDLE) : CARDINAL;
  194. PROCEDURE LocalUnlock(_:HANDLE) : BOOL;
  195. PROCEDURE LocalFlags(_:HANDLE) : CARDINAL;
  196. PROCEDURE LocalShrink(_:HANDLE; _:CARDINAL) : CARDINAL;
  197. CONST
  198. LMEM_DISCARDED = 04000H;
  199. LMEM_LOCKCOUNT = 0FFH;
  200. PROCEDURE SetSwapAreaSize(_:CARDINAL) : LONGINT;
  201. PROCEDURE ValidateFreeSpaces() : LPSTR;
  202. PROCEDURE LimitEmsPages(_:LONGCARD);
  203. PROCEDURE SetErrorMode(_:CARDINAL) : BOOL;
  204. PROCEDURE ValidateCodeSegments();
  205. CONST
  206. UnlockResource ::= GlobalUnlock;
  207. PROCEDURE FindResource(_:HANDLE; _:ARRAY OF CHAR; _:FarADDRESS) : HANDLE;
  208. PROCEDURE LoadResource(_:HANDLE; _:HANDLE) : HANDLE;
  209. PROCEDURE FreeResource(_:HANDLE) : BOOL;
  210. PROCEDURE LockResource(_:HANDLE) : LPSTR;
  211. PROCEDURE SetResourceHandler(_:HANDLE; _:FarADDRESS; _:FARPROC) : FARPROC;
  212. PROCEDURE AllocResource(_:HANDLE; _:HANDLE; _:LONGCARD) : HANDLE;
  213. PROCEDURE SizeofResource(_:HANDLE; _:HANDLE) : CARDINAL;
  214. PROCEDURE AccessResource(_:HANDLE; _:HANDLE) : INTEGER;
  215. CONST
  216. DIFFERENCE = 11;
  217. RT_CURSOR = LPSTR(1);
  218. RT_BITMAP = LPSTR(2);
  219. RT_ICON = LPSTR(3);
  220. RT_MENU = LPSTR(4);
  221. RT_DIALOG = LPSTR(5);
  222. RT_STRING = LPSTR(6);
  223. RT_FONTDIR = LPSTR(7);
  224. RT_FONT = LPSTR(8);
  225. RT_ACCELERATOR = LPSTR(9);
  226. RT_RCDATA = LPSTR(10);
  227. RT_GROUP_CURSOR = LPSTR(12);
  228. RT_GROUP_ICON = LPSTR(14);
  229. PROCEDURE Yield();
  230. PROCEDURE GetCurrentTask() : HANDLE;
  231. TYPE
  232. ATOM = CARDINAL;
  233. PROCEDURE InitAtomTable(_:INTEGER) : BOOL;
  234. PROCEDURE AddAtom(_:ARRAY OF CHAR) : ATOM;
  235. PROCEDURE DeleteAtom(_:ATOM) : ATOM;
  236. PROCEDURE FindAtom(_:ARRAY OF CHAR) : ATOM;
  237. PROCEDURE GetAtomName(_:ATOM; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL;
  238. PROCEDURE GlobalAddAtom(_:ARRAY OF CHAR) : ATOM;
  239. PROCEDURE GlobalDeleteAtom(_:ATOM) : ATOM;
  240. PROCEDURE GlobalFindAtom(_:ARRAY OF CHAR) : ATOM;
  241. PROCEDURE GlobalGetAtomName(_:ATOM; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL;
  242. PROCEDURE GetAtomHandle(_:ATOM) : HANDLE;
  243. PROCEDURE GetProfileInt(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER) : CARDINAL;
  244. PROCEDURE GetProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  245. PROCEDURE WriteProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL;
  246. PROCEDURE GetPrivateProfileInt(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER; _:ARRAY OF CHAR) : CARDINAL;
  247. PROCEDURE GetPrivateProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER; _:ARRAY OF CHAR) : INTEGER;
  248. PROCEDURE WritePrivateProfileString(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL;
  249. PROCEDURE GetWindowsDirectory(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL;
  250. PROCEDURE GetSystemDirectory(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL;
  251. TYPE
  252. CATCHBUF = ARRAY [0..8] OF INTEGER;
  253. LPCATCHBUF = POINTER TO CATCHBUF;
  254. PROCEDURE Catch(VAR _:INTEGER) : INTEGER;
  255. PROCEDURE Throw(VAR _:INTEGER; _:INTEGER);
  256. PROCEDURE FatalExit(_:INTEGER);
  257. PROCEDURE SwapRecording(_:CARDINAL);
  258. PROCEDURE AnsiToOem(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : INTEGER;
  259. PROCEDURE OemToAnsi(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : BOOL;
  260. PROCEDURE AnsiToOemBuff(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER);
  261. PROCEDURE OemToAnsiBuff(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:INTEGER);
  262. PROCEDURE AnsiUpper(_:ARRAY OF CHAR) : LPSTR;
  263. PROCEDURE AnsiUpperBuff(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL;
  264. PROCEDURE AnsiLower(_:ARRAY OF CHAR) : LPSTR;
  265. PROCEDURE AnsiLowerBuff(_:ARRAY OF CHAR; _:CARDINAL) : CARDINAL;
  266. PROCEDURE AnsiNext(_:ARRAY OF CHAR) : LPSTR;
  267. PROCEDURE AnsiPrev(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : LPSTR;
  268. PROCEDURE OemKeyScan(_:CARDINAL) : LONGCARD;
  269. PROCEDURE VkKeyScan(_:CARDINAL) : CARDINAL;
  270. PROCEDURE GetKeyboardType(_:INTEGER) : INTEGER;
  271. PROCEDURE GetKBCodePage() : INTEGER;
  272. PROCEDURE GetKeyNameText(_:LONGINT; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  273. PROCEDURE ToAscii(wVirtKey : CARDINAL; wScanCode : CARDINAL; lpKeyState : ARRAY OF CHAR; lpChar : ADDRESS; wFlags : CARDINAL) : INTEGER;
  274. PROCEDURE IsCharAlpha(_:CHAR) : BOOL;
  275. PROCEDURE IsCharAlphaNumeric(_:CHAR) : BOOL;
  276. PROCEDURE IsCharUpper(_:CHAR) : BOOL;
  277. PROCEDURE IsCharLower(_:CHAR) : BOOL;
  278. PROCEDURE GetWinFlags() : LONGINT;
  279. CONST
  280. WF_PMODE = 01H;
  281. WF_CPU286 = 02H;
  282. WF_CPU386 = 04H;
  283. WF_CPU486 = 08H;
  284. WF_STANDARD = 010H;
  285. WF_WIN286 = 010H;
  286. WF_ENHANCED = 020H;
  287. WF_WIN386 = 020H;
  288. WF_CPU086 = 040H;
  289. WF_CPU186 = 080H;
  290. WF_LARGEFRAME = 0100H;
  291. WF_SMALLFRAME = 0200H;
  292. WF_80x87 = 0400H;
  293. WEP_SYSTEM_EXIT = 1;
  294. WEP_FREE_DLL = 0;
  295. R2_BLACK = 1;
  296. R2_NOTMERGEPEN = 2;
  297. R2_MASKNOTPEN = 3;
  298. R2_NOTCOPYPEN = 4;
  299. R2_MASKPENNOT = 5;
  300. R2_NOT = 6;
  301. R2_XORPEN = 7;
  302. R2_NOTMASKPEN = 8;
  303. R2_MASKPEN = 9;
  304. R2_NOTXORPEN = 10;
  305. R2_NOP = 11;
  306. R2_MERGENOTPEN = 12;
  307. R2_COPYPEN = 13;
  308. R2_MERGEPENNOT = 14;
  309. R2_MERGEPEN = 15;
  310. R2_WHITE = 16;
  311. SRCCOPY = 0CC0020H;
  312. SRCPAINT = 0EE0086H;
  313. SRCAND = 08800C6H;
  314. SRCINVERT = 0660046H;
  315. SRCERASE = 0440328H;
  316. NOTSRCCOPY = 0330008H;
  317. NOTSRCERASE = 01100A6H;
  318. MERGECOPY = 0C000CAH;
  319. MERGEPAINT = 0BB0226H;
  320. PATCOPY = 0F00021H;
  321. PATPAINT = 0FB0A09H;
  322. PATINVERT = 05A0049H;
  323. DSTINVERT = 0550009H;
  324. BLACKNESS = 042H;
  325. WHITENESS = 0FF0062H;
  326. BLACKONWHITE = 1;
  327. WHITEONBLACK = 2;
  328. COLORONCOLOR = 3;
  329. ALTERNATE = 1;
  330. WINDING = 2;
  331. TA_NOUPDATECP = 0;
  332. TA_UPDATECP = 1;
  333. TA_LEFT = 0;
  334. TA_RIGHT = 2;
  335. TA_CENTER = 6;
  336. TA_TOP = 0;
  337. TA_BOTTOM = 8;
  338. TA_BASELINE = 24;
  339. ETO_GRAYED = 1;
  340. ETO_OPAQUE = 2;
  341. ETO_CLIPPED = 4;
  342. ASPECT_FILTERING = 01H;
  343. META_SETBKCOLOR = 0201H;
  344. META_SETBKMODE = 0102H;
  345. META_SETMAPMODE = 0103H;
  346. META_SETROP2 = 0104H;
  347. META_SETRELABS = 0105H;
  348. META_SETPOLYFILLMODE = 0106H;
  349. META_SETSTRETCHBLTMODE = 0107H;
  350. META_SETTEXTCHAREXTRA = 0108H;
  351. META_SETTEXTCOLOR = 0209H;
  352. META_SETTEXTJUSTIFICATION = 020AH;
  353. META_SETWINDOWORG = 020BH;
  354. META_SETWINDOWEXT = 020CH;
  355. META_SETVIEWPORTORG = 020DH;
  356. META_SETVIEWPORTEXT = 020EH;
  357. META_OFFSETWINDOWORG = 020FH;
  358. META_SCALEWINDOWEXT = 0400H;
  359. META_OFFSETVIEWPORTORG = 0211H;
  360. META_SCALEVIEWPORTEXT = 0412H;
  361. META_LINETO = 0213H;
  362. META_MOVETO = 0214H;
  363. META_EXCLUDECLIPRECT = 0415H;
  364. META_INTERSECTCLIPRECT = 0416H;
  365. META_ARC = 0817H;
  366. META_ELLIPSE = 0418H;
  367. META_FLOODFILL = 0419H;
  368. META_PIE = 081AH;
  369. META_RECTANGLE = 041BH;
  370. META_ROUNDRECT = 061CH;
  371. META_PATBLT = 061DH;
  372. META_SAVEDC = 01EH;
  373. META_SETPIXEL = 041FH;
  374. META_OFFSETCLIPRGN = 0220H;
  375. META_TEXTOUT = 0521H;
  376. META_BITBLT = 0922H;
  377. META_STRETCHBLT = 0B23H;
  378. META_POLYGON = 0324H;
  379. META_POLYLINE = 0325H;
  380. META_ESCAPE = 0626H;
  381. META_RESTOREDC = 0127H;
  382. META_FILLREGION = 0228H;
  383. META_FRAMEREGION = 0429H;
  384. META_INVERTREGION = 012AH;
  385. META_PAINTREGION = 012BH;
  386. META_SELECTCLIPREGION = 012CH;
  387. META_SELECTOBJECT = 012DH;
  388. META_SETTEXTALIGN = 012EH;
  389. META_DRAWTEXT = 062FH;
  390. META_CHORD = 0830H;
  391. META_SETMAPPERFLAGS = 0231H;
  392. META_EXTTEXTOUT = 0A32H;
  393. META_SETDIBTODEV = 0D33H;
  394. META_SELECTPALETTE = 0234H;
  395. META_REALIZEPALETTE = 035H;
  396. META_ANIMATEPALETTE = 0436H;
  397. META_SETPALENTRIES = 037H;
  398. META_POLYPOLYGON = 0538H;
  399. META_RESIZEPALETTE = 0139H;
  400. META_DIBBITBLT = 0940H;
  401. META_DIBSTRETCHBLT = 0B41H;
  402. META_DIBCREATEPATTERNBRUSH= 0142H;
  403. META_STRETCHDIB = 0F43H;
  404. META_DELETEOBJECT = 01F0H;
  405. META_CREATEPALETTE = 0F7H;
  406. META_CREATEBRUSH = 0F8H;
  407. META_CREATEPATTERNBRUSH = 01F9H;
  408. META_CREATEPENINDIRECT = 02FAH;
  409. META_CREATEFONTINDIRECT = 02FBH;
  410. META_CREATEBRUSHINDIRECT = 02FCH;
  411. META_CREATEBITMAPINDIRECT = 02FDH;
  412. META_CREATEBITMAP = 06FEH;
  413. META_CREATEREGION = 06FFH;
  414. NEWFRAME = 1;
  415. ABORTDOC = 2;
  416. NEXTBAND = 3;
  417. SETCOLORTABLE = 4;
  418. GETCOLORTABLE = 5;
  419. FLUSHOUTPUT = 6;
  420. DRAFTMODE = 7;
  421. QUERYESCSUPPORT = 8;
  422. SETABORTPROC = 9;
  423. STARTDOC = 10;
  424. ENDDOC = 11;
  425. GETPHYSPAGESIZE = 12;
  426. GETPRINTINGOFFSET = 13;
  427. GETSCALINGFACTOR = 14;
  428. MFCOMMENT = 15;
  429. GETPENWIDTH = 16;
  430. SETCOPYCOUNT = 17;
  431. SELECTPAPERSOURCE = 18;
  432. DEVICEDATA = 19;
  433. PASSTHROUGH = 19;
  434. GETTECHNOLGY = 20;
  435. GETTECHNOLOGY = 20;
  436. SETENDCAP = 21;
  437. SETLINEJOIN = 22;
  438. SETMITERLIMIT = 23;
  439. BANDINFO = 24;
  440. DRAWPATTERNRECT = 25;
  441. GETVECTORPENSIZE = 26;
  442. GETVECTORBRUSHSIZE= 27;
  443. ENABLEDUPLEX = 28;
  444. GETSETPAPERBINS = 29;
  445. GETSETPRINTORIENT = 30;
  446. ENUMPAPERBINS = 31;
  447. SETDIBSCALING = 32;
  448. EPSPRINTING = 33;
  449. ENUMPAPERMETRICS = 34;
  450. GETSETPAPERMETRICS= 35;
  451. POSTSCRIPT_DATA = 37;
  452. POSTSCRIPT_IGNORE = 38;
  453. GETEXTENDEDTEXTMETRICS = 256;
  454. GETEXTENTTABLE = 257;
  455. GETPAIRKERNTABLE = 258;
  456. GETTRACKKERNTABLE = 259;
  457. EXTTEXTOUT = 512;
  458. ENABLERELATIVEWIDTHS = 768;
  459. ENABLEPAIRKERNING = 769;
  460. SETKERNTRACK = 770;
  461. SETALLJUSTVALUES = 771;
  462. SETCHARSET = 772;
  463. STRETCHBLT = 2048;
  464. BEGIN_PATH = 4096;
  465. CLIP_TO_PATH = 4097;
  466. END_PATH = 4098;
  467. EXT_DEVICE_CAPS = 4099;
  468. RESTORE_CTM = 4100;
  469. SAVE_CTM = 4101;
  470. SET_ARC_DIRECTION = 4102;
  471. SET_BACKGROUND_COLOR = 4103;
  472. SET_POLY_MODE = 4104;
  473. SET_SCREEN_ANGLE = 4105;
  474. SET_SPREAD = 4106;
  475. TRANSFORM_CTM = 4107;
  476. SET_CLIP_BOX = 4108;
  477. SET_BOUNDS = 4109;
  478. SP_NOTREPORTED = 04000H;
  479. SP_ERROR = -1;
  480. SP_APPABORT = -2;
  481. SP_USERABORT = -3;
  482. SP_OUTOFDISK = -4;
  483. SP_OUTOFMEMORY = -5;
  484. PR_JOBSTATUS = 00H;
  485. OBJ_PEN = 1;
  486. OBJ_BRUSH = 2;
  487. TYPE
  488. BITMAP = RECORD
  489. bmType : INTEGER;
  490. bmWidth : INTEGER;
  491. bmHeight : INTEGER;
  492. bmWidthBytes : INTEGER;
  493. bmPlanes : SHORTCARD;
  494. bmBitsPixel : SHORTCARD;
  495. bmBits : LPSTR;
  496. END;
  497. LPBITMAP = POINTER TO BITMAP;
  498. RGBTRIPLE = RECORD
  499. rgbtBlue : SHORTCARD;
  500. rgbtGreen : SHORTCARD;
  501. rgbtRed : SHORTCARD;
  502. END;
  503. RGBQUAD = RECORD
  504. rgbBlue : SHORTCARD;
  505. rgbGreen : SHORTCARD;
  506. rgbRed : SHORTCARD;
  507. rgbReserved : SHORTCARD;
  508. END;
  509. BITMAPCOREHEADER = RECORD
  510. bcSize : LONGCARD;
  511. bcWidth : CARDINAL;
  512. bcHeight : CARDINAL;
  513. bcPlanes : CARDINAL;
  514. bcBitCount : CARDINAL;
  515. END;
  516. LPBITMAPCOREHEADER = POINTER TO BITMAPCOREHEADER;
  517. BITMAPINFOHEADER = RECORD
  518. biSize : LONGCARD;
  519. biWidth : LONGCARD;
  520. biHeight : LONGCARD;
  521. biPlanes : CARDINAL;
  522. biBitCount : CARDINAL;
  523. biCompression : LONGCARD;
  524. biSizeImage : LONGCARD;
  525. biXPelsPerMeter : LONGCARD;
  526. biYPelsPerMeter : LONGCARD;
  527. biClrUsed : LONGCARD;
  528. biClrImportant : LONGCARD;
  529. END;
  530. LPBITMAPINFOHEADER = POINTER TO BITMAPINFOHEADER;
  531. CONST
  532. BI_RGB = 0;
  533. BI_RLE8 = 1;
  534. BI_RLE4 = 2;
  535. TYPE
  536. BITMAPINFO = RECORD
  537. bmiHeader : BITMAPINFOHEADER;
  538. bmiColors : ARRAY [0..0] OF RGBQUAD;
  539. END;
  540. LPBITMAPINFO = POINTER TO BITMAPINFO;
  541. BITMAPCOREINFO = RECORD
  542. bmciHeader : BITMAPCOREHEADER;
  543. bmciColors : ARRAY [0..0] OF RGBTRIPLE;
  544. END;
  545. LPBITMAPCOREINFO = POINTER TO BITMAPCOREINFO;
  546. BITMAPFILEHEADER = RECORD
  547. bfType : CARDINAL;
  548. bfSize : LONGCARD;
  549. bfReserved1 : CARDINAL;
  550. bfReserved2 : CARDINAL;
  551. bfOffBits : LONGCARD;
  552. END;
  553. LPBITMAPFILEHEADER = POINTER TO BITMAPFILEHEADER;
  554. TYPE
  555. HANDLETABLE = RECORD
  556. objectHandle : ARRAY [0..0] OF CARDINAL;
  557. END;
  558. LPHANDLETABLE = POINTER TO HANDLETABLE;
  559. METARECORD = RECORD
  560. rdSize : LONGCARD;
  561. rdFunction : CARDINAL;
  562. rdParm : ARRAY [0..0] OF CARDINAL;
  563. END;
  564. LPMETARECORD = POINTER TO METARECORD;
  565. METAFILEPICT = RECORD
  566. mm : INTEGER;
  567. xExt : INTEGER;
  568. yExt : INTEGER;
  569. hMF : HANDLE;
  570. END;
  571. LPMETAFILEPICT = POINTER TO METAFILEPICT;
  572. METAHEADER = RECORD
  573. mtType : CARDINAL;
  574. mtHeaderSize : CARDINAL;
  575. mtVersion : CARDINAL;
  576. mtSize : LONGCARD;
  577. mtNoObjects : CARDINAL;
  578. mtMaxRecord : LONGCARD;
  579. mtNoParameters : CARDINAL;
  580. END;
  581. TEXTMETRIC = RECORD
  582. tmHeight : CARDINAL;
  583. tmAscent : CARDINAL;
  584. tmDescent : CARDINAL;
  585. tmInternalLeading : CARDINAL;
  586. tmExternalLeading : CARDINAL;
  587. tmAveCharWidth : CARDINAL;
  588. tmMaxCharWidth : CARDINAL;
  589. tmWeight : CARDINAL;
  590. tmItalic : SHORTCARD;
  591. tmUnderlined : SHORTCARD;
  592. tmStruckOut : SHORTCARD;
  593. tmFirstChar : CHAR;
  594. tmLastChar : CHAR;
  595. tmDefaultChar : CHAR;
  596. tmBreakChar : CHAR;
  597. tmPitchAndFamily : SHORTCARD;
  598. tmCharSet : SHORTCARD;
  599. tmOverhang : INTEGER;
  600. tmDigitizedAspectX : INTEGER;
  601. tmDigitizedAspectY : INTEGER;
  602. END;
  603. LPTEXTMETRIC = POINTER TO TEXTMETRIC;
  604. PELARRAY = RECORD
  605. paXCount : INTEGER;
  606. paYCount : INTEGER;
  607. paXExt : INTEGER;
  608. paYExt : INTEGER;
  609. paRGBs : SHORTCARD;
  610. END;
  611. LPPELARRAY = POINTER TO PELARRAY;
  612. LOGBRUSH = RECORD
  613. lbStyle : CARDINAL;
  614. lbColor : LONGCARD;
  615. lbHatch : INTEGER;
  616. END;
  617. LPLOGBRUSH = POINTER TO LOGBRUSH;
  618. PATTERN = LOGBRUSH;
  619. LPPATTERN = POINTER TO LOGBRUSH;
  620. LOGPEN = RECORD
  621. lopnStyle : CARDINAL;
  622. lopnWidth : POINT;
  623. lopnColor : LONGCARD;
  624. END;
  625. LPLOGPEN = POINTER TO LOGPEN;
  626. PALETTEENTRY = RECORD
  627. peRed : SHORTCARD;
  628. peGreen : SHORTCARD;
  629. peBlue : SHORTCARD;
  630. peFlags : SHORTCARD;
  631. END;
  632. LPPALETTEENTRY = POINTER TO PALETTEENTRY;
  633. LOGPALETTE = RECORD
  634. palVersion : CARDINAL;
  635. palNumEntries : CARDINAL;
  636. palPalEntry : ARRAY [0..0] OF PALETTEENTRY;
  637. END;
  638. LPLOGPALETTE = POINTER TO LOGPALETTE;
  639. CONST
  640. LF_FACESIZE = 32;
  641. TYPE
  642. LOGFONT = RECORD
  643. lfHeight : INTEGER;
  644. lfWidth : INTEGER;
  645. lfEscapement : INTEGER;
  646. lfOrientation : INTEGER;
  647. lfWeight : INTEGER;
  648. lfItalic : SHORTCARD;
  649. lfUnderline : SHORTCARD;
  650. lfStrikeOut : SHORTCARD;
  651. lfCharSet : SHORTCARD;
  652. lfOutPrecision : SHORTCARD;
  653. lfClipPrecision : SHORTCARD;
  654. lfQuality : SHORTCARD;
  655. lfPitchAndFamily : SHORTCARD;
  656. lfFaceName : ARRAY [0..31] OF CHAR;
  657. END;
  658. LPLOGFONT = POINTER TO LOGFONT;
  659. CONST
  660. OUT_DEFAULT_PRECIS = 0;
  661. OUT_STRING_PRECIS = 1;
  662. OUT_CHARACTER_PRECIS = 2;
  663. OUT_STROKE_PRECIS = 3;
  664. CLIP_DEFAULT_PRECIS = 0;
  665. CLIP_CHARACTER_PRECIS = 1;
  666. CLIP_STROKE_PRECIS = 2;
  667. DEFAULT_QUALITY = 0;
  668. DRAFT_QUALITY = 1;
  669. PROOF_QUALITY = 2;
  670. DEFAULT_PITCH = 0;
  671. FIXED_PITCH = 1;
  672. VARIABLE_PITCH = 2;
  673. ANSI_CHARSET = 0;
  674. SYMBOL_CHARSET = 2;
  675. SHIFTJIS_CHARSET = 128;
  676. OEM_CHARSET = 255;
  677. FF_DONTCARE = (0<<4);
  678. FF_ROMAN = (1<<4);
  679. FF_SWISS = (2<<4);
  680. FF_MODERN = (3<<4);
  681. FF_SCRIPT = (4<<4);
  682. FF_DECORATIVE = (5<<4);
  683. CONST
  684. FW_DONTCARE = 0;
  685. FW_THIN = 100;
  686. FW_EXTRALIGHT = 200;
  687. FW_LIGHT = 300;
  688. FW_NORMAL = 400;
  689. FW_MEDIUM = 500;
  690. FW_SEMIBOLD = 600;
  691. FW_BOLD = 700;
  692. FW_EXTRABOLD = 800;
  693. FW_HEAVY = 900;
  694. FW_ULTRALIGHT = FW_EXTRALIGHT;
  695. FW_REGULAR = FW_NORMAL;
  696. FW_DEMIBOLD = FW_SEMIBOLD;
  697. FW_ULTRABOLD = FW_EXTRABOLD;
  698. FW_BLACK = FW_HEAVY;
  699. CONST
  700. RASTER_FONTTYPE = 01H;
  701. DEVICE_FONTTYPE = 02H;
  702. CONST
  703. TRANSPARENT = 1;
  704. OPAQUE = 2;
  705. MM_TEXT = 1;
  706. MM_LOMETRIC = 2;
  707. MM_HIMETRIC = 3;
  708. MM_LOENGLISH = 4;
  709. MM_HIENGLISH = 5;
  710. MM_TWIPS = 6;
  711. MM_ISOTROPIC = 7;
  712. MM_ANISOTROPIC = 8;
  713. ABSOLUTE = 1;
  714. RELATIVE = 2;
  715. WHITE_BRUSH = 0;
  716. LTGRAY_BRUSH = 1;
  717. GRAY_BRUSH = 2;
  718. DKGRAY_BRUSH = 3;
  719. BLACK_BRUSH = 4;
  720. NULL_BRUSH = 5;
  721. HOLLOW_BRUSH = NULL_BRUSH;
  722. CONST
  723. WHITE_PEN = 6;
  724. BLACK_PEN = 7;
  725. NULL_PEN = 8;
  726. OEM_FIXED_FONT = 10;
  727. ANSI_FIXED_FONT = 11;
  728. ANSI_VAR_FONT = 12;
  729. SYSTEM_FONT = 13;
  730. DEVICE_DEFAULT_FONT = 14;
  731. DEFAULT_PALETTE = 15;
  732. SYSTEM_FIXED_FONT = 16;
  733. BS_SOLID = 0;
  734. BS_NULL = 1;
  735. BS_HOLLOW = BS_NULL;
  736. BS_HATCHED = 2;
  737. BS_PATTERN = 3;
  738. BS_INDEXED = 4;
  739. BS_DIBPATTERN = 5;
  740. HS_HORIZONTAL = 0;
  741. HS_VERTICAL = 1;
  742. HS_FDIAGONAL = 2;
  743. HS_BDIAGONAL = 3;
  744. HS_CROSS = 4;
  745. HS_DIAGCROSS = 5;
  746. PS_SOLID = 0;
  747. PS_DASH = 1;
  748. PS_DOT = 2;
  749. PS_DASHDOT = 3;
  750. PS_DASHDOTDOT = 4;
  751. PS_NULL = 5;
  752. PS_INSIDEFRAME = 6;
  753. DRIVERVERSION = 0;
  754. TECHNOLOGY = 2;
  755. HORZSIZE = 4;
  756. VERTSIZE = 6;
  757. HORZRES = 8;
  758. VERTRES = 10;
  759. BITSPIXEL = 12;
  760. PLANES = 14;
  761. NUMBRUSHES = 16;
  762. NUMPENS = 18;
  763. NUMMARKERS = 20;
  764. NUMFONTS = 22;
  765. NUMCOLORS = 24;
  766. PDEVICESIZE = 26;
  767. CURVECAPS = 28;
  768. LINECAPS = 30;
  769. POLYGONALCAPS = 32;
  770. TEXTCAPS = 34;
  771. CLIPCAPS = 36;
  772. RASTERCAPS = 38;
  773. ASPECTX = 40;
  774. ASPECTY = 42;
  775. ASPECTXY = 44;
  776. LOGPIXELSX = 88;
  777. LOGPIXELSY = 90;
  778. SIZEPALETTE = 104;
  779. NUMRESERVED = 106;
  780. COLORRES = 108;
  781. DT_PLOTTER = 0;
  782. DT_RASDISPLAY = 1;
  783. DT_RASPRINTER = 2;
  784. DT_RASCAMERA = 3;
  785. DT_CHARSTREAM = 4;
  786. DT_METAFILE = 5;
  787. DT_DISPFILE = 6;
  788. CC_NONE = 0;
  789. CC_CIRCLES = 1;
  790. CC_PIE = 2;
  791. CC_CHORD = 4;
  792. CC_ELLIPSES = 8;
  793. CC_WIDE = 16;
  794. CC_STYLED = 32;
  795. CC_WIDESTYLED = 64;
  796. CC_INTERIORS = 128;
  797. LC_NONE = 0;
  798. LC_POLYLINE = 2;
  799. LC_MARKER = 4;
  800. LC_POLYMARKER = 8;
  801. LC_WIDE = 16;
  802. LC_STYLED = 32;
  803. LC_WIDESTYLED = 64;
  804. LC_INTERIORS = 128;
  805. PC_NONE = 0;
  806. PC_POLYGON = 1;
  807. PC_RECTANGLE = 2;
  808. PC_WINDPOLYGON = 4;
  809. PC_TRAPEZOID = 4;
  810. PC_SCANLINE = 8;
  811. PC_WIDE = 16;
  812. PC_STYLED = 32;
  813. PC_WIDESTYLED = 64;
  814. PC_INTERIORS = 128;
  815. CP_NONE = 0;
  816. CP_RECTANGLE = 1;
  817. TC_OP_CHARACTER = 01H;
  818. TC_OP_STROKE = 02H;
  819. TC_CP_STROKE = 04H;
  820. TC_CR_90 = 08H;
  821. TC_CR_ANY = 010H;
  822. TC_SF_X_YINDEP = 020H;
  823. TC_SA_DOUBLE = 040H;
  824. TC_SA_INTEGER = 080H;
  825. TC_SA_CONTIN = 0100H;
  826. TC_EA_DOUBLE = 0200H;
  827. TC_IA_ABLE = 0400H;
  828. TC_UA_ABLE = 0800H;
  829. TC_SO_ABLE = 01000H;
  830. TC_RA_ABLE = 02000H;
  831. TC_VA_ABLE = 04000H;
  832. TC_RESERVED = 08000H;
  833. RC_BITBLT = 0;
  834. RC_BANDING = 1;
  835. RC_SCALING = 2;
  836. RC_BITMAP64 = 3;
  837. RC_GDI20_OUTPUT = 4;
  838. RC_DI_BITMAP = 7;
  839. RC_PALETTE = 8;
  840. RC_DIBTODEV = 9;
  841. RC_BIGFONT = 10;
  842. RC_STRETCHBLT = 11;
  843. RC_FLOODFILL = 12;
  844. RC_STRETCHDIB = 13;
  845. (*
  846. RC_BITBLT = 1;
  847. RC_BANDING = 2;
  848. RC_SCALING = 4;
  849. RC_BITMAP64 = 8;
  850. RC_GDI20_OUTPUT = 010H;
  851. RC_DI_BITMAP = 080H;
  852. RC_PALETTE = 0100H;
  853. RC_DIBTODEV = 0200H;
  854. RC_BIGFONT = 0400H;
  855. RC_STRETCHBLT = 0800H;
  856. RC_FLOODFILL = 01000H;
  857. RC_STRETCHDIB = 02000H;
  858. *)
  859. PC_RESERVED = 01H;
  860. PC_EXPLICIT = 02H;
  861. PC_NOCOLLAPSE = 04H;
  862. DIB_RGB_COLORS = 0;
  863. DIB_PAL_COLORS = 1;
  864. SYSPAL_STATIC = 1;
  865. SYSPAL_NOSTATIC = 2;
  866. CBM_INIT = 04H;
  867. DT_TOP = 00H;
  868. DT_LEFT = 00H;
  869. DT_CENTER = 01H;
  870. DT_RIGHT = 02H;
  871. DT_VCENTER = 04H;
  872. DT_BOTTOM = 08H;
  873. DT_WORDBREAK = 010H;
  874. DT_SINGLELINE = 020H;
  875. DT_EXPANDTABS = 040H;
  876. DT_TABSTOP = 080H;
  877. DT_NOCLIP = 0100H;
  878. DT_EXTERNALLEADING = 0200H;
  879. DT_CALCRECT = 0400H;
  880. DT_NOPREFIX = 0800H;
  881. DT_INTERNAL = 01000H;
  882. PROCEDURE DrawText(_:HDC; _:ARRAY OF CHAR; _:INTEGER; VAR _:RECT; _:CARDINAL) : INTEGER;
  883. PROCEDURE DrawIcon(_:HDC; _:INTEGER; _:INTEGER; _:HICON) : BOOL;
  884. CONST
  885. FLOODFILLBORDER = 0;
  886. FLOODFILLSURFACE = 1;
  887. PROCEDURE GetWindowDC(_:HWND) : HDC;
  888. PROCEDURE GetDC(_:HWND) : HDC;
  889. PROCEDURE ReleaseDC(_:HWND; _:HDC) : INTEGER;
  890. PROCEDURE CreateDC(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HDC;
  891. PROCEDURE CreateIC(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HDC;
  892. PROCEDURE CreateCompatibleDC(_:HDC) : HDC;
  893. PROCEDURE DeleteDC(_:HDC) : BOOL;
  894. PROCEDURE SaveDC(_:HDC) : INTEGER;
  895. PROCEDURE RestoreDC(_:HDC; _:INTEGER) : BOOL;
  896. PROCEDURE MoveTo(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  897. PROCEDURE GetCurrentPosition(_:HDC) : LONGCARD;
  898. PROCEDURE LineTo(_:HDC; _:INTEGER; _:INTEGER) : BOOL;
  899. PROCEDURE GetDCOrg(_:HDC) : LONGCARD;
  900. PROCEDURE MulDiv(_:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  901. PROCEDURE ExtTextOut(_:HDC; _:INTEGER; _:INTEGER; _:CARDINAL; VAR _:RECT; _:ARRAY OF CHAR; _:CARDINAL; VAR _:INTEGER) : BOOL;
  902. PROCEDURE Polyline(_:HDC; VAR _:POINT; _:INTEGER) : BOOL;
  903. PROCEDURE Polygon(_:HDC; VAR _:POINT; _:INTEGER) : BOOL;
  904. PROCEDURE PolyPolygon(_:HDC; VAR _:POINT; VAR _:INTEGER; _:INTEGER) : BOOL;
  905. PROCEDURE Rectangle(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  906. PROCEDURE RoundRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  907. PROCEDURE Ellipse(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  908. PROCEDURE Arc(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  909. PROCEDURE Chord(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  910. PROCEDURE Pie(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  911. PROCEDURE PatBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL;
  912. PROCEDURE BitBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL;
  913. PROCEDURE StretchBlt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL;
  914. PROCEDURE TextOut(_:HDC; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : BOOL;
  915. PROCEDURE TabbedTextOut(_:HDC; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; VAR _:INTEGER; _:INTEGER) : LONGINT;
  916. PROCEDURE GetCharWidth(_:HDC; _:CARDINAL; _:CARDINAL; VAR _:ARRAY OF CARDINAL) : BOOL;
  917. PROCEDURE SetPixel(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : LONGCARD;
  918. PROCEDURE GetPixel(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  919. PROCEDURE FloodFill(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD) : BOOL;
  920. PROCEDURE ExtFloodFill(_:HDC; _:INTEGER; _:INTEGER; _:LONGCARD; _:CARDINAL) : BOOL;
  921. PROCEDURE LineDDA(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:FARPROC; _:ARRAY OF CHAR);
  922. PROCEDURE GetStockObject(_:INTEGER) : HANDLE;
  923. PROCEDURE CreatePen(_:INTEGER; _:INTEGER; _:LONGCARD) : HPEN;
  924. PROCEDURE CreatePenIndirect(VAR _:LOGPEN) : HPEN;
  925. PROCEDURE CreateSolidBrush(_:LONGCARD) : HBRUSH;
  926. PROCEDURE CreateHatchBrush(_:INTEGER; _:LONGCARD) : HBRUSH;
  927. PROCEDURE SetBrushOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  928. PROCEDURE GetBrushOrg(_:HDC) : LONGCARD;
  929. PROCEDURE CreatePatternBrush(_:HBITMAP) : HBRUSH;
  930. PROCEDURE CreateBrushIndirect(VAR _:LOGBRUSH) : HBRUSH;
  931. PROCEDURE CreateBitmap(_:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR) : HBITMAP;
  932. PROCEDURE CreateBitmapIndirect(VAR _:BITMAP) : HBITMAP;
  933. PROCEDURE CreateCompatibleBitmap(_:HDC; _:INTEGER; _:INTEGER) : HBITMAP;
  934. PROCEDURE CreateDiscardableBitmap(_:HDC; _:INTEGER; _:INTEGER) : HBITMAP;
  935. PROCEDURE SetBitmapBits(_:HBITMAP; _:LONGCARD; _:ARRAY OF CHAR) : LONGINT;
  936. PROCEDURE GetBitmapBits(_:HBITMAP; _:LONGINT; _:ARRAY OF CHAR) : LONGINT;
  937. PROCEDURE SetBitmapDimension(_:HBITMAP; _:INTEGER; _:INTEGER) : LONGCARD;
  938. PROCEDURE GetBitmapDimension(_:HBITMAP) : LONGCARD;
  939. PROCEDURE CreateFont(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR) : HFONT;
  940. PROCEDURE CreateFontIndirect(VAR _:LOGFONT) : HFONT;
  941. PROCEDURE SelectClipRgn(_:HDC; _:HRGN) : INTEGER;
  942. PROCEDURE CreateRectRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN;
  943. PROCEDURE SetRectRgn(_:HRGN; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER);
  944. PROCEDURE CreateRectRgnIndirect(VAR _:RECT) : HRGN;
  945. PROCEDURE CreateEllipticRgnIndirect(VAR _:RECT) : HRGN;
  946. PROCEDURE CreateEllipticRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN;
  947. PROCEDURE CreatePolygonRgn(VAR _:POINT; _:INTEGER; _:INTEGER) : HRGN;
  948. PROCEDURE CreatePolyPolygonRgn(VAR _:POINT; VAR _:INTEGER; _:INTEGER; _:INTEGER) : HRGN;
  949. PROCEDURE CreateRoundRectRgn(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : HRGN;
  950. PROCEDURE GetObject(_:HANDLE; _:INTEGER; _:ARRAY OF BYTE) : INTEGER;
  951. PROCEDURE DeleteObject(_:HANDLE) : BOOL;
  952. PROCEDURE SelectObject(_:HDC; _:HANDLE) : HANDLE;
  953. PROCEDURE UnrealizeObject(_:HBRUSH) : BOOL;
  954. PROCEDURE SetBkColor(_:HDC; _:LONGCARD) : LONGCARD;
  955. PROCEDURE GetBkColor(_:HDC) : LONGCARD;
  956. PROCEDURE SetBkMode(_:HDC; _:INTEGER) : INTEGER;
  957. PROCEDURE GetBkMode(_:HDC) : INTEGER;
  958. PROCEDURE SetTextColor(_:HDC; _:LONGCARD) : LONGCARD;
  959. PROCEDURE GetTextColor(_:HDC) : LONGCARD;
  960. PROCEDURE SetTextAlign(_:HDC; _:CARDINAL) : CARDINAL;
  961. PROCEDURE GetTextAlign(_:HDC) : CARDINAL;
  962. PROCEDURE SetMapperFlags(_:HDC; _:LONGCARD) : LONGCARD;
  963. PROCEDURE GetAspectRatioFilter(_:HDC) : LONGCARD;
  964. PROCEDURE GetNearestColor(_:HDC; _:LONGCARD) : LONGCARD;
  965. PROCEDURE SetROP2(_:HDC; _:INTEGER) : INTEGER;
  966. PROCEDURE GetROP2(_:HDC) : INTEGER;
  967. PROCEDURE SetStretchBltMode(_:HDC; _:INTEGER) : INTEGER;
  968. PROCEDURE GetStretchBltMode(_:HDC) : INTEGER;
  969. PROCEDURE SetPolyFillMode(_:HDC; _:INTEGER) : INTEGER;
  970. PROCEDURE GetPolyFillMode(_:HDC) : INTEGER;
  971. PROCEDURE SetMapMode(_:HDC; _:INTEGER) : INTEGER;
  972. PROCEDURE GetMapMode(_:HDC) : INTEGER;
  973. PROCEDURE SetWindowOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  974. PROCEDURE GetWindowOrg(_:HDC) : LONGCARD;
  975. PROCEDURE SetWindowExt(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  976. PROCEDURE GetWindowExt(_:HDC) : LONGCARD;
  977. PROCEDURE SetViewportOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  978. PROCEDURE GetViewportOrg(_:HDC) : LONGCARD;
  979. PROCEDURE SetViewportExt(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  980. PROCEDURE GetViewportExt(_:HDC) : LONGCARD;
  981. PROCEDURE OffsetViewportOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  982. PROCEDURE ScaleViewportExt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : LONGCARD;
  983. PROCEDURE OffsetWindowOrg(_:HDC; _:INTEGER; _:INTEGER) : LONGCARD;
  984. PROCEDURE ScaleWindowExt(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : LONGCARD;
  985. PROCEDURE GetClipBox(_:HDC; VAR _:RECT) : INTEGER;
  986. PROCEDURE IntersectClipRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  987. PROCEDURE OffsetClipRgn(_:HDC; _:INTEGER; _:INTEGER) : INTEGER;
  988. PROCEDURE ExcludeClipRect(_:HDC; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  989. PROCEDURE PtVisible(_:HDC; _:INTEGER; _:INTEGER) : BOOL;
  990. PROCEDURE CombineRgn(_:HRGN; _:HRGN; _:HRGN; _:INTEGER) : INTEGER;
  991. PROCEDURE EqualRgn(_:HRGN; _:HRGN) : BOOL;
  992. PROCEDURE OffsetRgn(_:HRGN; _:INTEGER; _:INTEGER) : INTEGER;
  993. PROCEDURE GetRgnBox(_:HRGN; VAR _:RECT) : INTEGER;
  994. PROCEDURE SetTextJustification(_:HDC; _:INTEGER; _:INTEGER) : INTEGER;
  995. PROCEDURE GetTextExtent(_:HDC; _:ARRAY OF CHAR; _:INTEGER) : LONGCARD;
  996. PROCEDURE GetTabbedTextExtent(_:HDC; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; VAR _:INTEGER) : LONGCARD;
  997. PROCEDURE SetTextCharacterExtra(_:HDC; _:INTEGER) : INTEGER;
  998. PROCEDURE GetTextCharacterExtra(_:HDC) : INTEGER;
  999. PROCEDURE GetMetaFile(_:ARRAY OF CHAR) : HANDLE;
  1000. PROCEDURE DeleteMetaFile(_:HANDLE) : BOOL;
  1001. PROCEDURE CopyMetaFile(_:HANDLE; _:ARRAY OF CHAR) : HANDLE;
  1002. PROCEDURE PlayMetaFileRecord(_:HDC; VAR _:HANDLETABLE; VAR _:METARECORD; _:CARDINAL);
  1003. PROCEDURE EnumMetaFile(_:HDC; _:HANDLE; _:FARPROC; VAR _:SHORTCARD) : BOOL;
  1004. PROCEDURE PlayMetaFile(_:HDC; _:HANDLE) : BOOL;
  1005. PROCEDURE Escape(_:HDC; _:INTEGER; _:INTEGER; _:FarADDRESS; _:FarADDRESS) : INTEGER;
  1006. PROCEDURE EnumFonts(_:HDC; _:ARRAY OF CHAR; _:FARPROC; _:ARRAY OF CHAR) : INTEGER;
  1007. PROCEDURE EnumObjects(_:HDC; _:INTEGER; _:FARPROC; _:ARRAY OF CHAR) : INTEGER;
  1008. PROCEDURE GetTextFace(_:HDC; _:INTEGER; _:ARRAY OF CHAR) : INTEGER;
  1009. PROCEDURE GetTextMetrics(_:HDC; VAR _:TEXTMETRIC) : BOOL;
  1010. PROCEDURE GetDeviceCaps(_:HDC; _:INTEGER) : INTEGER;
  1011. PROCEDURE SetEnvironment(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER;
  1012. PROCEDURE GetEnvironment(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER;
  1013. PROCEDURE DPtoLP(_:HDC; VAR _:POINT; _:INTEGER) : BOOL;
  1014. PROCEDURE LPtoDP(_:HDC; VAR _:POINT; _:INTEGER) : BOOL;
  1015. PROCEDURE CreateMetaFile(_:ARRAY OF CHAR) : HANDLE;
  1016. PROCEDURE CloseMetaFile(_:HANDLE) : HANDLE;
  1017. PROCEDURE GetMetaFileBits(_:HANDLE) : HANDLE;
  1018. PROCEDURE SetMetaFileBits(_:HANDLE) : HANDLE;
  1019. PROCEDURE SetDIBits(_:HDC; _:HANDLE; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER;
  1020. PROCEDURE GetDIBits(_:HDC; _:HANDLE; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER;
  1021. PROCEDURE SetDIBitsToDevice(_:HDC; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : INTEGER;
  1022. PROCEDURE CreateDIBitmap(_:HDC; VAR _:BITMAPINFOHEADER; _:LONGCARD; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL) : HBITMAP;
  1023. PROCEDURE CreateDIBPatternBrush(_:HANDLE; _:CARDINAL) : HBRUSH;
  1024. PROCEDURE StretchDIBits(_:HDC; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR; VAR _:BITMAPINFO; _:CARDINAL; _:LONGCARD) : INTEGER;
  1025. PROCEDURE CreatePalette(VAR _:LOGPALETTE) : HPALETTE;
  1026. PROCEDURE SelectPalette(_:HDC; _:HPALETTE; _:BOOL) : HPALETTE;
  1027. PROCEDURE RealizePalette(_:HDC) : CARDINAL;
  1028. PROCEDURE UpdateColors(_:HDC) : INTEGER;
  1029. PROCEDURE AnimatePalette(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY);
  1030. PROCEDURE SetPaletteEntries(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL;
  1031. PROCEDURE GetPaletteEntries(_:HPALETTE; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL;
  1032. PROCEDURE GetNearestPaletteIndex(_:HPALETTE; _:LONGCARD) : CARDINAL;
  1033. PROCEDURE ResizePalette(_:HPALETTE; _:CARDINAL) : BOOL;
  1034. PROCEDURE GetSystemPaletteEntries(_:HDC; _:CARDINAL; _:CARDINAL; VAR _:PALETTEENTRY) : CARDINAL;
  1035. PROCEDURE GetSystemPaletteUse(_:HDC; _:CARDINAL) : CARDINAL;
  1036. PROCEDURE SetSystemPaletteUse(_:HDC; _:CARDINAL) : CARDINAL;
  1037. PROCEDURE wvsprintf(_:ARRAY OF CHAR; _:ARRAY OF CHAR; _:ARRAY OF BYTE) : INTEGER;
  1038. (*# save, call(var_arg=>on, c_conv=>on, reg_param=>()),name(prefix=>c) *)
  1039. PROCEDURE wsprintf(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : INTEGER;
  1040. (*# restore *)
  1041. CONST
  1042. SB_HORZ = 0;
  1043. SB_VERT = 1;
  1044. SB_CTL = 2;
  1045. SB_BOTH = 3;
  1046. SB_LINEUP = 0;
  1047. SB_LINEDOWN = 1;
  1048. SB_PAGEUP = 2;
  1049. SB_PAGEDOWN = 3;
  1050. SB_THUMBPOSITION = 4;
  1051. SB_THUMBTRACK = 5;
  1052. SB_TOP = 6;
  1053. SB_BOTTOM = 7;
  1054. SB_ENDSCROLL = 8;
  1055. SW_HIDE = 0;
  1056. SW_SHOWNORMAL = 1;
  1057. SW_NORMAL = 1;
  1058. SW_SHOWMINIMIZED = 2;
  1059. SW_SHOWMAXIMIZED = 3;
  1060. SW_MAXIMIZE = 3;
  1061. SW_SHOWNOACTIVATE = 4;
  1062. SW_SHOW = 5;
  1063. SW_MINIMIZE = 6;
  1064. SW_SHOWMINNOACTIVE = 7;
  1065. SW_SHOWNA = 8;
  1066. SW_RESTORE = 9;
  1067. HIDE_WINDOW = 0;
  1068. SHOW_OPENWINDOW = 1;
  1069. SHOW_ICONWINDOW = 2;
  1070. SHOW_FULLSCREEN = 3;
  1071. SHOW_OPENNOACTIVATE= 4;
  1072. SW_PARENTCLOSING = 1;
  1073. SW_OTHERZOOM = 2;
  1074. SW_PARENTOPENING = 3;
  1075. SW_OTHERUNZOOM = 4;
  1076. ERROR = 0;
  1077. NULLREGION = 1;
  1078. SIMPLEREGION = 2;
  1079. COMPLEXREGION = 3;
  1080. RGN_AND = 1;
  1081. RGN_OR = 2;
  1082. RGN_XOR = 3;
  1083. RGN_DIFF = 4;
  1084. RGN_COPY = 5;
  1085. VK_LBUTTON = 01H;
  1086. VK_RBUTTON = 02H;
  1087. VK_CANCEL = 03H;
  1088. VK_MBUTTON = 04H;
  1089. VK_BACK = 08H;
  1090. VK_TAB = 09H;
  1091. VK_CLEAR = 0CH;
  1092. VK_RETURN = 0DH;
  1093. VK_SHIFT = 010H;
  1094. VK_CONTROL = 011H;
  1095. VK_MENU = 012H;
  1096. VK_PAUSE = 013H;
  1097. VK_CAPITAL = 014H;
  1098. VK_ESCAPE = 01BH;
  1099. VK_SPACE = 020H;
  1100. VK_PRIOR = 021H;
  1101. VK_NEXT = 022H;
  1102. VK_END = 023H;
  1103. VK_HOME = 024H;
  1104. VK_LEFT = 025H;
  1105. VK_UP = 026H;
  1106. VK_RIGHT = 027H;
  1107. VK_DOWN = 028H;
  1108. VK_SELECT = 029H;
  1109. VK_PRINT = 02AH;
  1110. VK_EXECUTE = 02BH;
  1111. VK_SNAPSHOT = 02CH;
  1112. VK_INSERT = 02DH;
  1113. VK_DELETE = 02EH;
  1114. VK_HELP = 02FH;
  1115. VK_NUMPAD0 = 060H;
  1116. VK_NUMPAD1 = 061H;
  1117. VK_NUMPAD2 = 062H;
  1118. VK_NUMPAD3 = 063H;
  1119. VK_NUMPAD4 = 064H;
  1120. VK_NUMPAD5 = 065H;
  1121. VK_NUMPAD6 = 066H;
  1122. VK_NUMPAD7 = 067H;
  1123. VK_NUMPAD8 = 068H;
  1124. VK_NUMPAD9 = 069H;
  1125. VK_MULTIPLY = 06AH;
  1126. VK_ADD = 06BH;
  1127. VK_SEPARATOR = 06CH;
  1128. VK_SUBTRACT = 06DH;
  1129. VK_DECIMAL = 06EH;
  1130. VK_DIVIDE = 06FH;
  1131. VK_F1 = 070H;
  1132. VK_F2 = 071H;
  1133. VK_F3 = 072H;
  1134. VK_F4 = 073H;
  1135. VK_F5 = 074H;
  1136. VK_F6 = 075H;
  1137. VK_F7 = 076H;
  1138. VK_F8 = 077H;
  1139. VK_F9 = 078H;
  1140. VK_F10 = 079H;
  1141. VK_F11 = 07AH;
  1142. VK_F12 = 07BH;
  1143. VK_F13 = 07CH;
  1144. VK_F14 = 07DH;
  1145. VK_F15 = 07EH;
  1146. VK_F16 = 07FH;
  1147. VK_NUMLOCK = 090H;
  1148. WH_MSGFILTER = -1;
  1149. WH_JOURNALRECORD = 0;
  1150. WH_JOURNALPLAYBACK = 1;
  1151. WH_KEYBOARD = 2;
  1152. WH_GETMESSAGE = 3;
  1153. WH_CALLWNDPROC = 4;
  1154. WH_CBT = 5;
  1155. WH_SYSMSGFILTER = 6;
  1156. WH_WINDOWMGR = 7;
  1157. HC_LPLPFNNEXT = -2;
  1158. HC_LPFNNEXT = -1;
  1159. HC_ACTION = 0;
  1160. HC_GETNEXT = 1;
  1161. HC_SKIP = 2;
  1162. HC_NOREM = 3;
  1163. HC_NOREMOVE = 3;
  1164. HC_SYSMODALON = 4;
  1165. HC_SYSMODALOFF = 5;
  1166. HCBT_MOVESIZE = 0;
  1167. HCBT_MINMAX = 1;
  1168. HCBT_QS = 2;
  1169. MSGF_DIALOGBOX = 0;
  1170. MSGF_MESSAGEBOX = 1;
  1171. MSGF_MENU = 2;
  1172. MSGF_MOVE = 3;
  1173. MSGF_SIZE = 4;
  1174. MSGF_SCROLLBAR = 5;
  1175. MSGF_NEXTWINDOW = 6;
  1176. WC_INIT = 1;
  1177. WC_SWP = 2;
  1178. WC_DEFWINDOWPROC = 3;
  1179. WC_MINMAX = 4;
  1180. WC_MOVE = 5;
  1181. WC_SIZE = 6;
  1182. WC_DRAWCAPTION = 7;
  1183. TYPE
  1184. EVENTMSG = RECORD
  1185. message : CARDINAL;
  1186. paramL : CARDINAL;
  1187. paramH : CARDINAL;
  1188. time : LONGCARD;
  1189. END;
  1190. LPEVENTMSGMSG = POINTER TO EVENTMSG;
  1191. WNDCLASS = RECORD
  1192. style : CARDINAL;
  1193. lpfnWndProc : FarADDRESS; (* Address of PROCEDURE *);
  1194. cbClsExtra : INTEGER;
  1195. cbWndExtra : INTEGER;
  1196. hInstance : HANDLE;
  1197. hIcon : HICON;
  1198. hCursor : HCURSOR;
  1199. hbrBackground : HBRUSH;
  1200. lpszMenuName : LPSTR;
  1201. lpszClassName : LPSTR;
  1202. END;
  1203. LPWNDCLASS = POINTER TO WNDCLASS;
  1204. MSG = RECORD
  1205. hwnd : CARDINAL;
  1206. message : CARDINAL;
  1207. wParam : CARDINAL;
  1208. lParam : LONGINT;
  1209. time : LONGCARD;
  1210. pt : POINT;
  1211. END;
  1212. LPMSG = POINTER TO MSG;
  1213. CONST
  1214. GWL_WNDPROC = -4;
  1215. GWW_HINSTANCE = -6;
  1216. GWW_HWNDPARENT = -8;
  1217. GWW_ID = -12;
  1218. GWL_STYLE = -16;
  1219. GWL_EXSTYLE = -20;
  1220. GCL_MENUNAME = -8;
  1221. GCW_HBRBACKGROUND = -10;
  1222. GCW_HCURSOR = -12;
  1223. GCW_HICON = -14;
  1224. GCW_HMODULE = -16;
  1225. GCW_CBWNDEXTRA = -18;
  1226. GCW_CBCLSEXTRA = -20;
  1227. GCL_WNDPROC = -24;
  1228. GCW_STYLE = -26;
  1229. WM_NULL = 00H;
  1230. WM_CREATE = 01H;
  1231. WM_DESTROY = 02H;
  1232. WM_MOVE = 03H;
  1233. WM_SIZE = 05H;
  1234. WM_ACTIVATE = 06H;
  1235. WM_SETFOCUS = 07H;
  1236. WM_KILLFOCUS = 08H;
  1237. WM_ENABLE = 0AH;
  1238. WM_SETREDRAW = 0BH;
  1239. WM_SETTEXT = 0CH;
  1240. WM_GETTEXT = 0DH;
  1241. WM_GETTEXTLENGTH = 0EH;
  1242. WM_PAINT = 0FH;
  1243. WM_CLOSE = 010H;
  1244. WM_QUERYENDSESSION = 011H;
  1245. WM_QUIT = 012H;
  1246. WM_QUERYOPEN = 013H;
  1247. WM_ERASEBKGND = 014H;
  1248. WM_SYSCOLORCHANGE = 015H;
  1249. WM_ENDSESSION = 016H;
  1250. WM_SHOWWINDOW = 018H;
  1251. WM_CTLCOLOR = 019H;
  1252. WM_WININICHANGE = 01AH;
  1253. WM_DEVMODECHANGE = 01BH;
  1254. WM_ACTIVATEAPP = 01CH;
  1255. WM_FONTCHANGE = 01DH;
  1256. WM_TIMECHANGE = 01EH;
  1257. WM_CANCELMODE = 01FH;
  1258. WM_SETCURSOR = 020H;
  1259. WM_MOUSEACTIVATE = 021H;
  1260. WM_CHILDACTIVATE = 022H;
  1261. WM_QUEUESYNC = 023H;
  1262. WM_GETMINMAXINFO = 024H;
  1263. WM_PAINTICON = 026H;
  1264. WM_ICONERASEBKGND = 027H;
  1265. WM_NEXTDLGCTL = 028H;
  1266. WM_SPOOLERSTATUS = 02AH;
  1267. WM_DRAWITEM = 02BH;
  1268. WM_MEASUREITEM = 02CH;
  1269. WM_DELETEITEM = 02DH;
  1270. WM_VKEYTOITEM = 02EH;
  1271. WM_CHARTOITEM = 02FH;
  1272. WM_SETFONT = 030H;
  1273. WM_GETFONT = 031H;
  1274. WM_QUERYDRAGICON = 037H;
  1275. WM_COMPAREITEM = 039H;
  1276. WM_COMPACTING = 041H;
  1277. WM_NCCREATE = 081H;
  1278. WM_NCDESTROY = 082H;
  1279. WM_NCCALCSIZE = 083H;
  1280. WM_NCHITTEST = 084H;
  1281. WM_NCPAINT = 085H;
  1282. WM_NCACTIVATE = 086H;
  1283. WM_GETDLGCODE = 087H;
  1284. WM_NCMOUSEMOVE = 0A0H;
  1285. WM_NCLBUTTONDOWN = 0A1H;
  1286. WM_NCLBUTTONUP = 0A2H;
  1287. WM_NCLBUTTONDBLCLK = 0A3H;
  1288. WM_NCRBUTTONDOWN = 0A4H;
  1289. WM_NCRBUTTONUP = 0A5H;
  1290. WM_NCRBUTTONDBLCLK = 0A6H;
  1291. WM_NCMBUTTONDOWN = 0A7H;
  1292. WM_NCMBUTTONUP = 0A8H;
  1293. WM_NCMBUTTONDBLCLK = 0A9H;
  1294. WM_KEYFIRST = 0100H;
  1295. WM_KEYDOWN = 0100H;
  1296. WM_KEYUP = 0101H;
  1297. WM_CHAR = 0102H;
  1298. WM_DEADCHAR = 0103H;
  1299. WM_SYSKEYDOWN = 0104H;
  1300. WM_SYSKEYUP = 0105H;
  1301. WM_SYSCHAR = 0106H;
  1302. WM_SYSDEADCHAR = 0107H;
  1303. WM_KEYLAST = 0108H;
  1304. WM_INITDIALOG = 0110H;
  1305. WM_COMMAND = 0111H;
  1306. WM_SYSCOMMAND = 0112H;
  1307. WM_TIMER = 0113H;
  1308. WM_HSCROLL = 0114H;
  1309. WM_VSCROLL = 0115H;
  1310. WM_INITMENU = 0116H;
  1311. WM_INITMENUPOPUP = 0117H;
  1312. WM_MENUSELECT = 011FH;
  1313. WM_MENUCHAR = 0120H;
  1314. WM_ENTERIDLE = 0121H;
  1315. WM_MOUSEFIRST = 0200H;
  1316. WM_MOUSEMOVE = 0200H;
  1317. WM_LBUTTONDOWN = 0201H;
  1318. WM_LBUTTONUP = 0202H;
  1319. WM_LBUTTONDBLCLK = 0203H;
  1320. WM_RBUTTONDOWN = 0204H;
  1321. WM_RBUTTONUP = 0205H;
  1322. WM_RBUTTONDBLCLK = 0206H;
  1323. WM_MBUTTONDOWN = 0207H;
  1324. WM_MBUTTONUP = 0208H;
  1325. WM_MBUTTONDBLCLK = 0209H;
  1326. WM_MOUSELAST = 0209H;
  1327. WM_PARENTNOTIFY = 0210H;
  1328. WM_MDICREATE = 0220H;
  1329. WM_MDIDESTROY = 0221H;
  1330. WM_MDIACTIVATE = 0222H;
  1331. WM_MDIRESTORE = 0223H;
  1332. WM_MDINEXT = 0224H;
  1333. WM_MDIMAXIMIZE = 0225H;
  1334. WM_MDITILE = 0226H;
  1335. WM_MDICASCADE = 0227H;
  1336. WM_MDIICONARRANGE = 0228H;
  1337. WM_MDIGETACTIVE = 0229H;
  1338. WM_MDISETMENU = 0230H;
  1339. WM_CUT = 0300H;
  1340. WM_COPY = 0301H;
  1341. WM_PASTE = 0302H;
  1342. WM_CLEAR = 0303H;
  1343. WM_UNDO = 0304H;
  1344. WM_RENDERFORMAT = 0305H;
  1345. WM_RENDERALLFORMATS= 0306H;
  1346. WM_DESTROYCLIPBOARD= 0307H;
  1347. WM_DRAWCLIPBOARD = 0308H;
  1348. WM_PAINTCLIPBOARD = 0309H;
  1349. WM_VSCROLLCLIPBOARD= 030AH;
  1350. WM_SIZECLIPBOARD = 030BH;
  1351. WM_ASKCBFORMATNAME = 030CH;
  1352. WM_CHANGECBCHAIN = 030DH;
  1353. WM_HSCROLLCLIPBOARD= 030EH;
  1354. WM_QUERYNEWPALETTE = 030FH;
  1355. WM_PALETTEISCHANGING = 0310H;
  1356. WM_PALETTECHANGED = 0311H;
  1357. WM_USER = 0400H;
  1358. ST_BEGINSWP = 0;
  1359. ST_ENDSWP = 1;
  1360. HTERROR = -2;
  1361. HTTRANSPARENT = -1;
  1362. HTNOWHERE = 0;
  1363. HTCLIENT = 1;
  1364. HTCAPTION = 2;
  1365. HTSYSMENU = 3;
  1366. HTGROWBOX = 4;
  1367. HTSIZE = HTGROWBOX;
  1368. HTMENU = 5;
  1369. HTHSCROLL = 6;
  1370. HTVSCROLL = 7;
  1371. HTREDUCE = 8;
  1372. HTZOOM = 9;
  1373. HTLEFT = 10;
  1374. HTRIGHT = 11;
  1375. HTTOP = 12;
  1376. HTTOPLEFT = 13;
  1377. HTTOPRIGHT = 14;
  1378. HTBOTTOM = 15;
  1379. HTBOTTOMLEFT = 16;
  1380. HTBOTTOMRIGHT = 17;
  1381. HTSIZEFIRST = HTLEFT;
  1382. HTSIZELAST = HTBOTTOMRIGHT;
  1383. MA_ACTIVATE = 1;
  1384. MA_ACTIVATEANDEAT = 2;
  1385. MA_NOACTIVATE = 3;
  1386. PROCEDURE RegisterWindowMessage(_:ARRAY OF CHAR) : CARDINAL;
  1387. CONST
  1388. SIZENORMAL = 0;
  1389. SIZEICONIC = 1;
  1390. SIZEFULLSCREEN = 2;
  1391. SIZEZOOMSHOW = 3;
  1392. SIZEZOOMHIDE = 4;
  1393. MK_LBUTTON = 01H;
  1394. MK_RBUTTON = 02H;
  1395. MK_SHIFT = 04H;
  1396. MK_CONTROL = 08H;
  1397. MK_MBUTTON = 010H;
  1398. WS_OVERLAPPED = 00H;
  1399. WS_POPUP = 080000000H;
  1400. WS_CHILD = 040000000H;
  1401. WS_MINIMIZE = 020000000H;
  1402. WS_VISIBLE = 010000000H;
  1403. WS_DISABLED = 08000000H;
  1404. WS_CLIPSIBLINGS = 04000000H;
  1405. WS_CLIPCHILDREN = 02000000H;
  1406. WS_MAXIMIZE = 01000000H;
  1407. WS_CAPTION = 0C00000H;
  1408. WS_BORDER = 0800000H;
  1409. WS_DLGFRAME = 0400000H;
  1410. WS_VSCROLL = 0200000H;
  1411. WS_HSCROLL = 0100000H;
  1412. WS_SYSMENU = 080000H;
  1413. WS_THICKFRAME = 040000H;
  1414. WS_GROUP = 020000H;
  1415. WS_TABSTOP = 010000H;
  1416. WS_MINIMIZEBOX = 020000H;
  1417. WS_MAXIMIZEBOX = 010000H;
  1418. WS_TILED = WS_OVERLAPPED;
  1419. WS_ICONIC = WS_MINIMIZE;
  1420. WS_SIZEBOX = WS_THICKFRAME;
  1421. WS_OVERLAPPEDWINDOW = 0CF0000H; (* WS_OVERLAPPED OR WS_CAPTION OR WS_SYSMENU OR WS_THICKFRAME OR WS_MINIMIZEBOX OR WS_MAXIMIZEBOX; *)
  1422. WS_POPUPWINDOW = 080880000H; (* WS_POPUP OR WS_BORDER OR WS_SYSMENU; *)
  1423. WS_CHILDWINDOW = WS_CHILD;
  1424. WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
  1425. WS_EX_DLGMODALFRAME = 01H;
  1426. WS_EX_NOPARENTNOTIFY = 04H;
  1427. CS_VREDRAW = 01H;
  1428. CS_HREDRAW = 02H;
  1429. CS_KEYCVTWINDOW = 04H;
  1430. CS_DBLCLKS = 08H;
  1431. CS_OWNDC = 020H;
  1432. CS_CLASSDC = 040H;
  1433. CS_PARENTDC = 080H;
  1434. CS_NOKEYCVT = 0100H;
  1435. CS_NOCLOSE = 0200H;
  1436. CS_SAVEBITS = 0800H;
  1437. CS_BYTEALIGNCLIENT = 01000H;
  1438. CS_BYTEALIGNWINDOW = 02000H;
  1439. CS_GLOBALCLASS = 04000H;
  1440. CF_TEXT = 1;
  1441. CF_BITMAP = 2;
  1442. CF_METAFILEPICT = 3;
  1443. CF_SYLK = 4;
  1444. CF_DIF = 5;
  1445. CF_TIFF = 6;
  1446. CF_OEMTEXT = 7;
  1447. CF_DIB = 8;
  1448. CF_PALETTE = 9;
  1449. CF_OWNERDISPLAY = 080H;
  1450. CF_DSPTEXT = 081H;
  1451. CF_DSPBITMAP = 082H;
  1452. CF_DSPMETAFILEPICT = 083H;
  1453. CF_PRIVATEFIRST = 0200H;
  1454. CF_PRIVATELAST = 02FFH;
  1455. CF_GDIOBJFIRST = 0300H;
  1456. CF_GDIOBJLAST = 03FFH;
  1457. TYPE
  1458. PAINTSTRUCT = RECORD
  1459. hdc : HDC;
  1460. fErase : BOOL;
  1461. rcPaint : RECT;
  1462. fRestore : BOOL;
  1463. fIncUpdate : BOOL;
  1464. rgbReserved : ARRAY [0..15] OF SHORTCARD;
  1465. END;
  1466. LPPAINTSTRUCT = POINTER TO PAINTSTRUCT;
  1467. CREATESTRUCT = RECORD
  1468. lpCreateParams : LPSTR;
  1469. hInstance : HANDLE;
  1470. hMenu : HANDLE;
  1471. hwndParent : HWND;
  1472. cy : INTEGER;
  1473. cx : INTEGER;
  1474. y : INTEGER;
  1475. x : INTEGER;
  1476. style : LONGINT;
  1477. lpszName : LPSTR;
  1478. lpszClass : LPSTR;
  1479. dwExStyle : LONGCARD;
  1480. END;
  1481. LPCREATESTRUCT = POINTER TO CREATESTRUCT;
  1482. CONST
  1483. ODT_MENU = 1;
  1484. ODT_LISTBOX = 2;
  1485. ODT_COMBOBOX = 3;
  1486. ODT_BUTTON = 4;
  1487. ODA_DRAWENTIRE = 0;
  1488. ODA_SELECT = 1;
  1489. ODA_FOCUS = 2;
  1490. ODS_SELECTED = 0;
  1491. ODS_GRAYED = 1;
  1492. ODS_DISABLED = 2;
  1493. ODS_CHECKED = 3;
  1494. ODS_FOCUS = 4;
  1495. (*
  1496. ODA_DRAWENTIRE = 01H;
  1497. ODA_SELECT = 02H;
  1498. ODA_FOCUS = 04H;
  1499. ODS_SELECTED = 01H;
  1500. ODS_GRAYED = 02H;
  1501. ODS_DISABLED = 04H;
  1502. ODS_CHECKED = 08H;
  1503. ODS_FOCUS = 010H;
  1504. *)
  1505. TYPE
  1506. MEASUREITEMSTRUCT = RECORD
  1507. CtlType : CARDINAL;
  1508. CtlID : CARDINAL;
  1509. itemID : CARDINAL;
  1510. itemWidth : CARDINAL;
  1511. itemHeight : CARDINAL;
  1512. itemData : LONGCARD;
  1513. END;
  1514. LPMEASUREITEMSTRUCT = POINTER TO MEASUREITEMSTRUCT;
  1515. DRAWITEMSTRUCT = RECORD
  1516. CtlType : CARDINAL;
  1517. CtlID : CARDINAL;
  1518. itemID : CARDINAL;
  1519. itemAction : BITSET;
  1520. itemState : BITSET;
  1521. hwndItem : HWND;
  1522. hDC : HDC;
  1523. rcItem : RECT;
  1524. itemData : LONGCARD;
  1525. END;
  1526. LPDRAWITEMSTRUCT = POINTER TO DRAWITEMSTRUCT;
  1527. DELETEITEMSTRUCT = RECORD
  1528. CtlType : CARDINAL;
  1529. CtlID : CARDINAL;
  1530. itemID : CARDINAL;
  1531. hwndItem : HWND;
  1532. itemData : LONGCARD;
  1533. END;
  1534. LPDELETEITEMSTRUCT = POINTER TO DELETEITEMSTRUCT;
  1535. COMPAREITEMSTRUCT = RECORD
  1536. CtlType : CARDINAL;
  1537. CtlID : CARDINAL;
  1538. hwndItem : HWND;
  1539. itemID1 : CARDINAL;
  1540. itemData1 : LONGCARD;
  1541. itemID2 : CARDINAL;
  1542. itemData2 : LONGCARD;
  1543. END;
  1544. LPCOMPAREITEMSTRUCT = POINTER TO COMPAREITEMSTRUCT;
  1545. PROCEDURE GetMessage(VAR _:MSG; _:HWND; _:CARDINAL; _:CARDINAL) : BOOL;
  1546. PROCEDURE TranslateMessage(VAR _:MSG) : BOOL;
  1547. PROCEDURE DispatchMessage(VAR _:MSG) : LONGINT;
  1548. PROCEDURE PeekMessage(VAR _:MSG; _:HWND; _:CARDINAL; _:CARDINAL; _:CARDINAL) : BOOL;
  1549. CONST
  1550. PM_NOREMOVE = 00H;
  1551. PM_REMOVE = 01H;
  1552. PM_NOYIELD = 02H;
  1553. PROCEDURE lstrcmp( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): INTEGER;
  1554. PROCEDURE lstrcmpi( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): INTEGER;
  1555. PROCEDURE lstrcpy( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): LPSTR;
  1556. PROCEDURE lstrcat( _:ARRAY OF CHAR; _:ARRAY OF CHAR ): LPSTR;
  1557. PROCEDURE lstrlen( _:ARRAY OF CHAR ): INTEGER;
  1558. PROCEDURE _lopen( _:ARRAY OF CHAR; _:INTEGER ): INTEGER;
  1559. PROCEDURE _lclose( _:INTEGER ): INTEGER;
  1560. PROCEDURE _lcreat( _:ARRAY OF CHAR; _:INTEGER ): INTEGER;
  1561. PROCEDURE _llseek( _:INTEGER; _:LONGINT; _:INTEGER ): LONGINT;
  1562. PROCEDURE _lread( _:INTEGER; _:ARRAY OF BYTE; _:INTEGER ): WORD;
  1563. PROCEDURE _lwrite( _:INTEGER; _:ARRAY OF BYTE; _:INTEGER ): WORD;
  1564. CONST
  1565. READ = 0; (* Flags for _lopen *)
  1566. WRITE = 1;
  1567. READ_WRITE = 2;
  1568. PROCEDURE ExitWindows(dwReserved : LONGCARD; wReturnCode : CARDINAL) : BOOL;
  1569. PROCEDURE SwapMouseButton(_:BOOL) : BOOL;
  1570. PROCEDURE GetMessagePos() : LONGCARD;
  1571. PROCEDURE GetMessageTime() : LONGINT;
  1572. PROCEDURE GetSysModalWindow() : HWND;
  1573. PROCEDURE SetSysModalWindow(_:HWND) : HWND;
  1574. PROCEDURE SendMessage(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  1575. PROCEDURE PostMessage(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : BOOL;
  1576. PROCEDURE PostAppMessage(_:HANDLE; _:CARDINAL; _:CARDINAL; _:LONGINT) : BOOL;
  1577. PROCEDURE ReplyMessage(_:LONGINT);
  1578. PROCEDURE WaitMessage();
  1579. PROCEDURE DefWindowProc(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  1580. PROCEDURE PostQuitMessage(_:INTEGER);
  1581. PROCEDURE CallWindowProc(_:FARPROC; _:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  1582. PROCEDURE InSendMessage() : BOOL;
  1583. PROCEDURE GetDoubleClickTime() : CARDINAL;
  1584. PROCEDURE SetDoubleClickTime(_:CARDINAL);
  1585. PROCEDURE RegisterClass(VAR _:WNDCLASS) : BOOL;
  1586. PROCEDURE UnregisterClass(_:ARRAY OF CHAR; _:HANDLE) : BOOL;
  1587. PROCEDURE GetClassInfo(_:HANDLE; _:ARRAY OF CHAR; VAR _:WNDCLASS) : BOOL;
  1588. PROCEDURE SetMessageQueue(_:INTEGER) : BOOL;
  1589. CONST
  1590. CW_USEDEFAULT = MIN(INTEGER);
  1591. PROCEDURE CreateWindow(_:FarADDRESS; _:ARRAY OF CHAR; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; _:HMENU; _:HANDLE; _:FarADDRESS) : HWND;
  1592. PROCEDURE CreateWindowEx(_:LONGCARD; _:FarADDRESS; _:ARRAY OF CHAR; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; _:HMENU; _:HANDLE; _:ARRAY OF CHAR) : HWND;
  1593. PROCEDURE IsWindow(_:HWND) : BOOL;
  1594. PROCEDURE IsChild(_:HWND; _:HWND) : BOOL;
  1595. PROCEDURE DestroyWindow(_:HWND) : BOOL;
  1596. PROCEDURE ShowWindow(_:HWND; _:INTEGER) : BOOL;
  1597. PROCEDURE FlashWindow(_:HWND; _:BOOL) : BOOL;
  1598. PROCEDURE ShowOwnedPopups(_:HWND; _:BOOL);
  1599. PROCEDURE OpenIcon(_:HWND) : BOOL;
  1600. PROCEDURE CloseWindow(_:HWND);
  1601. PROCEDURE MoveWindow(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:BOOL);
  1602. PROCEDURE SetWindowPos(_:HWND; _:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:CARDINAL);
  1603. PROCEDURE BeginDeferWindowPos(nNumWindows : INTEGER) : HANDLE;
  1604. PROCEDURE DeferWindowPos(hWinPosInfo : HANDLE; hWnd : HWND; hWndInsertAfter : HWND; x : INTEGER; y : INTEGER; cx : INTEGER; cy : INTEGER; wFlags : CARDINAL) : HANDLE;
  1605. PROCEDURE EndDeferWindowPos(hWinPosInfo : HANDLE);
  1606. PROCEDURE IsWindowVisible(_:HWND) : BOOL;
  1607. PROCEDURE IsIconic(_:HWND) : BOOL;
  1608. PROCEDURE AnyPopup() : BOOL;
  1609. PROCEDURE BringWindowToTop(_:HWND);
  1610. PROCEDURE IsZoomed(_:HWND) : BOOL;
  1611. CONST
  1612. SWP_NOSIZE = 01H;
  1613. SWP_NOMOVE = 02H;
  1614. SWP_NOZORDER = 04H;
  1615. SWP_NOREDRAW = 08H;
  1616. SWP_NOACTIVATE = 010H;
  1617. SWP_DRAWFRAME = 020H;
  1618. SWP_SHOWWINDOW = 040H;
  1619. SWP_HIDEWINDOW = 080H;
  1620. SWP_NOCOPYBITS = 0100H;
  1621. SWP_NOREPOSITION = 0200H;
  1622. PROCEDURE CreateDialog(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC) : HWND;
  1623. PROCEDURE CreateDialogIndirect(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC) : HWND;
  1624. PROCEDURE CreateDialogParam(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC; _:LONGINT) : HWND;
  1625. PROCEDURE CreateDialogIndirectParam(_:HANDLE; _:ARRAY OF CHAR; _:HWND; _:FARPROC; _:LONGINT) : HWND;
  1626. PROCEDURE DialogBox(_:HANDLE; _:FarADDRESS; _:HWND; _:FARPROC) : INTEGER;
  1627. PROCEDURE DialogBoxIndirect(_:HANDLE; _:HANDLE; _:HWND; _:FARPROC) : INTEGER;
  1628. PROCEDURE DialogBoxParam(_:HANDLE; _:FarADDRESS; _:HWND; _:FARPROC; _:LONGINT) : INTEGER;
  1629. PROCEDURE DialogBoxIndirectParam(_:HANDLE; _:HANDLE; _:HWND; _:FARPROC; _:LONGINT) : INTEGER;
  1630. PROCEDURE EndDialog(_:HWND; _:INTEGER);
  1631. PROCEDURE GetDlgItem(_:HWND; _:INTEGER) : HWND;
  1632. PROCEDURE SetDlgItemInt(_:HWND; _:INTEGER; _:CARDINAL; _:BOOL);
  1633. PROCEDURE GetDlgItemInt(_:HWND; _:INTEGER; VAR _:BOOL; _:BOOL) : CARDINAL;
  1634. PROCEDURE SetDlgItemText(_:HWND; _:INTEGER; _:ARRAY OF CHAR);
  1635. PROCEDURE GetDlgItemText(_:HWND; _:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  1636. PROCEDURE CheckDlgButton(_:HWND; _:INTEGER; _:CARDINAL);
  1637. PROCEDURE CheckRadioButton(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER);
  1638. PROCEDURE IsDlgButtonChecked(_:HWND; _:INTEGER) : CARDINAL;
  1639. PROCEDURE SendDlgItemMessage(_:HWND; _:INTEGER; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  1640. PROCEDURE GetNextDlgGroupItem(_:HWND; _:HWND; _:BOOL) : HWND;
  1641. PROCEDURE GetNextDlgTabItem(_:HWND; _:HWND; _:BOOL) : HWND;
  1642. PROCEDURE GetDlgCtrlID(_:HWND) : INTEGER;
  1643. PROCEDURE GetDialogBaseUnits() : LONGINT;
  1644. PROCEDURE DefDlgProc(_:HWND; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  1645. CONST
  1646. DLGWINDOWEXTRA = 30;
  1647. PROCEDURE CallMsgFilter(VAR _:MSG; _:INTEGER) : BOOL;
  1648. PROCEDURE OpenClipboard(_:HWND) : BOOL;
  1649. PROCEDURE CloseClipboard() : BOOL;
  1650. PROCEDURE GetClipboardOwner() : HWND;
  1651. PROCEDURE SetClipboardViewer(_:HWND) : HWND;
  1652. PROCEDURE GetClipboardViewer() : HWND;
  1653. PROCEDURE ChangeClipboardChain(_:HWND; _:HWND) : BOOL;
  1654. PROCEDURE SetClipboardData(_:CARDINAL; _:HANDLE) : HANDLE;
  1655. PROCEDURE GetClipboardData(_:CARDINAL) : HANDLE;
  1656. PROCEDURE RegisterClipboardFormat(_:ARRAY OF CHAR) : CARDINAL;
  1657. PROCEDURE CountClipboardFormats() : INTEGER;
  1658. PROCEDURE EnumClipboardFormats(_:CARDINAL) : CARDINAL;
  1659. PROCEDURE GetClipboardFormatName(_:CARDINAL; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  1660. PROCEDURE EmptyClipboard() : BOOL;
  1661. PROCEDURE IsClipboardFormatAvailable(_:CARDINAL) : BOOL;
  1662. PROCEDURE GetPriorityClipboardFormat(VAR _:CARDINAL; _:INTEGER) : INTEGER;
  1663. PROCEDURE SetFocus(_:HWND) : HWND;
  1664. PROCEDURE GetFocus() : HWND;
  1665. PROCEDURE GetActiveWindow() : HWND;
  1666. PROCEDURE GetKeyState(_:INTEGER) : INTEGER;
  1667. PROCEDURE GetAsyncKeyState(_:INTEGER) : INTEGER;
  1668. PROCEDURE GetKeyboardState(VAR _:SHORTCARD);
  1669. PROCEDURE SetKeyboardState(VAR _:SHORTCARD);
  1670. PROCEDURE EnableHardwareInput(_:BOOL) : BOOL;
  1671. PROCEDURE GetInputState() : BOOL;
  1672. PROCEDURE GetCapture() : HWND;
  1673. PROCEDURE SetCapture(_:HWND) : HWND;
  1674. PROCEDURE ReleaseCapture();
  1675. PROCEDURE SetTimer(_:HWND; _:INTEGER; _:CARDINAL; _:FARPROC) : CARDINAL;
  1676. PROCEDURE KillTimer(_:HWND; _:INTEGER) : BOOL;
  1677. PROCEDURE EnableWindow(_:HWND; _:BOOL) : BOOL;
  1678. PROCEDURE IsWindowEnabled(_:HWND) : BOOL;
  1679. PROCEDURE LoadAccelerators(_:HANDLE; _:ARRAY OF CHAR) : HANDLE;
  1680. PROCEDURE TranslateAccelerator(_:HWND; _:HANDLE; VAR _:MSG) : INTEGER;
  1681. CONST
  1682. SM_CXSCREEN = 0;
  1683. SM_CYSCREEN = 1;
  1684. SM_CXVSCROLL = 2;
  1685. SM_CYHSCROLL = 3;
  1686. SM_CYCAPTION = 4;
  1687. SM_CXBORDER = 5;
  1688. SM_CYBORDER = 6;
  1689. SM_CXDLGFRAME = 7;
  1690. SM_CYDLGFRAME = 8;
  1691. SM_CYVTHUMB = 9;
  1692. SM_CXHTHUMB = 10;
  1693. SM_CXICON = 11;
  1694. SM_CYICON = 12;
  1695. SM_CXCURSOR = 13;
  1696. SM_CYCURSOR = 14;
  1697. SM_CYMENU = 15;
  1698. SM_CXFULLSCREEN = 16;
  1699. SM_CYFULLSCREEN = 17;
  1700. SM_CYKANJIWINDOW = 18;
  1701. SM_MOUSEPRESENT = 19;
  1702. SM_CYVSCROLL = 20;
  1703. SM_CXHSCROLL = 21;
  1704. SM_DEBUG = 22;
  1705. SM_SWAPBUTTON = 23;
  1706. SM_RESERVED1 = 24;
  1707. SM_RESERVED2 = 25;
  1708. SM_RESERVED3 = 26;
  1709. SM_RESERVED4 = 27;
  1710. SM_CXMIN = 28;
  1711. SM_CYMIN = 29;
  1712. SM_CXSIZE = 30;
  1713. SM_CYSIZE = 31;
  1714. SM_CXFRAME = 32;
  1715. SM_CYFRAME = 33;
  1716. SM_CXMINTRACK = 34;
  1717. SM_CYMINTRACK = 35;
  1718. SM_CMETRICS = 36;
  1719. PROCEDURE GetSystemMetrics(_:INTEGER) : INTEGER;
  1720. PROCEDURE LoadMenu(_:HANDLE; _:ARRAY OF CHAR) : HMENU;
  1721. PROCEDURE LoadMenuIndirect(_:ARRAY OF CHAR) : HMENU;
  1722. PROCEDURE GetMenu(_:HWND) : HMENU;
  1723. PROCEDURE SetMenu(_:HWND; _:HMENU) : BOOL;
  1724. PROCEDURE ChangeMenu(_:HMENU; _:CARDINAL; _:FarADDRESS; _:CARDINAL; _:CARDINAL) : BOOL;
  1725. PROCEDURE HiliteMenuItem(_:HWND; _:HMENU; _:CARDINAL; _:CARDINAL) : BOOL;
  1726. PROCEDURE GetMenuString(_:HMENU; _:CARDINAL; _:ARRAY OF CHAR; _:INTEGER; _:CARDINAL) : INTEGER;
  1727. PROCEDURE GetMenuState(_:HMENU; _:CARDINAL; _:CARDINAL) : CARDINAL;
  1728. PROCEDURE DrawMenuBar(_:HWND);
  1729. PROCEDURE GetSystemMenu(_:HWND; _:BOOL) : HMENU;
  1730. PROCEDURE CreateMenu() : HMENU;
  1731. PROCEDURE CreatePopupMenu() : HMENU;
  1732. PROCEDURE DestroyMenu(_:HMENU) : BOOL;
  1733. PROCEDURE CheckMenuItem(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL;
  1734. PROCEDURE EnableMenuItem(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL;
  1735. PROCEDURE GetSubMenu(_:HMENU; _:INTEGER) : HMENU;
  1736. PROCEDURE GetMenuItemID(_:HMENU; _:INTEGER) : CARDINAL;
  1737. PROCEDURE GetMenuItemCount(_:HMENU) : CARDINAL;
  1738. PROCEDURE InsertMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:ARRAY OF CHAR) : BOOL;
  1739. PROCEDURE AppendMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:FarADDRESS) : BOOL;
  1740. PROCEDURE ModifyMenu(_:HMENU; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:FarADDRESS) : BOOL;
  1741. PROCEDURE RemoveMenu(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL;
  1742. PROCEDURE DeleteMenu(_:HMENU; _:CARDINAL; _:CARDINAL) : BOOL;
  1743. PROCEDURE SetMenuItemBitmaps(_:HMENU; _:CARDINAL; _:CARDINAL; _:HBITMAP; _:HBITMAP) : BOOL;
  1744. PROCEDURE GetMenuCheckMarkDimensions() : LONGINT;
  1745. PROCEDURE TrackPopupMenu(_:HMENU; _:CARDINAL; _:INTEGER; _:INTEGER; _:INTEGER; _:HWND; VAR _:RECT) : BOOL;
  1746. PROCEDURE GrayString(_:HDC; _:HBRUSH; _:FARPROC; _:LONGCARD; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : BOOL;
  1747. PROCEDURE UpdateWindow(_:HWND);
  1748. PROCEDURE SetActiveWindow(_:HWND) : HWND;
  1749. PROCEDURE BeginPaint(_:HWND; VAR _:PAINTSTRUCT) : HDC;
  1750. PROCEDURE EndPaint(_:HWND; VAR _:PAINTSTRUCT);
  1751. PROCEDURE GetUpdateRect(_:HWND; VAR _:RECT; _:BOOL) : BOOL;
  1752. PROCEDURE GetUpdateRgn(_:HWND; _:HRGN; _:BOOL) : INTEGER;
  1753. PROCEDURE ExcludeUpdateRgn(_:HDC; _:HWND) : INTEGER;
  1754. PROCEDURE InvalidateRect(_:HWND; VAR _:RECT; _:BOOL);
  1755. PROCEDURE ValidateRect(_:HWND; VAR _:RECT);
  1756. PROCEDURE InvalidateRgn(_:HWND; _:HRGN; _:BOOL);
  1757. PROCEDURE ValidateRgn(_:HWND; _:HRGN);
  1758. PROCEDURE ScrollWindow(_:HWND; _:INTEGER; _:INTEGER; VAR _:RECT; VAR _:RECT);
  1759. PROCEDURE ScrollDC(_:HDC; _:INTEGER; _:INTEGER; VAR _:RECT; VAR _:RECT; _:HRGN; VAR _:RECT) : BOOL;
  1760. PROCEDURE SetScrollPos(_:HWND; _:INTEGER; _:INTEGER; _:BOOL) : INTEGER;
  1761. PROCEDURE GetScrollPos(_:HWND; _:INTEGER) : INTEGER;
  1762. PROCEDURE SetScrollRange(_:HWND; _:INTEGER; _:INTEGER; _:INTEGER; _:BOOL);
  1763. PROCEDURE GetScrollRange(_:HWND; _:INTEGER; VAR _:INTEGER; VAR _:INTEGER);
  1764. PROCEDURE ShowScrollBar(_:HWND; _:CARDINAL; _:BOOL);
  1765. PROCEDURE SetProp(_:HWND; _:ARRAY OF CHAR; _:HANDLE) : BOOL;
  1766. PROCEDURE GetProp(_:HWND; _:ARRAY OF CHAR) : HANDLE;
  1767. PROCEDURE RemoveProp(_:HWND; _:ARRAY OF CHAR) : HANDLE;
  1768. PROCEDURE EnumProps(_:HWND; _:FARPROC) : INTEGER;
  1769. PROCEDURE SetWindowText(_:HWND; _:ARRAY OF CHAR);
  1770. PROCEDURE GetWindowText(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  1771. PROCEDURE GetWindowTextLength(_:HWND) : INTEGER;
  1772. PROCEDURE GetClientRect(_:HWND; VAR _:RECT);
  1773. PROCEDURE GetWindowRect(_:HWND; VAR _:RECT);
  1774. PROCEDURE AdjustWindowRect(VAR _:RECT; _:LONGINT; _:BOOL);
  1775. PROCEDURE AdjustWindowRectEx(VAR _:RECT; _:LONGINT; _:BOOL; _:LONGCARD);
  1776. CONST
  1777. MB_OK = 00H;
  1778. MB_OKCANCEL = 01H;
  1779. MB_ABORTRETRYIGNORE = 02H;
  1780. MB_YESNOCANCEL = 03H;
  1781. MB_YESNO = 04H;
  1782. MB_RETRYCANCEL = 05H;
  1783. MB_ICONHAND = 010H;
  1784. MB_ICONQUESTION = 020H;
  1785. MB_ICONEXCLAMATION = 030H;
  1786. MB_ICONASTERISK = 040H;
  1787. MB_ICONINFORMATION = MB_ICONASTERISK;
  1788. MB_ICONSTOP = MB_ICONHAND;
  1789. MB_DEFBUTTON1 = 00H;
  1790. MB_DEFBUTTON2 = 0100H;
  1791. MB_DEFBUTTON3 = 0200H;
  1792. MB_APPLMODAL = 00H;
  1793. MB_SYSTEMMODAL = 01000H;
  1794. MB_TASKMODAL = 02000H;
  1795. MB_NOFOCUS = 08000H;
  1796. MB_TYPEMASK = 0FH;
  1797. MB_ICONMASK = 0F0H;
  1798. MB_DEFMASK = 0F00H;
  1799. MB_MODEMASK = 03000H;
  1800. MB_MISCMASK = 0C000H;
  1801. PROCEDURE MessageBox(_:HWND; _:ARRAY OF CHAR; _:ARRAY OF CHAR; _:CARDINAL) : INTEGER;
  1802. PROCEDURE MessageBeep(_:CARDINAL);
  1803. PROCEDURE ShowCursor(_:BOOL) : INTEGER;
  1804. PROCEDURE SetCursorPos(_:INTEGER; _:INTEGER);
  1805. PROCEDURE SetCursor(_:HCURSOR) : HCURSOR;
  1806. PROCEDURE GetCursorPos(VAR _:POINT);
  1807. PROCEDURE ClipCursor(VAR _:RECT);
  1808. PROCEDURE CreateCaret(_:HWND; _:HBITMAP; _:INTEGER; _:INTEGER);
  1809. PROCEDURE GetCaretBlinkTime() : CARDINAL;
  1810. PROCEDURE SetCaretBlinkTime(_:CARDINAL);
  1811. PROCEDURE DestroyCaret();
  1812. PROCEDURE HideCaret(_:HWND);
  1813. PROCEDURE ShowCaret(_:HWND);
  1814. PROCEDURE SetCaretPos(_:INTEGER; _:INTEGER);
  1815. PROCEDURE GetCaretPos(VAR _:POINT);
  1816. PROCEDURE ClientToScreen(_:HWND; VAR _:POINT);
  1817. PROCEDURE ScreenToClient(_:HWND; VAR _:POINT);
  1818. PROCEDURE WindowFromPoint(_:POINT) : HWND;
  1819. PROCEDURE ChildWindowFromPoint(_:HWND; _:POINT) : HWND;
  1820. CONST
  1821. CTLCOLOR_MSGBOX = 0;
  1822. CTLCOLOR_EDIT = 1;
  1823. CTLCOLOR_LISTBOX = 2;
  1824. CTLCOLOR_BTN = 3;
  1825. CTLCOLOR_DLG = 4;
  1826. CTLCOLOR_SCROLLBAR = 5;
  1827. CTLCOLOR_STATIC = 6;
  1828. CTLCOLOR_MAX = 8;
  1829. COLOR_SCROLLBAR = 0;
  1830. COLOR_BACKGROUND = 1;
  1831. COLOR_ACTIVECAPTION = 2;
  1832. COLOR_INACTIVECAPTION = 3;
  1833. COLOR_MENU = 4;
  1834. COLOR_WINDOW = 5;
  1835. COLOR_WINDOWFRAME = 6;
  1836. COLOR_MENUTEXT = 7;
  1837. COLOR_WINDOWTEXT = 8;
  1838. COLOR_CAPTIONTEXT = 9;
  1839. COLOR_ACTIVEBORDER = 10;
  1840. COLOR_INACTIVEBORDER = 11;
  1841. COLOR_APPWORKSPACE = 12;
  1842. COLOR_HIGHLIGHT = 13;
  1843. COLOR_HIGHLIGHTTEXT = 14;
  1844. COLOR_BTNFACE = 15;
  1845. COLOR_BTNSHADOW = 16;
  1846. COLOR_GRAYTEXT = 17;
  1847. COLOR_BTNTEXT = 18;
  1848. COLOR_ENDCOLORS = COLOR_BTNTEXT;
  1849. PROCEDURE GetSysColor(_:INTEGER) : LONGINT;
  1850. PROCEDURE SetSysColors(_:INTEGER; VAR _:INTEGER; VAR _:LONGINT);
  1851. PROCEDURE FillRgn(_:HDC; _:HRGN; _:HBRUSH) : BOOL;
  1852. PROCEDURE FrameRgn(_:HDC; _:HRGN; _:HBRUSH; _:INTEGER; _:INTEGER) : BOOL;
  1853. PROCEDURE InvertRgn(_:HDC; _:HRGN) : BOOL;
  1854. PROCEDURE PaintRgn(_:HDC; _:HRGN) : BOOL;
  1855. PROCEDURE PtInRegion(_:HRGN; _:INTEGER; _:INTEGER) : BOOL;
  1856. PROCEDURE DrawFocusRect(_:HDC; VAR _:RECT);
  1857. PROCEDURE FillRect(_:HDC; VAR _:RECT; _:HBRUSH) : INTEGER;
  1858. PROCEDURE FrameRect(_:HDC; VAR _:RECT; _:HBRUSH) : INTEGER;
  1859. PROCEDURE InvertRect(_:HDC; VAR _:RECT);
  1860. PROCEDURE SetRect(VAR _:RECT; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER);
  1861. PROCEDURE SetRectEmpty(VAR _:RECT);
  1862. PROCEDURE CopyRect(VAR _:RECT; VAR _:RECT) : INTEGER;
  1863. PROCEDURE InflateRect(VAR _:RECT; _:INTEGER; _:INTEGER);
  1864. PROCEDURE IntersectRect(VAR _:RECT; VAR _:RECT; VAR _:RECT) : INTEGER;
  1865. PROCEDURE UnionRect(VAR _:RECT; VAR _:RECT; VAR _:RECT) : INTEGER;
  1866. PROCEDURE OffsetRect(VAR _:RECT; _:INTEGER; _:INTEGER);
  1867. PROCEDURE IsRectEmpty(VAR _:RECT) : BOOL;
  1868. PROCEDURE EqualRect(VAR _:RECT; VAR _:RECT) : BOOL;
  1869. PROCEDURE PtInRect(VAR _:RECT; _:POINT) : BOOL;
  1870. PROCEDURE RectVisible(_:HDC; VAR _:RECT) : BOOL;
  1871. PROCEDURE RectInRegion(_:HRGN; VAR _:RECT) : BOOL;
  1872. PROCEDURE GetCurrentTime() : LONGCARD;
  1873. PROCEDURE GetTickCount() : LONGCARD;
  1874. PROCEDURE GetWindowWord(_:HWND; _:INTEGER) : CARDINAL;
  1875. PROCEDURE SetWindowWord(_:HWND; _:INTEGER; _:CARDINAL) : CARDINAL;
  1876. PROCEDURE GetWindowLong(_:HWND; _:INTEGER) : LONGINT;
  1877. PROCEDURE SetWindowLong(_:HWND; _:INTEGER; _:LONGINT) : LONGINT;
  1878. PROCEDURE GetClassWord(_:HWND; _:INTEGER) : CARDINAL;
  1879. PROCEDURE SetClassWord(_:HWND; _:INTEGER; _:CARDINAL) : CARDINAL;
  1880. PROCEDURE GetClassLong(_:HWND; _:INTEGER) : LONGINT;
  1881. PROCEDURE SetClassLong(_:HWND; _:INTEGER; _:LONGINT) : LONGINT;
  1882. PROCEDURE GetDesktopHwnd() : HWND;
  1883. PROCEDURE GetDesktopWindow() : HWND;
  1884. PROCEDURE GetParent(_:HWND) : HWND;
  1885. PROCEDURE SetParent(_:HWND; _:HWND) : HWND;
  1886. PROCEDURE EnumChildWindows(_:HWND; _:FARPROC; _:LONGINT) : BOOL;
  1887. PROCEDURE FindWindow(_:ARRAY OF CHAR; _:ARRAY OF CHAR) : HWND;
  1888. PROCEDURE EnumWindows(_:FARPROC; _:LONGINT) : BOOL;
  1889. PROCEDURE EnumTaskWindows(_:HANDLE; _:FARPROC; _:LONGINT) : BOOL;
  1890. PROCEDURE GetClassName(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  1891. PROCEDURE GetTopWindow(_:HWND) : HWND;
  1892. PROCEDURE GetNextWindow(_:HWND; _:CARDINAL) : HWND;
  1893. PROCEDURE GetWindowTask(_:HWND) : HANDLE;
  1894. PROCEDURE GetLastActivePopup(_:HWND) : HWND;
  1895. CONST
  1896. GW_HWNDFIRST = 0;
  1897. GW_HWNDLAST = 1;
  1898. GW_HWNDNEXT = 2;
  1899. GW_HWNDPREV = 3;
  1900. GW_OWNER = 4;
  1901. GW_CHILD = 5;
  1902. PROCEDURE GetWindow(_:HWND; _:CARDINAL) : HWND;
  1903. PROCEDURE SetWindowsHook(_:INTEGER; _:FARPROC) : FARPROC;
  1904. PROCEDURE UnhookWindowsHook(_:INTEGER; _:FARPROC) : BOOL;
  1905. PROCEDURE DefHookProc(_:INTEGER; _:CARDINAL; _:LONGCARD; VAR _:FARPROC) : LONGCARD;
  1906. CONST
  1907. MF_INSERT = 00H;
  1908. MF_CHANGE = 080H;
  1909. MF_APPEND = 0100H;
  1910. MF_DELETE = 0200H;
  1911. MF_REMOVE = 01000H;
  1912. MF_BYCOMMAND = 00H;
  1913. MF_BYPOSITION = 0400H;
  1914. MF_SEPARATOR = 0800H;
  1915. MF_ENABLED = 00H;
  1916. MF_GRAYED = 01H;
  1917. MF_DISABLED = 02H;
  1918. MF_UNCHECKED = 00H;
  1919. MF_CHECKED = 08H;
  1920. MF_USECHECKBITMAPS = 0200H;
  1921. MF_STRING = 00H;
  1922. MF_BITMAP = 04H;
  1923. MF_OWNERDRAW = 0100H;
  1924. MF_POPUP = 010H;
  1925. MF_MENUBARBREAK = 020H;
  1926. MF_MENUBREAK = 040H;
  1927. MF_UNHILITE = 00H;
  1928. MF_HILITE = 080H;
  1929. MF_SYSMENU = 02000H;
  1930. MF_HELP = 04000H;
  1931. MF_MOUSESELECT = 08000H;
  1932. TYPE
  1933. MENUITEMTEMPLATEHEADER = RECORD
  1934. versionNumber : CARDINAL;
  1935. offset : CARDINAL;
  1936. END;
  1937. MENUITEMTEMPLATE = RECORD
  1938. mtOption : CARDINAL;
  1939. mtID : CARDINAL;
  1940. mtString : LPSTR;
  1941. END;
  1942. CONST
  1943. MF_END = 080H;
  1944. SC_SIZE = 0F000H;
  1945. SC_MOVE = 0F010H;
  1946. SC_MINIMIZE = 0F020H;
  1947. SC_MAXIMIZE = 0F030H;
  1948. SC_NEXTWINDOW = 0F040H;
  1949. SC_PREVWINDOW = 0F050H;
  1950. SC_CLOSE = 0F060H;
  1951. SC_VSCROLL = 0F070H;
  1952. SC_HSCROLL = 0F080H;
  1953. SC_MOUSEMENU = 0F090H;
  1954. SC_KEYMENU = 0F100H;
  1955. SC_ARRANGE = 0F110H;
  1956. SC_RESTORE = 0F120H;
  1957. SC_TASKLIST = 0F130H;
  1958. SC_ICON = SC_MINIMIZE;
  1959. SC_ZOOM = SC_MAXIMIZE;
  1960. PROCEDURE LoadBitmap(_:HANDLE; _:FarADDRESS) : HBITMAP;
  1961. PROCEDURE LoadCursor(_:HANDLE; _:FarADDRESS) : HCURSOR;
  1962. PROCEDURE CreateCursor(_:HANDLE; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HCURSOR;
  1963. PROCEDURE DestroyCursor(_:HCURSOR) : BOOL;
  1964. CONST
  1965. IDC_ARROW = LPSTR(32512);
  1966. IDC_IBEAM = LPSTR(32513);
  1967. IDC_WAIT = LPSTR(32514);
  1968. IDC_CROSS = LPSTR(32515);
  1969. IDC_UPARROW = LPSTR(32516);
  1970. IDC_SIZE = LPSTR(32640);
  1971. IDC_ICON = LPSTR(32641);
  1972. IDC_SIZENWSE = LPSTR(32642);
  1973. IDC_SIZENESW = LPSTR(32643);
  1974. IDC_SIZEWE = LPSTR(32644);
  1975. IDC_SIZENS = LPSTR(32645);
  1976. PROCEDURE LoadIcon(_:HANDLE; _:FarADDRESS) : HICON;
  1977. PROCEDURE CreateIcon(_:HANDLE; _:INTEGER; _:INTEGER; _:SHORTCARD; _:SHORTCARD; _:ARRAY OF CHAR; _:ARRAY OF CHAR) : HICON;
  1978. PROCEDURE DestroyIcon(_:HICON) : BOOL;
  1979. CONST
  1980. ORD_LANGDRIVER = 1;
  1981. IDI_APPLICATION = LPSTR(32512);
  1982. IDI_HAND = LPSTR(32513);
  1983. IDI_QUESTION = LPSTR(32514);
  1984. IDI_EXCLAMATION = LPSTR(32515);
  1985. IDI_ASTERISK = LPSTR(32516);
  1986. PROCEDURE LoadString(_:HANDLE; _:CARDINAL; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  1987. PROCEDURE AddFontResource(_:ARRAY OF CHAR) : INTEGER;
  1988. PROCEDURE RemoveFontResource(_:ARRAY OF CHAR) : BOOL;
  1989. CONST
  1990. CP_HWND = 0;
  1991. CP_OPEN = 1;
  1992. CP_DIRECT = 2;
  1993. VK_KANA = 015H;
  1994. VK_ROMAJI = 016H;
  1995. VK_ZENKAKU = 017H;
  1996. VK_HIRAGANA = 018H;
  1997. VK_KANJI = 019H;
  1998. VK_CONVERT = 01CH;
  1999. VK_NONCONVERT = 01DH;
  2000. VK_ACCEPT = 01EH;
  2001. VK_MODECHANGE = 01FH;
  2002. KNJ_START = 01H;
  2003. KNJ_END = 02H;
  2004. KNJ_QUERY = 03H;
  2005. KNJ_LEARN_MODE = 010H;
  2006. KNJ_GETMODE = 011H;
  2007. KNJ_SETMODE = 012H;
  2008. KNJ_CODECONVERT = 020H;
  2009. KNJ_CONVERT = 021H;
  2010. KNJ_NEXT = 022H;
  2011. KNJ_PREVIOUS = 023H;
  2012. KNJ_ACCEPT = 024H;
  2013. KNJ_LEARN = 030H;
  2014. KNJ_REGISTER = 031H;
  2015. KNJ_REMOVE = 032H;
  2016. KNJ_CHANGE_UDIC = 033H;
  2017. KNJ_JIS1toJIS1KATAKANA = 014H;
  2018. KNJ_JIS1toSJIS2 = 013H;
  2019. KNJ_JIS1toSJIS2HIRAGANA = 015H;
  2020. KNJ_JIS1toSJIS2KATAKANA = 016H;
  2021. KNJ_JIS1toDEFAULT = 010H;
  2022. KNJ_JIS1toSJIS2OEM = 01FH;
  2023. KNJ_JIS2toSJIS2 = 023H;
  2024. KNJ_SJIS2toJIS2 = 032H;
  2025. KNJ_MD_ALPHA = 01H;
  2026. KNJ_MD_HIRAGANA = 02H;
  2027. KNJ_MD_HALF = 04H;
  2028. KNJ_MD_JIS = 08H;
  2029. KNJ_MD_SPECIAL = 010H;
  2030. KNJ_CVT_NEXT = 01H;
  2031. KNJ_CVT_PREV = 02H;
  2032. KNJ_CVT_KATAKANA = 03H;
  2033. KNJ_CVT_HIRAGANA = 04H;
  2034. KNJ_CVT_JIS1 = 05H;
  2035. KNJ_CVT_SJIS2 = 06H;
  2036. KNJ_CVT_DEFAULT = 07H;
  2037. KNJ_CVT_TYPED = 08H;
  2038. TYPE
  2039. KANJISTRUCT = RECORD
  2040. fnc : INTEGER;
  2041. wParam : INTEGER;
  2042. lpSource : LPSTR;
  2043. lpDest : LPSTR;
  2044. wCount : INTEGER;
  2045. lpReserved1 : LPSTR;
  2046. lpReserved2 : LPSTR;
  2047. END;
  2048. LPKANJISTRUCT = POINTER TO KANJISTRUCT;
  2049. PROCEDURE ConvertRequest(_:HWND; VAR _:KANJISTRUCT) : INTEGER;
  2050. PROCEDURE SetConvertParams(_:INTEGER; _:INTEGER) : BOOL;
  2051. PROCEDURE SetConvertHook(_:BOOL);
  2052. PROCEDURE IsTwoByteCharPrefix(_:CHAR) : BOOL;
  2053. CONST
  2054. IDOK = 1;
  2055. IDCANCEL = 2;
  2056. IDABORT = 3;
  2057. IDRETRY = 4;
  2058. IDIGNORE = 5;
  2059. IDYES = 6;
  2060. IDNO = 7;
  2061. ES_LEFT = 00H;
  2062. ES_CENTER = 01H;
  2063. ES_RIGHT = 02H;
  2064. ES_MULTILINE = 04H;
  2065. ES_UPPERCASE = 08H;
  2066. ES_LOWERCASE = 010H;
  2067. ES_PASSWORD = 020H;
  2068. ES_AUTOVSCROLL = 040H;
  2069. ES_AUTOHSCROLL = 080H;
  2070. ES_NOHIDESEL = 0100H;
  2071. ES_OEMCONVERT = 0400H;
  2072. EN_SETFOCUS = 0100H;
  2073. EN_KILLFOCUS = 0200H;
  2074. EN_CHANGE = 0300H;
  2075. EN_UPDATE = 0400H;
  2076. EN_ERRSPACE = 0500H;
  2077. EN_MAXTEXT = 0501H;
  2078. EN_HSCROLL = 0601H;
  2079. EN_VSCROLL = 0602H;
  2080. EM_GETSEL = WM_USER+0;
  2081. EM_SETSEL = WM_USER+1;
  2082. EM_GETRECT = WM_USER+2;
  2083. EM_SETRECT = WM_USER+3;
  2084. EM_SETRECTNP = WM_USER+4;
  2085. EM_SCROLL = WM_USER+5;
  2086. EM_LINESCROLL = WM_USER+6;
  2087. EM_GETMODIFY = WM_USER+8;
  2088. EM_SETMODIFY = WM_USER+9;
  2089. EM_GETLINECOUNT = WM_USER+10;
  2090. EM_LINEINDEX = WM_USER+11;
  2091. EM_SETHANDLE = WM_USER+12;
  2092. EM_GETHANDLE = WM_USER+13;
  2093. EM_GETTHUMB = WM_USER+14;
  2094. EM_LINELENGTH = WM_USER+17;
  2095. EM_REPLACESEL = WM_USER+18;
  2096. EM_SETFONT = WM_USER+19;
  2097. EM_GETLINE = WM_USER+20;
  2098. EM_LIMITTEXT = WM_USER+21;
  2099. EM_CANUNDO = WM_USER+22;
  2100. EM_UNDO = WM_USER+23;
  2101. EM_FMTLINES = WM_USER+24;
  2102. EM_LINEFROMCHAR = WM_USER+25;
  2103. EM_SETWORDBREAK = WM_USER+26;
  2104. EM_SETTABSTOPS = WM_USER+27;
  2105. EM_SETPASSWORDCHAR = WM_USER+28;
  2106. EM_EMPTYUNDOBUFFER = WM_USER+29;
  2107. EM_MSGMAX = WM_USER+30;
  2108. BS_PUSHBUTTON = 00H;
  2109. BS_DEFPUSHBUTTON = 01H;
  2110. BS_CHECKBOX = 02H;
  2111. BS_AUTOCHECKBOX = 03H;
  2112. BS_RADIOBUTTON = 04H;
  2113. BS_3STATE = 05H;
  2114. BS_AUTO3STATE = 06H;
  2115. BS_GROUPBOX = 07H;
  2116. BS_USERBUTTON = 08H;
  2117. BS_AUTORADIOBUTTON = 09H;
  2118. BS_PUSHBOX = 0AH;
  2119. BS_OWNERDRAW = 0BH;
  2120. BS_LEFTTEXT = 020H;
  2121. BN_CLICKED = 0;
  2122. BN_PAINT = 1;
  2123. BN_HILITE = 2;
  2124. BN_UNHILITE = 3;
  2125. BN_DISABLE = 4;
  2126. BN_DOUBLECLICKED = 5;
  2127. BM_GETCHECK = WM_USER+0;
  2128. BM_SETCHECK = WM_USER+1;
  2129. BM_GETSTATE = WM_USER+2;
  2130. BM_SETSTATE = WM_USER+3;
  2131. BM_SETSTYLE = WM_USER+4;
  2132. SS_LEFT = 00H;
  2133. SS_CENTER = 01H;
  2134. SS_RIGHT = 02H;
  2135. SS_ICON = 03H;
  2136. SS_BLACKRECT = 04H;
  2137. SS_GRAYRECT = 05H;
  2138. SS_WHITERECT = 06H;
  2139. SS_BLACKFRAME = 07H;
  2140. SS_GRAYFRAME = 08H;
  2141. SS_WHITEFRAME = 09H;
  2142. SS_USERITEM = 0AH;
  2143. SS_SIMPLE = 0BH;
  2144. SS_LEFTNOWORDWRAP = 0CH;
  2145. SS_NOPREFIX = 080H;
  2146. PROCEDURE IsDialogMessage(_:HWND; VAR _:MSG) : BOOL;
  2147. PROCEDURE MapDialogRect(_:HWND; VAR _:RECT);
  2148. PROCEDURE DlgDirList(_:HWND; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; _:CARDINAL) : INTEGER;
  2149. PROCEDURE DlgDirSelect(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : BOOL;
  2150. PROCEDURE DlgDirListComboBox(_:HWND; _:ARRAY OF CHAR; _:INTEGER; _:INTEGER; _:CARDINAL) : INTEGER;
  2151. PROCEDURE DlgDirSelectComboBox(_:HWND; _:ARRAY OF CHAR; _:INTEGER) : BOOL;
  2152. CONST
  2153. DS_ABSALIGN = 01H;
  2154. DS_SYSMODAL = 02H;
  2155. DS_LOCALEDIT = 020H;
  2156. DS_SETFONT = 040H;
  2157. DS_MODALFRAME = 080H;
  2158. DS_NOIDLEMSG = 0100H;
  2159. DM_GETDEFID = WM_USER+0;
  2160. DM_SETDEFID = WM_USER+1;
  2161. DC_HASDEFID = 0534BH;
  2162. DLGC_WANTARROWS = 01H;
  2163. DLGC_WANTTAB = 02H;
  2164. DLGC_WANTALLKEYS = 04H;
  2165. DLGC_WANTMESSAGE = 04H;
  2166. DLGC_HASSETSEL = 08H;
  2167. DLGC_DEFPUSHBUTTON = 010H;
  2168. DLGC_UNDEFPUSHBUTTON = 020H;
  2169. DLGC_RADIOBUTTON = 040H;
  2170. DLGC_WANTCHARS = 080H;
  2171. DLGC_STATIC = 0100H;
  2172. DLGC_BUTTON = 02000H;
  2173. LB_CTLCODE = 0;
  2174. LB_OKAY = 0;
  2175. LB_ERR = -1;
  2176. LB_ERRSPACE = -2;
  2177. LBN_ERRSPACE = -2;
  2178. LBN_SELCHANGE = 1;
  2179. LBN_DBLCLK = 2;
  2180. LBN_SELCANCEL = 3;
  2181. LBN_SETFOCUS = 4;
  2182. LBN_KILLFOCUS = 5;
  2183. LB_ADDSTRING = WM_USER+1;
  2184. LB_INSERTSTRING = WM_USER+2;
  2185. LB_DELETESTRING = WM_USER+3;
  2186. LB_RESETCONTENT = WM_USER+5;
  2187. LB_SETSEL = WM_USER+6;
  2188. LB_SETCURSEL = WM_USER+7;
  2189. LB_GETSEL = WM_USER+8;
  2190. LB_GETCURSEL = WM_USER+9;
  2191. LB_GETTEXT = WM_USER+10;
  2192. LB_GETTEXTLEN = WM_USER+11;
  2193. LB_GETCOUNT = WM_USER+12;
  2194. LB_SELECTSTRING = WM_USER+13;
  2195. LB_DIR = WM_USER+14;
  2196. LB_GETTOPINDEX = WM_USER+15;
  2197. LB_FINDSTRING = WM_USER+16;
  2198. LB_GETSELCOUNT = WM_USER+17;
  2199. LB_GETSELITEMS = WM_USER+18;
  2200. LB_SETTABSTOPS = WM_USER+19;
  2201. LB_GETHORIZONTALEXTENT = WM_USER+20;
  2202. LB_SETHORIZONTALEXTENT = WM_USER+21;
  2203. LB_SETCOLUMNWIDTH = WM_USER+22;
  2204. LB_SETTOPINDEX = WM_USER+24;
  2205. LB_GETITEMRECT = WM_USER+25;
  2206. LB_GETITEMDATA = WM_USER+26;
  2207. LB_SETITEMDATA = WM_USER+27;
  2208. LB_SELITEMRANGE = WM_USER+28;
  2209. LB_MSGMAX = WM_USER+33;
  2210. LBS_NOTIFY = 01H;
  2211. LBS_SORT = 02H;
  2212. LBS_NOREDRAW = 04H;
  2213. LBS_MULTIPLESEL = 08H;
  2214. LBS_OWNERDRAWFIXED = 010H;
  2215. LBS_OWNERDRAWVARIABLE = 020H;
  2216. LBS_HASSTRINGS = 040H;
  2217. LBS_USETABSTOPS = 080H;
  2218. LBS_NOINTEGRALHEIGHT = 0100H;
  2219. LBS_MULTICOLUMN = 0200H;
  2220. LBS_WANTKEYBOARDINPUT = 0400H;
  2221. LBS_EXTENDEDSEL = 0800H;
  2222. LBS_STANDARD = 0A00003H; (*LBS_NOTIFY OR LBS_SORT OR WS_VSCROLL OR WS_BORDER;*)
  2223. CB_OKAY = 0;
  2224. CB_ERR = -1;
  2225. CB_ERRSPACE = -2;
  2226. CBN_ERRSPACE = -1;
  2227. CBN_SELCHANGE = 1;
  2228. CBN_DBLCLK = 2;
  2229. CBN_SETFOCUS = 3;
  2230. CBN_KILLFOCUS = 4;
  2231. CBN_EDITCHANGE = 5;
  2232. CBN_EDITUPDATE = 6;
  2233. CBN_DROPDOWN = 7;
  2234. CBS_SIMPLE = 01H;
  2235. CBS_DROPDOWN = 02H;
  2236. CBS_DROPDOWNLIST = 03H;
  2237. CBS_OWNERDRAWFIXED = 010H;
  2238. CBS_OWNERDRAWVARIABLE = 020H;
  2239. CBS_AUTOHSCROLL = 040H;
  2240. CBS_OEMCONVERT = 080H;
  2241. CBS_SORT = 0100H;
  2242. CBS_HASSTRINGS = 0200H;
  2243. CBS_NOINTEGRALHEIGHT = 0400H;
  2244. CB_GETEDITSEL = WM_USER+0;
  2245. CB_LIMITTEXT = WM_USER+1;
  2246. CB_SETEDITSEL = WM_USER+2;
  2247. CB_ADDSTRING = WM_USER+3;
  2248. CB_DELETESTRING = WM_USER+4;
  2249. CB_DIR = WM_USER+5;
  2250. CB_GETCOUNT = WM_USER+6;
  2251. CB_GETCURSEL = WM_USER+7;
  2252. CB_GETLBTEXT = WM_USER+8;
  2253. CB_GETLBTEXTLEN = WM_USER+9;
  2254. CB_INSERTSTRING = WM_USER+10;
  2255. CB_RESETCONTENT = WM_USER+11;
  2256. CB_FINDSTRING = WM_USER+12;
  2257. CB_SELECTSTRING = WM_USER+13;
  2258. CB_SETCURSEL = WM_USER+14;
  2259. CB_SHOWDROPDOWN = WM_USER+15;
  2260. CB_GETITEMDATA = WM_USER+16;
  2261. CB_SETITEMDATA = WM_USER+17;
  2262. CB_GETDROPPEDCONTROLRECT = WM_USER+18;
  2263. CB_MSGMAX = WM_USER+19;
  2264. SBS_HORZ = 00H;
  2265. SBS_VERT = 01H;
  2266. SBS_TOPALIGN = 02H;
  2267. SBS_LEFTALIGN = 02H;
  2268. SBS_BOTTOMALIGN = 04H;
  2269. SBS_RIGHTALIGN = 04H;
  2270. SBS_SIZEBOXTOPLEFTALIGN = 02H;
  2271. SBS_SIZEBOXBOTTOMRIGHTALIGN = 04H;
  2272. SBS_SIZEBOX = 08H;
  2273. PROCEDURE OpenSound() : INTEGER;
  2274. PROCEDURE CloseSound();
  2275. PROCEDURE SetVoiceQueueSize(_:INTEGER; _:INTEGER) : INTEGER;
  2276. PROCEDURE SetVoiceNote(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  2277. PROCEDURE SetVoiceAccent(_:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  2278. PROCEDURE SetVoiceEnvelope(_:INTEGER; _:INTEGER; _:INTEGER) : INTEGER;
  2279. PROCEDURE SetSoundNoise(_:INTEGER; _:INTEGER) : INTEGER;
  2280. PROCEDURE SetVoiceSound(_:INTEGER; _:LONGINT; _:INTEGER) : INTEGER;
  2281. PROCEDURE StartSound() : INTEGER;
  2282. PROCEDURE StopSound() : INTEGER;
  2283. PROCEDURE WaitSoundState(_:INTEGER) : INTEGER;
  2284. PROCEDURE SyncAllVoices() : INTEGER;
  2285. PROCEDURE CountVoiceNotes(_:INTEGER) : INTEGER;
  2286. PROCEDURE GetThresholdEvent() : LPINT;
  2287. PROCEDURE GetThresholdStatus() : INTEGER;
  2288. PROCEDURE SetVoiceThreshold(_:INTEGER; _:INTEGER) : INTEGER;
  2289. CONST
  2290. S_QUEUEEMPTY = 0;
  2291. S_THRESHOLD = 1;
  2292. S_ALLTHRESHOLD = 2;
  2293. S_NORMAL = 0;
  2294. S_LEGATO = 1;
  2295. S_STACCATO = 2;
  2296. S_PERIOD512 = 0;
  2297. S_PERIOD1024 = 1;
  2298. S_PERIOD2048 = 2;
  2299. S_PERIODVOICE = 3;
  2300. S_WHITE512 = 4;
  2301. S_WHITE1024 = 5;
  2302. S_WHITE2048 = 6;
  2303. S_WHITEVOICE = 7;
  2304. S_SERDVNA = -1;
  2305. S_SEROFM = -2;
  2306. S_SERMACT = -3;
  2307. S_SERQFUL = -4;
  2308. S_SERBDNT = -5;
  2309. S_SERDLN = -6;
  2310. S_SERDCC = -7;
  2311. S_SERDTP = -8;
  2312. S_SERDVL = -9;
  2313. S_SERDMD = -10;
  2314. S_SERDSH = -11;
  2315. S_SERDPT = -12;
  2316. S_SERDFQ = -13;
  2317. S_SERDDR = -14;
  2318. S_SERDSR = -15;
  2319. S_SERDST = -16;
  2320. NOPARITY = 0;
  2321. ODDPARITY = 1;
  2322. EVENPARITY = 2;
  2323. MARKPARITY = 3;
  2324. SPACEPARITY = 4;
  2325. ONESTOPBIT = 0;
  2326. ONE5STOPBITS = 1;
  2327. TWOSTOPBITS = 2;
  2328. IGNORE = 0;
  2329. INFINITE = 0FFFFH;
  2330. CE_RXOVER = 01H;
  2331. CE_OVERRUN = 02H;
  2332. CE_RXPARITY = 04H;
  2333. CE_FRAME = 08H;
  2334. CE_BREAK = 010H;
  2335. CE_CTSTO = 020H;
  2336. CE_DSRTO = 040H;
  2337. CE_RLSDTO = 080H;
  2338. CE_TXFULL = 0100H;
  2339. CE_PTO = 0200H;
  2340. CE_IOE = 0400H;
  2341. CE_DNS = 0800H;
  2342. CE_OOP = 01000H;
  2343. CE_MODE = 08000H;
  2344. IE_BADID = -1;
  2345. IE_OPEN = -2;
  2346. IE_NOPEN = -3;
  2347. IE_MEMORY = -4;
  2348. IE_DEFAULT = -5;
  2349. IE_HARDWARE = -10;
  2350. IE_BYTESIZE = -11;
  2351. IE_BAUDRATE = -12;
  2352. EV_RXCHAR = 01H;
  2353. EV_RXFLAG = 02H;
  2354. EV_TXEMPTY = 04H;
  2355. EV_CTS = 08H;
  2356. EV_DSR = 010H;
  2357. EV_RLSD = 020H;
  2358. EV_BREAK = 040H;
  2359. EV_ERR = 080H;
  2360. EV_RING = 0100H;
  2361. EV_PERR = 0200H;
  2362. SETXOFF = 1;
  2363. SETXON = 2;
  2364. SETRTS = 3;
  2365. CLRRTS = 4;
  2366. SETDTR = 5;
  2367. CLRDTR = 6;
  2368. RESETDEV = 7;
  2369. LPTx = 080H;
  2370. TYPE
  2371. DCBBits = (fBinary,fRtsDisable,fPartiy,fOutxCtsFlow,fOutxDsrFlow,
  2372. fDummy6,fDummy7,fDtrDisable,fOutX,fInX,fPeChar,fNull,
  2373. fChEvt,fDtrFlow,fRtsFlow,fDummy15);
  2374. DCBBitSet = SET OF DCBBits;
  2375. DCB = RECORD
  2376. Id : SHORTCARD;
  2377. BaudRate : CARDINAL;
  2378. ByteSize : SHORTCARD;
  2379. Parity : SHORTCARD;
  2380. StopBits : SHORTCARD;
  2381. RlsTimeout : CARDINAL;
  2382. CtsTimeout : CARDINAL;
  2383. DsrTimeout : CARDINAL;
  2384. fBits : DCBBitSet;
  2385. XonChar : CHAR;
  2386. XoffChar : CHAR;
  2387. XonLim : CARDINAL;
  2388. XoffLim : CARDINAL;
  2389. PeChar : CHAR;
  2390. EofChar : CHAR;
  2391. EvtChar : CHAR;
  2392. TxDelay : CARDINAL;
  2393. END; (*DCB*)
  2394. COMSTAT = RECORD
  2395. fCtsHold : SHORTCARD; (* bit fields: fCtsHold:1, fDsrHold:1, fRlsdHold:1, fXoffHold:1, fXoffSent:1, fEof:1, fTxim:1 *)
  2396. cbInQue : CARDINAL;
  2397. cbOutQue : CARDINAL;
  2398. END;
  2399. PROCEDURE OpenComm(_:ARRAY OF CHAR; _:CARDINAL; _:CARDINAL) : INTEGER;
  2400. PROCEDURE SetCommState(VAR _:DCB) : INTEGER;
  2401. PROCEDURE GetCommState(_:INTEGER; VAR _:DCB) : INTEGER;
  2402. PROCEDURE ReadComm(_:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  2403. PROCEDURE UngetCommChar(_:INTEGER; _:CHAR) : INTEGER;
  2404. PROCEDURE WriteComm(_:INTEGER; _:ARRAY OF CHAR; _:INTEGER) : INTEGER;
  2405. PROCEDURE CloseComm(_:INTEGER) : INTEGER;
  2406. PROCEDURE GetCommError(_:INTEGER; VAR _:COMSTAT) : INTEGER;
  2407. PROCEDURE BuildCommDCB(_:ARRAY OF CHAR; VAR _:DCB) : INTEGER;
  2408. PROCEDURE TransmitCommChar(_:INTEGER; _:CHAR) : INTEGER;
  2409. PROCEDURE SetCommEventMask(_:INTEGER; _:CARDINAL) : ADDRESS;
  2410. PROCEDURE GetCommEventMask(_:INTEGER; _:INTEGER) : CARDINAL;
  2411. PROCEDURE SetCommBreak(_:INTEGER) : INTEGER;
  2412. PROCEDURE ClearCommBreak(_:INTEGER) : INTEGER;
  2413. PROCEDURE FlushComm(_:INTEGER; _:INTEGER) : INTEGER;
  2414. PROCEDURE EscapeCommFunction(_:INTEGER; _:INTEGER) : INTEGER;
  2415. TYPE
  2416. MDICREATESTRUCT = RECORD
  2417. szClass : LPSTR;
  2418. szTitle : LPSTR;
  2419. hOwner : CARDINAL;
  2420. x : INTEGER;
  2421. y : INTEGER;
  2422. cx : INTEGER;
  2423. cy : INTEGER;
  2424. style : LONGINT;
  2425. lParam : LONGINT;
  2426. END;
  2427. LPMDICREATESTRUCT = POINTER TO MDICREATESTRUCT;
  2428. CLIENTCREATESTRUCT = RECORD
  2429. hWindowMenu : CARDINAL;
  2430. idFirstChild : CARDINAL;
  2431. END;
  2432. LPCLIENTCREATESTRUCT = POINTER TO CLIENTCREATESTRUCT;
  2433. PROCEDURE DefFrameProc(_:CARDINAL; _:CARDINAL; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  2434. PROCEDURE DefMDIChildProc(_:CARDINAL; _:CARDINAL; _:CARDINAL; _:LONGINT) : LONGINT;
  2435. PROCEDURE TranslateMDISysAccel(_:CARDINAL; VAR _:MSG) : INTEGER;
  2436. PROCEDURE ArrangeIconicWindows(_:CARDINAL) : CARDINAL;
  2437. CONST
  2438. HELP_CONTEXT = 01H;
  2439. HELP_QUIT = 02H;
  2440. HELP_INDEX = 03H;
  2441. HELP_HELPONHELP = 04H;
  2442. HELP_SETINDEX = 05H;
  2443. HELP_KEY = 0101H;
  2444. HELP_MULTIKEY = 0201H;
  2445. PROCEDURE WinHelp(hwndMain : CARDINAL; lpszHelp : ARRAY OF CHAR; usCommand : CARDINAL; ulData : LONGCARD) : INTEGER;
  2446. TYPE
  2447. MULTIKEYHELP = RECORD
  2448. mkSize : CARDINAL;
  2449. mkKeylist : SHORTCARD;
  2450. szKeyphrase : ARRAY [0..0] OF SHORTCARD;
  2451. END;
  2452. (*# save,call(c_conv=>off,reg_param=>(),near_call=>off),name(prefix=>none)*)
  2453. PROCEDURE ProfInsChk() : INTEGER;
  2454. PROCEDURE ProfSetup(_:INTEGER; _:INTEGER);
  2455. PROCEDURE ProfSampRate(_:INTEGER; _:INTEGER);
  2456. PROCEDURE ProfStart();
  2457. PROCEDURE ProfStop();
  2458. PROCEDURE ProfClear();
  2459. PROCEDURE ProfFlush();
  2460. PROCEDURE ProfFinish();
  2461. (*# restore *)
  2462. PROCEDURE GlobalDosAlloc(_:LONGCARD):LONGCARD;
  2463. PROCEDURE GlobalDosFree(_:CARDINAL):CARDINAL;
  2464. PROCEDURE FatalAppExit(_:CARDINAL;_:ARRAY OF CHAR);
  2465. PROCEDURE GetDOSEnvironment():FarADDRESS;
  2466. CONST
  2467. CCHDEVICENAME = 32;
  2468. TYPE
  2469. DEVMODE = RECORD
  2470. dmDeviceName : ARRAY[0..CCHDEVICENAME-1] OF CHAR;
  2471. dmSpecVersion : CARDINAL;
  2472. dmDriverVersion : CARDINAL;
  2473. dmSize : CARDINAL;
  2474. dmDriverExtra : CARDINAL;
  2475. dmFields : LONGCARD;
  2476. dmOrientation : SHORTCARD;
  2477. dmPaperSize : SHORTCARD;
  2478. dmPaperLength : SHORTCARD;
  2479. dmPaperWidth : SHORTCARD;
  2480. dmScale : SHORTCARD;
  2481. dmCopies : SHORTCARD;
  2482. dmDefaultSource : SHORTCARD;
  2483. dmPrintQuality : SHORTCARD;
  2484. dmColor : SHORTCARD;
  2485. dmDuplex : SHORTCARD;
  2486. END; (*DEVMODE*)
  2487. PDEVMODE = POINTER TO DEVMODE;
  2488. PROCEDURE DefineHandleTable(_:CARDINAL):BOOL;
  2489. PROCEDURE DeviceCapabilities(_:ARRAY OF CHAR;_:ARRAY OF CHAR;_:CARDINAL;_:ARRAY OF CHAR;VAR _:DEVMODE):LONGCARD;
  2490. PROCEDURE DeviceMode(_:HWND;_:HANDLE;_:ARRAY OF CHAR;_:ARRAY OF CHAR);
  2491. PROCEDURE ExtDeviceMode(_:HWND;_:HANDLE;VAR _:DEVMODE;_:ARRAY OF CHAR;_:ARRAY OF CHAR;VAR _:DEVMODE;_:ARRAY OF CHAR;_:CARDINAL):INTEGER;
  2492. (* extras *)
  2493. PROCEDURE WAITEVENT( c:CARDINAL);
  2494. PROCEDURE INITAPP( c:CARDINAL):CARDINAL;
  2495. PROCEDURE _exit( c:CARDINAL);
  2496. VAR
  2497. (* The following are for use as VAR parameters when NULL required *)
  2498. NullVar[0:0] : ARRAY[0..0] OF BYTE;
  2499. NullStr[0:0] : ARRAY[0..0] OF CHAR;
  2500. NullRect[0:0] : RECT;
  2501. (* Inline utility procedures *)
  2502. (*# restore *)
  2503. (*# save,call(inline=>on,seg_name=>INLINE,near_call=>off) *)
  2504. INLINE PROCEDURE GlobalDiscard(h:HANDLE):HANDLE;
  2505. BEGIN
  2506. RETURN GlobalReAlloc(h,0,GMEM_MOVEABLE);
  2507. END GlobalDiscard;
  2508. INLINE PROCEDURE LockData(dummy:WORD):HANDLE;
  2509. BEGIN
  2510. RETURN LockSegment(0FFFFH);
  2511. END LockData;
  2512. INLINE PROCEDURE UnlockData(dummy:WORD):HANDLE;
  2513. BEGIN
  2514. RETURN UnlockSegment(0FFFFH);
  2515. END UnlockData;
  2516. CONST
  2517. (*%T _fcall *) _Ret = 0CBH; (*%E *)
  2518. (*%F _fcall *) _Ret = 0C3H; (*%E *)
  2519. TYPE
  2520. _C1 = ARRAY[0..0] OF BYTE;
  2521. _C2 = ARRAY[0..1] OF BYTE;
  2522. _C3 = ARRAY[0..2] OF BYTE;
  2523. _C4 = ARRAY[0..3] OF BYTE;
  2524. _C5 = ARRAY[0..4] OF BYTE;
  2525. _C7 = ARRAY[0..6] OF BYTE;
  2526. (*# call(reg_param=>(ax,dx),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *)
  2527. INLINE PROCEDURE MAKELONG (lo,hi : WORD):LONGWORD = _C1(_Ret);
  2528. (*# call(reg_param=>(ax,dx),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *)
  2529. INLINE PROCEDURE LOWORD(lw:LONGWORD):WORD = _C1(_Ret);
  2530. INLINE PROCEDURE LOCARD(lw:LONGWORD):CARDINAL = _C1(_Ret);
  2531. INLINE PROCEDURE LOINT (lw:LONGWORD):INTEGER = _C1(_Ret);
  2532. (*# call(reg_param=>(dx,ax),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *)
  2533. INLINE PROCEDURE HIWORD(lw:LONGWORD):WORD = _C1(_Ret);
  2534. INLINE PROCEDURE HICARD(lw:LONGWORD):CARDINAL = _C1(_Ret);
  2535. INLINE PROCEDURE HIINT (lw:LONGWORD):INTEGER = _C1(_Ret);
  2536. (*# call(reg_param=>(ax),reg_saved=>(bx,cx,dx,si,di,es,ds,st1,st2)) *)
  2537. INLINE PROCEDURE LOBYTE(lw:WORD):BYTE = _C1(_Ret);
  2538. (*# call(reg_param=>(ax),reg_saved=>(bx,cx,dx,si,di,es,ds,st1,st2)) *)
  2539. INLINE PROCEDURE HIBYTE(lw:WORD):BYTE = _C3(86H,0C4H (* xchg al,ah *),_Ret);
  2540. (*# call(reg_param=>(ax,bx,dx),reg_saved=>(cx,si,di,es,ds,st1,st2)) *)
  2541. INLINE PROCEDURE RGB(r,g,b:BYTE):LONGWORD = _C5(88H,0DCH (* mov ah,bl *),0B6H,0 (* mov dh,0 *),_Ret);
  2542. (*# call(reg_param=>(ax,bx,dx),reg_saved=>(cx,si,di,es,ds,st1,st2)) *)
  2543. INLINE PROCEDURE PALETTERGB(r,g,b:BYTE):LONGWORD = _C5(88H,0DCH (* mov ah,bl *),0B6H,2 (* mov dh,2 *),_Ret);
  2544. (*# call(reg_param=>(ax),reg_saved=>(bx,cx,si,di,es,ds,st1,st2)) *)
  2545. INLINE PROCEDURE PALETTEINDEX(i:WORD):LONGWORD = _C4(0BAH,0,1 (* mov dx,100H *),_Ret);
  2546. (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *)
  2547. INLINE PROCEDURE GetRValue(rgb:LONGWORD):BYTE = _C1(_Ret);
  2548. (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *)
  2549. INLINE PROCEDURE GetGValue(rgb:LONGWORD):BYTE = _C3(86H,0C4H (* xchg ah,al *),_Ret);
  2550. (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,es,ds,st1,st2)) *)
  2551. INLINE PROCEDURE GetBValue(rgb:LONGWORD):BYTE = _C3(88H,0DCH (* mov ah,bl *),_Ret);
  2552. (*# call(reg_param=>(ax,bx),reg_saved=>(cx,dx,si,di,ds,es,st0,st1,st2))*)
  2553. INLINE PROCEDURE Min(a,b:WORD):WORD=_C7(03BH,0C3H,072H,002H,08BH,0C3H,_Ret);
  2554. INLINE PROCEDURE Max(a,b:WORD):WORD=_C7(03BH,0C3H,077H,002H,08BH,0C3H,_Ret);
  2555. (*# restore *)
  2556. END Windows.
  2557.