wintypes.inc 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932
  1. type
  2. Bool = WordBool;
  3. UINT = Word;
  4. LONG = LongInt;
  5. WPARAM = UINT;
  6. LPARAM = LONG;
  7. LRESULT = LONG;
  8. { The Win16 C headers define the P-prefixed types - PSTR, etc. as near pointers.
  9. Borland Pascal 7 defines them as far pointers (in other words, the same as the
  10. LP-prefixed type - LPSTR) We define them as the default pointer type for the
  11. current memory model. This means we'll be BP7 compatible in the large memory
  12. model (which is the only memory model supported by BP7).
  13. Also, using memory models other than 'large' under win16 is somewhat nasty and
  14. is better to be avoided. }
  15. PSTR = ^AnsiChar;
  16. NPSTR = ^AnsiChar; near;
  17. // LPSTR = ^AnsiChar; far;
  18. LPCSTR = ^AnsiChar; far;
  19. { PBYTE is already defined in system }
  20. LPBYTE = ^Byte; far;
  21. PINT = ^SmallInt;
  22. LPINT = ^SmallInt; far;
  23. { PWORD is already defined in system }
  24. LPWORD = ^Word; far;
  25. PUINT = ^UINT;
  26. LPUINT = ^UINT; far;
  27. PLONG = ^LONG;
  28. LPLONG = ^LONG; far;
  29. { PDWORD is already defined in system }
  30. LPDWORD = ^DWORD; far;
  31. PBOOL = ^BOOL;
  32. LPBOOL = ^BOOL; far;
  33. LPVOID = FarPointer;
  34. FARPROC = FarPointer;
  35. TFarProc = FARPROC;
  36. HANDLE = THandle;
  37. PHANDLE = ^THandle;
  38. SPHANDLE = ^THandle; near;
  39. LPHANDLE = ^THandle; far;
  40. // HGLOBAL = THandle;
  41. HLOCAL = THandle;
  42. TGlobalHandle = THandle;
  43. TLocalHandle = THandle;
  44. ATOM = UINT;
  45. TAtom = ATOM;
  46. HINST = THandle; { instead of HINSTANCE, to avoid conflict with var hInstance }
  47. // HMODULE = HINST;
  48. const
  49. { GetWinFlags result mask values }
  50. WF_PMODE = $0001;
  51. WF_CPU286 = $0002;
  52. WF_CPU386 = $0004;
  53. WF_CPU486 = $0008;
  54. WF_STANDARD = $0010;
  55. WF_WIN286 = $0010;
  56. WF_ENHANCED = $0020;
  57. WF_WIN386 = $0020;
  58. WF_CPU086 = $0040;
  59. WF_CPU186 = $0080;
  60. WF_LARGEFRAME = $0100;
  61. WF_SMALLFRAME = $0200;
  62. WF_80x87 = $0400;
  63. WF_PAGING = $0800;
  64. WF_WLO = $8000;
  65. { ExitWindows values }
  66. EW_RESTARTWINDOWS = $42;
  67. { SetErrorMode() constants }
  68. SEM_FAILCRITICALERRORS = $0001;
  69. SEM_NOGPFAULTERRORBOX = $0002;
  70. SEM_NOOPENFILEERRORBOX = $8000;
  71. type
  72. LPCATCHBUF = ^CATCHBUF; far;
  73. CATCHBUF = array [0..8] of SmallInt;
  74. PCatchBuf = ^TCatchBuf;
  75. TCatchBuf = CATCHBUF;
  76. const
  77. HINSTANCE_ERROR = HINST(32);
  78. { Windows Exit Procedure flag values }
  79. WEP_SYSTEM_EXIT = 1;
  80. WEP_FREE_DLL = 0;
  81. type
  82. LPSEGINFO = ^SEGINFO; far;
  83. SEGINFO = record
  84. offSegment: UINT;
  85. cbSegment: UINT;
  86. flags: UINT;
  87. cbAlloc: UINT;
  88. h: HGLOBAL;
  89. alignShift: UINT;
  90. reserved: array [0..1] of UINT;
  91. end;
  92. PSegInfo = ^TSegInfo;
  93. TSegInfo = SEGINFO;
  94. HTASK = THandle;
  95. const
  96. { Global Memory Flags }
  97. GMEM_FIXED = $0000;
  98. GMEM_MOVEABLE = $0002;
  99. GMEM_NOCOMPACT = $0010;
  100. GMEM_NODISCARD = $0020;
  101. GMEM_ZEROINIT = $0040;
  102. GMEM_MODIFY = $0080;
  103. GMEM_DISCARDABLE = $0100;
  104. GMEM_NOT_BANKED = $1000;
  105. GMEM_SHARE = $2000;
  106. GMEM_DDESHARE = $2000;
  107. GMEM_NOTIFY = $4000;
  108. GMEM_LOWER = GMEM_NOT_BANKED;
  109. GHND = GMEM_MOVEABLE or GMEM_ZEROINIT;
  110. GPTR = GMEM_FIXED or GMEM_ZEROINIT;
  111. { GlobalFlags return flags (in addition to GMEM_DISCARDABLE) }
  112. GMEM_DISCARDED = $4000;
  113. GMEM_LOCKCOUNT = $00FF;
  114. { Low system memory notification message }
  115. WM_COMPACTING = $0041;
  116. type
  117. GNOTIFYPROC = function(hGlbl: HGLOBAL): BOOL; far;
  118. const
  119. { Local Memory Flags }
  120. LMEM_FIXED = $0000;
  121. LMEM_MOVEABLE = $0002;
  122. LMEM_NOCOMPACT = $0010;
  123. LMEM_NODISCARD = $0020;
  124. LMEM_ZEROINIT = $0040;
  125. LMEM_MODIFY = $0080;
  126. LMEM_DISCARDABLE = $0F00;
  127. LHND = LMEM_MOVEABLE or LMEM_ZEROINIT;
  128. LPTR = LMEM_FIXED or LMEM_ZEROINIT;
  129. NONZEROLHND = LMEM_MOVEABLE;
  130. NONZEROLPTR = LMEM_FIXED;
  131. { LocalFlags return flags (in addition to LMEM_DISCARDABLE) }
  132. LMEM_DISCARDED = $4000;
  133. LMEM_LOCKCOUNT = $00FF;
  134. { File I/O }
  135. type
  136. HFILE = SmallInt;
  137. const
  138. HFILE_ERROR = HFILE(-1);
  139. type
  140. { OpenFile() Structure }
  141. POFSTRUCT = ^OFSTRUCT;
  142. NPOFSTRUCT = ^OFSTRUCT; near;
  143. LPOFSTRUCT = ^OFSTRUCT; far;
  144. OFSTRUCT = record
  145. cBytes: BYTE;
  146. fFixedDisk: BYTE;
  147. nErrCode: UINT;
  148. reserved: array [0..3] of BYTE;
  149. szPathName: array [0..127] of AnsiChar;
  150. end;
  151. TOFStruct = OFSTRUCT;
  152. const
  153. { OpenFile() Flags }
  154. OF_READ = $0000;
  155. OF_WRITE = $0001;
  156. OF_READWRITE = $0002;
  157. OF_SHARE_COMPAT = $0000;
  158. OF_SHARE_EXCLUSIVE = $0010;
  159. OF_SHARE_DENY_WRITE = $0020;
  160. OF_SHARE_DENY_READ = $0030;
  161. OF_SHARE_DENY_NONE = $0040;
  162. OF_PARSE = $0100;
  163. OF_DELETE = $0200;
  164. OF_VERIFY = $0400; { Used with OF_REOPEN }
  165. OF_SEARCH = $0400; { Used without OF_REOPEN }
  166. OF_CANCEL = $0800;
  167. OF_CREATE = $1000;
  168. OF_PROMPT = $2000;
  169. OF_EXIST = $4000;
  170. OF_REOPEN = $8000;
  171. { _lopen() flags }
  172. _READ = 0;
  173. _WRITE = 1;
  174. READ_WRITE = 2;
  175. { _llseek origin values }
  176. SEEK_SET = 0;
  177. SEEK_CUR = 1;
  178. SEEK_END = 2;
  179. { GetTempFileName() Flags }
  180. TF_FORCEDRIVE = BYTE($80);
  181. { GetDriveType return values }
  182. DRIVE_REMOVABLE = 2;
  183. DRIVE_FIXED = 3;
  184. DRIVE_REMOTE = 4;
  185. { Network support }
  186. { Errors }
  187. WN_SUCCESS = $0000;
  188. WN_NOT_SUPPORTED = $0001;
  189. WN_NET_ERROR = $0002;
  190. WN_MORE_DATA = $0003;
  191. WN_BAD_POINTER = $0004;
  192. WN_BAD_VALUE = $0005;
  193. WN_BAD_PASSWORD = $0006;
  194. WN_ACCESS_DENIED = $0007;
  195. WN_FUNCTION_BUSY = $0008;
  196. WN_WINDOWS_ERROR = $0009;
  197. WN_BAD_USER = $000A;
  198. WN_OUT_OF_MEMORY = $000B;
  199. WN_CANCEL = $000C;
  200. WN_CONTINUE = $000D;
  201. { Connection errors }
  202. WN_NOT_CONNECTED = $0030;
  203. WN_OPEN_FILES = $0031;
  204. WN_BAD_NETNAME = $0032;
  205. WN_BAD_LOCALNAME = $0033;
  206. WN_ALREADY_CONNECTED = $0034;
  207. WN_DEVICE_ERROR = $0035;
  208. WN_CONNECTION_CLOSED = $0036;
  209. type
  210. { Resource Management }
  211. HRSRC = THandle;
  212. RSRCHDLRPROC = function(hMem: HGLOBAL; hInstance: HINST; hResInfo: HRSRC): HGLOBAL;far;
  213. MAKEINTRESOURCE = LPCSTR;
  214. const
  215. { Predefined Resource Types }
  216. RT_CURSOR = MAKEINTRESOURCE(1);
  217. RT_BITMAP = MAKEINTRESOURCE(2);
  218. RT_ICON = MAKEINTRESOURCE(3);
  219. RT_MENU = MAKEINTRESOURCE(4);
  220. RT_DIALOG = MAKEINTRESOURCE(5);
  221. RT_STRING = MAKEINTRESOURCE(6);
  222. RT_FONTDIR = MAKEINTRESOURCE(7);
  223. RT_FONT = MAKEINTRESOURCE(8);
  224. RT_ACCELERATOR = MAKEINTRESOURCE(9);
  225. RT_RCDATA = MAKEINTRESOURCE(10);
  226. RT_GROUP_CURSOR = MAKEINTRESOURCE(12);
  227. RT_GROUP_ICON = MAKEINTRESOURCE(14);
  228. { OEM Resource Ordinal Numbers }
  229. OBM_CLOSE = 32754;
  230. OBM_UPARROW = 32753;
  231. OBM_DNARROW = 32752;
  232. OBM_RGARROW = 32751;
  233. OBM_LFARROW = 32750;
  234. OBM_REDUCE = 32749;
  235. OBM_ZOOM = 32748;
  236. OBM_RESTORE = 32747;
  237. OBM_REDUCED = 32746;
  238. OBM_ZOOMD = 32745;
  239. OBM_RESTORED = 32744;
  240. OBM_UPARROWD = 32743;
  241. OBM_DNARROWD = 32742;
  242. OBM_RGARROWD = 32741;
  243. OBM_LFARROWD = 32740;
  244. OBM_MNARROW = 32739;
  245. OBM_COMBO = 32738;
  246. OBM_OLD_CLOSE = 32767;
  247. OBM_SIZE = 32766;
  248. OBM_OLD_UPARROW = 32765;
  249. OBM_OLD_DNARROW = 32764;
  250. OBM_OLD_RGARROW = 32763;
  251. OBM_OLD_LFARROW = 32762;
  252. OBM_BTSIZE = 32761;
  253. OBM_CHECK = 32760;
  254. OBM_CHECKBOXES = 32759;
  255. OBM_BTNCORNERS = 32758;
  256. OBM_OLD_REDUCE = 32757;
  257. OBM_OLD_ZOOM = 32756;
  258. OBM_OLD_RESTORE = 32755;
  259. OCR_NORMAL = 32512;
  260. OCR_IBEAM = 32513;
  261. OCR_WAIT = 32514;
  262. OCR_CROSS = 32515;
  263. OCR_UP = 32516;
  264. OCR_SIZE = 32640;
  265. OCR_ICON = 32641;
  266. OCR_SIZENWSE = 32642;
  267. OCR_SIZENESW = 32643;
  268. OCR_SIZEWE = 32644;
  269. OCR_SIZENS = 32645;
  270. OCR_SIZEALL = 32646;
  271. OCR_ICOCUR = 32647;
  272. OIC_SAMPLE = 32512;
  273. OIC_HAND = 32513;
  274. OIC_QUES = 32514;
  275. OIC_BANG = 32515;
  276. OIC_NOTE = 32516;
  277. type
  278. { Atom Management }
  279. MAKEINTATOM = LPCSTR;
  280. const
  281. { WIN.INI Support }
  282. WM_WININICHANGE = $001A;
  283. type
  284. { GDI typedefs, structures, and functions }
  285. HDC = THandle;
  286. HGDIOBJ = THandle;
  287. HBITMAP = THandle;
  288. HPEN = THandle;
  289. HBRUSH = THandle;
  290. HRGN = THandle;
  291. HPALETTE = THandle;
  292. HFONT = THandle;
  293. PRECT = ^RECT;
  294. NPRECT = ^RECT; near;
  295. LPRECT = ^RECT; far;
  296. RECT = record
  297. left: SmallInt;
  298. top: SmallInt;
  299. right: SmallInt;
  300. bottom: SmallInt;
  301. end;
  302. TRect = RECT;
  303. PPOINT = ^POINT;
  304. NPPOINT = ^POINT; near;
  305. LPPOINT = ^POINT; far;
  306. POINT = record
  307. x: SmallInt;
  308. y: SmallInt;
  309. end;
  310. TPoint = POINT;
  311. MAKEPOINT = POINT;
  312. { Device Capabilities }
  313. const
  314. { Device Parameters for GetDeviceCaps() }
  315. DRIVERVERSION = 0;
  316. TECHNOLOGY = 2;
  317. HORZSIZE = 4;
  318. VERTSIZE = 6;
  319. HORZRES = 8;
  320. VERTRES = 10;
  321. BITSPIXEL = 12;
  322. PLANES = 14;
  323. NUMBRUSHES = 16;
  324. NUMPENS = 18;
  325. NUMMARKERS = 20;
  326. NUMFONTS = 22;
  327. NUMCOLORS = 24;
  328. PDEVICESIZE = 26;
  329. CURVECAPS = 28;
  330. LINECAPS = 30;
  331. POLYGONALCAPS = 32;
  332. TEXTCAPS = 34;
  333. CLIPCAPS = 36;
  334. RASTERCAPS = 38;
  335. ASPECTX = 40;
  336. ASPECTY = 42;
  337. ASPECTXY = 44;
  338. LOGPIXELSX = 88;
  339. LOGPIXELSY = 90;
  340. SIZEPALETTE = 104;
  341. NUMRESERVED = 106;
  342. COLORRES = 108;
  343. { GetDeviceCaps() return value masks }
  344. { TECHNOLOGY }
  345. DT_PLOTTER = 0;
  346. DT_RASDISPLAY = 1;
  347. DT_RASPRINTER = 2;
  348. DT_RASCAMERA = 3;
  349. DT_CHARSTREAM = 4;
  350. DT_METAFILE = 5;
  351. DT_DISPFILE = 6;
  352. { CURVECAPS }
  353. CC_NONE = $0000;
  354. CC_CIRCLES = $0001;
  355. CC_PIE = $0002;
  356. CC_CHORD = $0004;
  357. CC_ELLIPSES = $0008;
  358. CC_WIDE = $0010;
  359. CC_STYLED = $0020;
  360. CC_WIDESTYLED = $0040;
  361. CC_INTERIORS = $0080;
  362. CC_ROUNDRECT = $0100;
  363. { LINECAPS }
  364. LC_NONE = $0000;
  365. LC_POLYLINE = $0002;
  366. LC_MARKER = $0004;
  367. LC_POLYMARKER = $0008;
  368. LC_WIDE = $0010;
  369. LC_STYLED = $0020;
  370. LC_WIDESTYLED = $0040;
  371. LC_INTERIORS = $0080;
  372. { POLYGONALCAPS }
  373. PC_NONE = $0000;
  374. PC_POLYGON = $0001;
  375. PC_RECTANGLE = $0002;
  376. PC_WINDPOLYGON = $0004;
  377. PC_SCANLINE = $0008;
  378. PC_WIDE = $0010;
  379. PC_STYLED = $0020;
  380. PC_WIDESTYLED = $0040;
  381. PC_INTERIORS = $0080;
  382. { TEXTCAPS }
  383. TC_OP_CHARACTER = $0001;
  384. TC_OP_STROKE = $0002;
  385. TC_CP_STROKE = $0004;
  386. TC_CR_90 = $0008;
  387. TC_CR_ANY = $0010;
  388. TC_SF_X_YINDEP = $0020;
  389. TC_SA_DOUBLE = $0040;
  390. TC_SA_INTEGER = $0080;
  391. TC_SA_CONTIN = $0100;
  392. TC_EA_DOUBLE = $0200;
  393. TC_IA_ABLE = $0400;
  394. TC_UA_ABLE = $0800;
  395. TC_SO_ABLE = $1000;
  396. TC_RA_ABLE = $2000;
  397. TC_VA_ABLE = $4000;
  398. TC_RESERVED = $8000;
  399. { CLIPCAPS }
  400. {$ifndef SYSTEMUNIT}
  401. CP_NONE = $0000;
  402. {$endif SYSTEMUNIT}
  403. CP_RECTANGLE = $0001;
  404. CP_REGION = $0002;
  405. { RASTERCAPS }
  406. RC_NONE = $0000;
  407. RC_BITBLT = $0001;
  408. RC_BANDING = $0002;
  409. RC_SCALING = $0004;
  410. RC_BITMAP64 = $0008;
  411. RC_GDI20_OUTPUT = $0010;
  412. RC_GDI20_STATE = $0020;
  413. RC_SAVEBITMAP = $0040;
  414. RC_DI_BITMAP = $0080;
  415. RC_PALETTE = $0100;
  416. RC_DIBTODEV = $0200;
  417. RC_BIGFONT = $0400;
  418. RC_STRETCHBLT = $0800;
  419. RC_FLOODFILL = $1000;
  420. RC_STRETCHDIB = $2000;
  421. RC_OP_DX_OUTPUT = $4000;
  422. RC_DEVBITS = $8000;
  423. { Coordinate transformation support }
  424. { Map modes }
  425. MM_TEXT = 1;
  426. MM_LOMETRIC = 2;
  427. MM_HIMETRIC = 3;
  428. MM_LOENGLISH = 4;
  429. MM_HIENGLISH = 5;
  430. MM_TWIPS = 6;
  431. MM_ISOTROPIC = 7;
  432. MM_ANISOTROPIC = 8;
  433. { Coordinate Modes }
  434. ABSOLUTE = 1;
  435. RELATIVE = 2;
  436. { Color support }
  437. type
  438. PCOLORREF = ^COLORREF;
  439. LPCOLORREF = ^COLORREF; far;
  440. COLORREF = DWORD;
  441. TColorRef = COLORREF;
  442. const
  443. COLOR_SCROLLBAR = 0;
  444. COLOR_BACKGROUND = 1;
  445. COLOR_ACTIVECAPTION = 2;
  446. COLOR_INACTIVECAPTION = 3;
  447. COLOR_MENU = 4;
  448. COLOR_WINDOW = 5;
  449. COLOR_WINDOWFRAME = 6;
  450. COLOR_MENUTEXT = 7;
  451. COLOR_WINDOWTEXT = 8;
  452. COLOR_CAPTIONTEXT = 9;
  453. COLOR_ACTIVEBORDER = 10;
  454. COLOR_INACTIVEBORDER = 11;
  455. COLOR_APPWORKSPACE = 12;
  456. COLOR_HIGHLIGHT = 13;
  457. COLOR_HIGHLIGHTTEXT = 14;
  458. COLOR_BTNFACE = 15;
  459. COLOR_BTNSHADOW = 16;
  460. COLOR_GRAYTEXT = 17;
  461. COLOR_BTNTEXT = 18;
  462. WM_SYSCOLORCHANGE = $0015;
  463. type
  464. { GDI Object Support }
  465. GOBJENUMPROC = function(lpLogObject: FarPointer; lpData: LPARAM): SmallInt; far;
  466. const
  467. { Object types for EnumObjects() }
  468. OBJ_PEN = 1;
  469. OBJ_BRUSH = 2;
  470. { Pen support }
  471. { Logical Pen }
  472. type
  473. PLOGPEN = ^LOGPEN;
  474. NPLOGPEN = ^LOGPEN; near;
  475. LPLOGPEN = ^LOGPEN; far;
  476. LOGPEN = record
  477. lopnStyle: UINT;
  478. lopnWidth: POINT;
  479. lopnColor: COLORREF;
  480. end;
  481. TLogPen = LOGPEN;
  482. { Pen Styles }
  483. const
  484. PS_SOLID = 0;
  485. PS_DASH = 1;
  486. PS_DOT = 2;
  487. PS_DASHDOT = 3;
  488. PS_DASHDOTDOT = 4;
  489. PS_NULL = 5;
  490. PS_INSIDEFRAME = 6;
  491. { Stock pens for use with GetStockObject(); }
  492. WHITE_PEN = 6;
  493. BLACK_PEN = 7;
  494. NULL_PEN = 8;
  495. { Brush support }
  496. { Brush Styles }
  497. BS_SOLID = 0;
  498. BS_NULL = 1;
  499. BS_HOLLOW = BS_NULL;
  500. BS_HATCHED = 2;
  501. BS_PATTERN = 3;
  502. BS_INDEXED = 4;
  503. BS_DIBPATTERN = 5;
  504. { Hatch Styles }
  505. HS_HORIZONTAL = 0;
  506. HS_VERTICAL = 1;
  507. HS_FDIAGONAL = 2;
  508. HS_BDIAGONAL = 3;
  509. HS_CROSS = 4;
  510. HS_DIAGCROSS = 5;
  511. { Logical Brush (or Pattern) }
  512. type
  513. PLOGBRUSH = ^LOGBRUSH;
  514. NPLOGBRUSH = ^LOGBRUSH; near;
  515. LPLOGBRUSH = ^LOGBRUSH; far;
  516. LOGBRUSH = record
  517. lbStyle: UINT;
  518. lbColor: COLORREF;
  519. lbHatch: SmallInt;
  520. end;
  521. TLogBrush = LOGBRUSH;
  522. PPATTERN = ^PATTERN;
  523. NPPATTERN = ^PATTERN; near;
  524. LPPATTERN = ^PATTERN; far;
  525. PATTERN = LOGBRUSH;
  526. TPattern = PATTERN;
  527. { Stock brushes for use with GetStockObject() }
  528. const
  529. WHITE_BRUSH = 0;
  530. LTGRAY_BRUSH = 1;
  531. GRAY_BRUSH = 2;
  532. DKGRAY_BRUSH = 3;
  533. BLACK_BRUSH = 4;
  534. NULL_BRUSH = 5;
  535. HOLLOW_BRUSH = NULL_BRUSH;
  536. { Region support }
  537. { Region type flags }
  538. {$ifndef SYSTEMUNIT}
  539. ERROR = 0;
  540. {$endif SYSTEMUNIT}
  541. NULLREGION = 1;
  542. SIMPLEREGION = 2;
  543. COMPLEXREGION = 3;
  544. { CombineRgn() command values }
  545. RGN_AND = 1;
  546. RGN_OR = 2;
  547. RGN_XOR = 3;
  548. RGN_DIFF = 4;
  549. RGN_COPY = 5;
  550. { Color palette Support }
  551. type
  552. PPALETTEENTRY = ^PALETTEENTRY;
  553. LPPALETTEENTRY = ^PALETTEENTRY; far;
  554. PALETTEENTRY = record
  555. peRed: BYTE;
  556. peGreen: BYTE;
  557. peBlue: BYTE;
  558. peFlags: BYTE;
  559. end;
  560. TPaletteEntry = PALETTEENTRY;
  561. { Palette entry flags }
  562. const
  563. PC_RESERVED = $01; { palette index used for animation }
  564. PC_EXPLICIT = $02; { palette index is explicit to device }
  565. PC_NOCOLLAPSE = $04; { do not match color to system palette }
  566. { Logical Palette }
  567. type
  568. PLOGPALETTE = ^LOGPALETTE;
  569. NPLOGPALETTE = ^LOGPALETTE; near;
  570. LPLOGPALETTE = ^LOGPALETTE; far;
  571. LOGPALETTE = record
  572. palVersion: WORD;
  573. palNumEntries: WORD;
  574. palPalEntry: array [0..0] of PALETTEENTRY;
  575. end;
  576. TLogPalette = LOGPALETTE;
  577. { Get/SetSystemPaletteUse() values }
  578. const
  579. SYSPAL_STATIC = 1;
  580. SYSPAL_NOSTATIC = 2;
  581. { Palette window messages }
  582. WM_QUERYNEWPALETTE = $030F;
  583. WM_PALETTEISCHANGING = $0310;
  584. WM_PALETTECHANGED = $0311;
  585. { General drawing support }
  586. type
  587. LINEDDAPROC = procedure(xPos, yPos: SmallInt; lpData: LPARAM); far;
  588. const
  589. { PolyFill Modes }
  590. ALTERNATE = 1;
  591. WINDING = 2;
  592. { ExtFloodFill style flags }
  593. FLOODFILLBORDER = 0;
  594. FLOODFILLSURFACE = 1;
  595. { Text support }
  596. ETO_GRAYED = $0001;
  597. ETO_OPAQUE = $0002;
  598. ETO_CLIPPED = $0004;
  599. { DrawText() Format Flags }
  600. DT_TOP = $0000;
  601. DT_LEFT = $0000;
  602. DT_CENTER = $0001;
  603. DT_RIGHT = $0002;
  604. DT_VCENTER = $0004;
  605. DT_BOTTOM = $0008;
  606. DT_WORDBREAK = $0010;
  607. DT_SINGLELINE = $0020;
  608. DT_EXPANDTABS = $0040;
  609. DT_TABSTOP = $0080;
  610. DT_NOCLIP = $0100;
  611. DT_EXTERNALLEADING = $0200;
  612. DT_CALCRECT = $0400;
  613. DT_NOPREFIX = $0800;
  614. DT_INTERNAL = $1000;
  615. { Background Modes }
  616. TRANSPARENT = 1;
  617. OPAQUE = 2;
  618. { Text Alignment Options }
  619. TA_NOUPDATECP = $0000;
  620. TA_UPDATECP = $0001;
  621. TA_LEFT = $0000;
  622. TA_RIGHT = $0002;
  623. TA_CENTER = $0006;
  624. TA_TOP = $0000;
  625. TA_BOTTOM = $0008;
  626. TA_BASELINE = $0018;
  627. type
  628. GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cch: SmallInt): BOOL; far;
  629. { Font support }
  630. const
  631. { Logical Font }
  632. LF_FACESIZE = 32;
  633. type
  634. PLOGFONT = ^LOGFONT;
  635. NPLOGFONT = ^LOGFONT; near;
  636. LPLOGFONT = ^LOGFONT; far;
  637. LOGFONT = record
  638. lfHeight: SmallInt;
  639. lfWidth: SmallInt;
  640. lfEscapement: SmallInt;
  641. lfOrientation: SmallInt;
  642. lfWeight: SmallInt;
  643. lfItalic: BYTE;
  644. lfUnderline: BYTE;
  645. lfStrikeOut: BYTE;
  646. lfCharSet: BYTE;
  647. lfOutPrecision: BYTE;
  648. lfClipPrecision: BYTE;
  649. lfQuality: BYTE;
  650. lfPitchAndFamily: BYTE;
  651. lfFaceName: array [0..LF_FACESIZE-1] of AnsiChar;
  652. end;
  653. TLogFont = LOGFONT;
  654. const
  655. { weight values }
  656. FW_DONTCARE = 0;
  657. FW_THIN = 100;
  658. FW_EXTRALIGHT = 200;
  659. FW_LIGHT = 300;
  660. FW_NORMAL = 400;
  661. FW_MEDIUM = 500;
  662. FW_SEMIBOLD = 600;
  663. FW_BOLD = 700;
  664. FW_EXTRABOLD = 800;
  665. FW_HEAVY = 900;
  666. FW_ULTRALIGHT = FW_EXTRALIGHT;
  667. FW_REGULAR = FW_NORMAL;
  668. FW_DEMIBOLD = FW_SEMIBOLD;
  669. FW_ULTRABOLD = FW_EXTRABOLD;
  670. FW_BLACK = FW_HEAVY;
  671. { CharSet values }
  672. ANSI_CHARSET = 0;
  673. DEFAULT_CHARSET = 1;
  674. SYMBOL_CHARSET = 2;
  675. SHIFTJIS_CHARSET = 128;
  676. HANGEUL_CHARSET = 129;
  677. CHINESEBIG5_CHARSET = 136;
  678. OEM_CHARSET = 255;
  679. { OutPrecision values }
  680. OUT_DEFAULT_PRECIS = 0;
  681. OUT_STRING_PRECIS = 1;
  682. OUT_CHARACTER_PRECIS = 2;
  683. OUT_STROKE_PRECIS = 3;
  684. { ClipPrecision values }
  685. CLIP_DEFAULT_PRECIS = $00;
  686. CLIP_CHARACTER_PRECIS = $01;
  687. CLIP_STROKE_PRECIS = $02;
  688. CLIP_MASK = $0F;
  689. { Quality values }
  690. DEFAULT_QUALITY = 0;
  691. DRAFT_QUALITY = 1;
  692. PROOF_QUALITY = 2;
  693. { PitchAndFamily pitch values (low 4 bits) }
  694. DEFAULT_PITCH = $00;
  695. FIXED_PITCH = $01;
  696. VARIABLE_PITCH = $02;
  697. { PitchAndFamily family values (high 4 bits) }
  698. FF_DONTCARE = $00;
  699. FF_ROMAN = $10;
  700. FF_SWISS = $20;
  701. FF_MODERN = $30;
  702. FF_SCRIPT = $40;
  703. FF_DECORATIVE = $50;
  704. { Stock fonts for use with GetStockObject() }
  705. OEM_FIXED_FONT = 10;
  706. ANSI_FIXED_FONT = 11;
  707. ANSI_VAR_FONT = 12;
  708. SYSTEM_FONT = 13;
  709. DEVICE_DEFAULT_FONT = 14;
  710. DEFAULT_PALETTE = 15;
  711. SYSTEM_FIXED_FONT = 16;
  712. ASPECT_FILTERING = $00000001;
  713. WM_FONTCHANGE = $001D;
  714. type
  715. PTEXTMETRIC = ^TEXTMETRIC;
  716. NPTEXTMETRIC = ^TEXTMETRIC; near;
  717. LPTEXTMETRIC = ^TEXTMETRIC; far;
  718. TEXTMETRIC = record
  719. tmHeight: SmallInt;
  720. tmAscent: SmallInt;
  721. tmDescent: SmallInt;
  722. tmInternalLeading: SmallInt;
  723. tmExternalLeading: SmallInt;
  724. tmAveCharWidth: SmallInt;
  725. tmMaxCharWidth: SmallInt;
  726. tmWeight: SmallInt;
  727. tmItalic: BYTE;
  728. tmUnderlined: BYTE;
  729. tmStruckOut: BYTE;
  730. tmFirstChar: BYTE;
  731. tmLastChar: BYTE;
  732. tmDefaultChar: BYTE;
  733. tmBreakChar: BYTE;
  734. tmPitchAndFamily: BYTE;
  735. tmCharSet: BYTE;
  736. tmOverhang: SmallInt;
  737. tmDigitizedAspectX: SmallInt;
  738. tmDigitizedAspectY: SmallInt;
  739. end;
  740. TTextMetric = TEXTMETRIC;
  741. const
  742. { tmPitchAndFamily values }
  743. TMPF_FIXED_PITCH = $01;
  744. TMPF_VECTOR = $02;
  745. TMPF_DEVICE = $08;
  746. type
  747. OLDFONTENUMPROC = function(lplf: LPLOGFONT; lptm: LPTEXTMETRIC; FontType: SmallInt; lpData: LPARAM): SmallInt; far;
  748. const
  749. { EnumFonts font type values }
  750. RASTER_FONTTYPE = $0001;
  751. DEVICE_FONTTYPE = $0002;
  752. type
  753. { Bitmap support }
  754. PBITMAP = ^BITMAP;
  755. NPBITMAP = ^BITMAP; near;
  756. LPBITMAP = ^BITMAP; far;
  757. BITMAP = record
  758. bmType: SmallInt;
  759. bmWidth: SmallInt;
  760. bmHeight: SmallInt;
  761. bmWidthBytes: SmallInt;
  762. bmPlanes: BYTE;
  763. bmBitsPixel: BYTE;
  764. bmBits: FarPointer;
  765. end;
  766. TBitmap = BITMAP;
  767. { Bitmap Header structures }
  768. PRGBTRIPLE = ^RGBTRIPLE;
  769. LPRGBTRIPLE = ^RGBTRIPLE; far;
  770. RGBTRIPLE = record
  771. rgbtBlue: BYTE;
  772. rgbtGreen: BYTE;
  773. rgbtRed: BYTE;
  774. end;
  775. TRGBTriple = RGBTRIPLE;
  776. PRGBQUAD = ^RGBQUAD;
  777. LPRGBQUAD = ^RGBQUAD; far;
  778. RGBQUAD = record
  779. rgbBlue: BYTE;
  780. rgbGreen: BYTE;
  781. rgbRed: BYTE;
  782. rgbReserved: BYTE;
  783. end;
  784. TRGBQuad = RGBQUAD;
  785. { structures for defining DIBs }
  786. PBITMAPCOREHEADER = ^BITMAPCOREHEADER;
  787. LPBITMAPCOREHEADER = ^BITMAPCOREHEADER; far;
  788. BITMAPCOREHEADER = record
  789. bcSize: DWORD;
  790. bcWidth: SmallInt;
  791. bcHeight: SmallInt;
  792. bcPlanes: WORD;
  793. bcBitCount: WORD;
  794. end;
  795. TBitmapCoreHeader = BITMAPCOREHEADER;
  796. PBITMAPINFOHEADER = ^BITMAPINFOHEADER;
  797. LPBITMAPINFOHEADER = ^BITMAPINFOHEADER; far;
  798. BITMAPINFOHEADER = record
  799. biSize: DWORD;
  800. biWidth: LONG;
  801. biHeight: LONG;
  802. biPlanes: WORD;
  803. biBitCount: WORD;
  804. biCompression: DWORD;
  805. biSizeImage: DWORD;
  806. biXPelsPerMeter: LONG;
  807. biYPelsPerMeter: LONG;
  808. biClrUsed: DWORD;
  809. biClrImportant: DWORD;
  810. end;
  811. TBitmapInfoHeader = BITMAPINFOHEADER;
  812. const
  813. { constants for the biCompression field }
  814. BI_RGB = 0;
  815. BI_RLE8 = 1;
  816. BI_RLE4 = 2;
  817. type
  818. PBITMAPINFO = ^BITMAPINFO;
  819. LPBITMAPINFO = ^BITMAPINFO; far;
  820. BITMAPINFO = record
  821. bmiHeader: BITMAPINFOHEADER;
  822. bmiColors: array [0..0] of RGBQUAD;
  823. end;
  824. TBitmapInfo = BITMAPINFO;
  825. PBITMAPCOREINFO = ^BITMAPCOREINFO;
  826. LPBITMAPCOREINFO = ^BITMAPCOREINFO; far;
  827. BITMAPCOREINFO = record
  828. bmciHeader: BITMAPCOREHEADER;
  829. bmciColors: array [0..0] of RGBTRIPLE;
  830. end;
  831. TBitmapCoreInfo = BITMAPCOREINFO;
  832. PBITMAPFILEHEADER = ^BITMAPFILEHEADER;
  833. LPBITMAPFILEHEADER = ^BITMAPFILEHEADER; far;
  834. BITMAPFILEHEADER = record
  835. bfType: UINT;
  836. bfSize: DWORD;
  837. bfReserved1: UINT;
  838. bfReserved2: UINT;
  839. bfOffBits: DWORD;
  840. end;
  841. TBitmapFileHeader = BITMAPFILEHEADER;
  842. const
  843. { DIB color table identifiers }
  844. DIB_RGB_COLORS = 0;
  845. DIB_PAL_COLORS = 1;
  846. { constants for CreateDIBitmap }
  847. CBM_INIT = $00000004;
  848. { Binary raster ops }
  849. R2_BLACK = 1;
  850. R2_NOTMERGEPEN = 2;
  851. R2_MASKNOTPEN = 3;
  852. R2_NOTCOPYPEN = 4;
  853. R2_MASKPENNOT = 5;
  854. R2_NOT = 6;
  855. R2_XORPEN = 7;
  856. R2_NOTMASKPEN = 8;
  857. R2_MASKPEN = 9;
  858. R2_NOTXORPEN = 10;
  859. R2_NOP = 11;
  860. R2_MERGENOTPEN = 12;
  861. R2_COPYPEN = 13;
  862. R2_MERGEPENNOT = 14;
  863. R2_MERGEPEN = 15;
  864. R2_WHITE = 16;
  865. { Ternary raster operations }
  866. SRCCOPY = $00CC0020;
  867. SRCPAINT = $00EE0086;
  868. SRCAND = $008800C6;
  869. SRCINVERT = $00660046;
  870. SRCERASE = $00440328;
  871. NOTSRCCOPY = $00330008;
  872. NOTSRCERASE = $001100A6;
  873. MERGECOPY = $00C000CA;
  874. MERGEPAINT = $00BB0226;
  875. PATCOPY = $00F00021;
  876. PATPAINT = $00FB0A09;
  877. PATINVERT = $005A0049;
  878. DSTINVERT = $00550009;
  879. BLACKNESS = $00000042;
  880. WHITENESS = $00FF0062;
  881. { StretchBlt() Modes }
  882. BLACKONWHITE = 1;
  883. WHITEONBLACK = 2;
  884. COLORONCOLOR = 3;
  885. { new StretchBlt() Modes (simpler names) }
  886. STRETCH_ANDSCANS = 1;
  887. STRETCH_ORSCANS = 2;
  888. STRETCH_DELETESCANS = 3;
  889. type
  890. { Metafile support }
  891. HMETAFILE = THandle;
  892. { Clipboard Metafile Picture Structure }
  893. PMETAFILEPICT = ^METAFILEPICT;
  894. LPMETAFILEPICT = ^METAFILEPICT; far;
  895. METAFILEPICT = record
  896. mm: SmallInt;
  897. xExt: SmallInt;
  898. yExt: SmallInt;
  899. hMF: HMETAFILE;
  900. end;
  901. TMetaFilePict = METAFILEPICT;
  902. PMETAHEADER = ^METAHEADER;
  903. LPMETAHEADER = ^METAHEADER; far;
  904. METAHEADER = record
  905. mtType: UINT;
  906. mtHeaderSize: UINT;
  907. mtVersion: UINT;
  908. mtSize: DWORD;
  909. mtNoObjects: UINT;
  910. mtMaxRecord: DWORD;
  911. mtNoParameters: UINT;
  912. end;
  913. TMetaHeader = METAHEADER;
  914. PHANDLETABLE = ^HANDLETABLE;
  915. LPHANDLETABLE = ^HANDLETABLE; far;
  916. HANDLETABLE = record
  917. objectHandle: array [0..0] of HGDIOBJ;
  918. end;
  919. THandleTable = HANDLETABLE;
  920. PMETARECORD = ^METARECORD;
  921. LPMETARECORD = ^METARECORD; far;
  922. METARECORD = record
  923. rdSize: DWORD;
  924. rdFunction: UINT;
  925. rdParm: array [0..0] of UINT;
  926. end;
  927. TMetaRecord = METARECORD;
  928. const
  929. { Metafile Functions }
  930. META_SETBKCOLOR = $0201;
  931. META_SETBKMODE = $0102;
  932. META_SETMAPMODE = $0103;
  933. META_SETROP2 = $0104;
  934. META_SETRELABS = $0105;
  935. META_SETPOLYFILLMODE = $0106;
  936. META_SETSTRETCHBLTMODE = $0107;
  937. META_SETTEXTCHAREXTRA = $0108;
  938. META_SETTEXTCOLOR = $0209;
  939. META_SETTEXTJUSTIFICATION = $020A;
  940. META_SETWINDOWORG = $020B;
  941. META_SETWINDOWEXT = $020C;
  942. META_SETVIEWPORTORG = $020D;
  943. META_SETVIEWPORTEXT = $020E;
  944. META_OFFSETWINDOWORG = $020F;
  945. META_SCALEWINDOWEXT = $0410;
  946. META_OFFSETVIEWPORTORG = $0211;
  947. META_SCALEVIEWPORTEXT = $0412;
  948. META_LINETO = $0213;
  949. META_MOVETO = $0214;
  950. META_EXCLUDECLIPRECT = $0415;
  951. META_INTERSECTCLIPRECT = $0416;
  952. META_ARC = $0817;
  953. META_ELLIPSE = $0418;
  954. META_FLOODFILL = $0419;
  955. META_PIE = $081A;
  956. META_RECTANGLE = $041B;
  957. META_ROUNDRECT = $061C;
  958. META_PATBLT = $061D;
  959. META_SAVEDC = $001E;
  960. META_SETPIXEL = $041F;
  961. META_OFFSETCLIPRGN = $0220;
  962. META_TEXTOUT = $0521;
  963. META_BITBLT = $0922;
  964. META_STRETCHBLT = $0B23;
  965. META_POLYGON = $0324;
  966. META_POLYLINE = $0325;
  967. META_ESCAPE = $0626;
  968. META_RESTOREDC = $0127;
  969. META_FILLREGION = $0228;
  970. META_FRAMEREGION = $0429;
  971. META_INVERTREGION = $012A;
  972. META_PAINTREGION = $012B;
  973. META_SELECTCLIPREGION = $012C;
  974. META_SELECTOBJECT = $012D;
  975. META_SETTEXTALIGN = $012E;
  976. META_DRAWTEXT = $062F;
  977. META_CHORD = $0830;
  978. META_SETMAPPERFLAGS = $0231;
  979. META_EXTTEXTOUT = $0a32;
  980. META_SETDIBTODEV = $0d33;
  981. META_SELECTPALETTE = $0234;
  982. META_REALIZEPALETTE = $0035;
  983. META_ANIMATEPALETTE = $0436;
  984. META_SETPALENTRIES = $0037;
  985. META_POLYPOLYGON = $0538;
  986. META_RESIZEPALETTE = $0139;
  987. META_DIBBITBLT = $0940;
  988. META_DIBSTRETCHBLT = $0b41;
  989. META_DIBCREATEPATTERNBRUSH = $0142;
  990. META_STRETCHDIB = $0f43;
  991. META_EXTFLOODFILL = $0548;
  992. META_RESETDC = $014C;
  993. META_STARTDOC = $014D;
  994. META_STARTPAGE = $004F;
  995. META_ENDPAGE = $0050;
  996. META_ABORTDOC = $0052;
  997. META_ENDDOC = $005E;
  998. META_DELETEOBJECT = $01f0;
  999. META_CREATEPALETTE = $00f7;
  1000. META_CREATEBRUSH = $00F8;
  1001. META_CREATEPATTERNBRUSH = $01F9;
  1002. META_CREATEPENINDIRECT = $02FA;
  1003. META_CREATEFONTINDIRECT = $02FB;
  1004. META_CREATEBRUSHINDIRECT = $02FC;
  1005. META_CREATEBITMAPINDIRECT = $02FD;
  1006. META_CREATEBITMAP = $06FE;
  1007. META_CREATEREGION = $06FF;
  1008. type
  1009. MFENUMPROC = function(hdc: HDC; lpht: LPHANDLETABLE; lpmr: LPMETARECORD; cObj: SmallInt; lParam: LPARAM): SmallInt; far;
  1010. { Printing support }
  1011. ABORTPROC = function(hdc: HDC; error: SmallInt): BOOL; far;
  1012. const
  1013. { Spooler Error Codes }
  1014. SP_NOTREPORTED = $4000;
  1015. SP_ERROR = (-1);
  1016. SP_APPABORT = (-2);
  1017. SP_USERABORT = (-3);
  1018. SP_OUTOFDISK = (-4);
  1019. SP_OUTOFMEMORY = (-5);
  1020. PR_JOBSTATUS = $0000;
  1021. { Spooler status notification message }
  1022. WM_SPOOLERSTATUS = $002A;
  1023. { GDI Escape support }
  1024. { GDI Escapes }
  1025. NEWFRAME = 1;
  1026. ABORTDOC = 2;
  1027. NEXTBAND = 3;
  1028. SETCOLORTABLE = 4;
  1029. GETCOLORTABLE = 5;
  1030. FLUSHOUTPUT = 6;
  1031. DRAFTMODE = 7;
  1032. QUERYESCSUPPORT = 8;
  1033. SETABORTPROC = 9;
  1034. STARTDOC = 10;
  1035. ENDDOC = 11;
  1036. GETPHYSPAGESIZE = 12;
  1037. GETPRINTINGOFFSET = 13;
  1038. GETSCALINGFACTOR = 14;
  1039. MFCOMMENT = 15;
  1040. GETPENWIDTH = 16;
  1041. SETCOPYCOUNT = 17;
  1042. SELECTPAPERSOURCE = 18;
  1043. DEVICEDATA = 19;
  1044. PASSTHROUGH = 19;
  1045. GETTECHNOLGY = 20;
  1046. GETTECHNOLOGY = 20;
  1047. SETLINECAP = 21;
  1048. SETLINEJOIN = 22;
  1049. SETMITERLIMIT = 23;
  1050. BANDINFO = 24;
  1051. DRAWPATTERNRECT = 25;
  1052. GETVECTORPENSIZE = 26;
  1053. GETVECTORBRUSHSIZE = 27;
  1054. ENABLEDUPLEX = 28;
  1055. GETSETPAPERBINS = 29;
  1056. GETSETPRINTORIENT = 30;
  1057. ENUMPAPERBINS = 31;
  1058. SETDIBSCALING = 32;
  1059. EPSPRINTING = 33;
  1060. ENUMPAPERMETRICS = 34;
  1061. GETSETPAPERMETRICS = 35;
  1062. POSTSCRIPT_DATA = 37;
  1063. POSTSCRIPT_IGNORE = 38;
  1064. MOUSETRAILS = 39;
  1065. GETEXTENDEDTEXTMETRICS = 256;
  1066. GETEXTENTTABLE = 257;
  1067. GETPAIRKERNTABLE = 258;
  1068. GETTRACKKERNTABLE = 259;
  1069. GDIEXTTEXTOUT = 512; { renamed to avoid conflict with the ExtTextOut function }
  1070. GETFACENAME = 513;
  1071. ENABLERELATIVEWIDTHS = 768;
  1072. ENABLEPAIRKERNING = 769;
  1073. SETKERNTRACK = 770;
  1074. SETALLJUSTVALUES = 771;
  1075. SETCHARSET = 772;
  1076. GDISTRETCHBLT = 2048; { renamed to avoid conflict with the StretchBlt function }
  1077. GETSETSCREENPARAMS = 3072;
  1078. BEGIN_PATH = 4096;
  1079. CLIP_TO_PATH = 4097;
  1080. END_PATH = 4098;
  1081. EXT_DEVICE_CAPS = 4099;
  1082. RESTORE_CTM = 4100;
  1083. SAVE_CTM = 4101;
  1084. SET_ARC_DIRECTION = 4102;
  1085. SET_BACKGROUND_COLOR = 4103;
  1086. SET_POLY_MODE = 4104;
  1087. SET_SCREEN_ANGLE = 4105;
  1088. SET_SPREAD = 4106;
  1089. TRANSFORM_CTM = 4107;
  1090. SET_CLIP_BOX = 4108;
  1091. SET_BOUNDS = 4109;
  1092. type
  1093. { USER typedefs, structures, and functions }
  1094. HWND = THandle;
  1095. HMENU = THandle;
  1096. HICON = THandle;
  1097. HCURSOR = HICON; { HICONs & HCURSORs are polymorphic }
  1098. { System Metrics }
  1099. const
  1100. { GetSystemMetrics() codes }
  1101. SM_CXSCREEN = 0;
  1102. SM_CYSCREEN = 1;
  1103. SM_CXVSCROLL = 2;
  1104. SM_CYHSCROLL = 3;
  1105. SM_CYCAPTION = 4;
  1106. SM_CXBORDER = 5;
  1107. SM_CYBORDER = 6;
  1108. SM_CXDLGFRAME = 7;
  1109. SM_CYDLGFRAME = 8;
  1110. SM_CYVTHUMB = 9;
  1111. SM_CXHTHUMB = 10;
  1112. SM_CXICON = 11;
  1113. SM_CYICON = 12;
  1114. SM_CXCURSOR = 13;
  1115. SM_CYCURSOR = 14;
  1116. SM_CYMENU = 15;
  1117. SM_CXFULLSCREEN = 16;
  1118. SM_CYFULLSCREEN = 17;
  1119. SM_CYKANJIWINDOW = 18;
  1120. SM_MOUSEPRESENT = 19;
  1121. SM_CYVSCROLL = 20;
  1122. SM_CXHSCROLL = 21;
  1123. SM_DEBUG = 22;
  1124. SM_SWAPBUTTON = 23;
  1125. SM_RESERVED1 = 24;
  1126. SM_RESERVED2 = 25;
  1127. SM_RESERVED3 = 26;
  1128. SM_RESERVED4 = 27;
  1129. SM_CXMIN = 28;
  1130. SM_CYMIN = 29;
  1131. SM_CXSIZE = 30;
  1132. SM_CYSIZE = 31;
  1133. SM_CXFRAME = 32;
  1134. SM_CYFRAME = 33;
  1135. SM_CXMINTRACK = 34;
  1136. SM_CYMINTRACK = 35;
  1137. SM_CMETRICS = 36;
  1138. WM_DEVMODECHANGE = $001B;
  1139. WM_TIMECHANGE = $001E;
  1140. { Window message support }
  1141. WM_NULL = $0000;
  1142. { NOTE: All messages below $0400 are RESERVED by Windows }
  1143. WM_USER = $0400;
  1144. type
  1145. { Queued message structure }
  1146. PMSG = ^MSG;
  1147. NPMSG = ^MSG; near;
  1148. LPMSG = ^MSG; far;
  1149. MSG = record
  1150. hwnd: HWND;
  1151. message: UINT;
  1152. wParam: WPARAM;
  1153. lParam: LPARAM;
  1154. time: DWORD;
  1155. pt: POINT;
  1156. end;
  1157. TMsg = MSG;
  1158. const
  1159. { PeekMessage() options }
  1160. PM_NOREMOVE = $0000;
  1161. PM_REMOVE = $0001;
  1162. PM_NOYIELD = $0002;
  1163. { Special HWND value for use with PostMessage() and SendMessage() }
  1164. HWND_BROADCAST = HWND($ffff);
  1165. WH_GETMESSAGE = 3;
  1166. WH_CALLWNDPROC = 4;
  1167. WH_MSGFILTER = (-1);
  1168. WH_SYSMSGFILTER = 6;
  1169. { CallMsgFilter() and WH_SYS/MSGFILTER context codes }
  1170. MSGF_DIALOGBOX = 0;
  1171. MSGF_MENU = 2;
  1172. MSGF_MOVE = 3;
  1173. MSGF_SIZE = 4;
  1174. MSGF_SCROLLBAR = 5;
  1175. MSGF_NEXTWINDOW = 6;
  1176. MSGF_MAINLOOP = 8;
  1177. MSGF_USER = 4096;
  1178. { Standard window messages }
  1179. { PenWindows specific messages }
  1180. WM_PENWINFIRST = $0380;
  1181. WM_PENWINLAST = $038F;
  1182. { Coalescing messages }
  1183. WM_COALESCE_FIRST = $0390;
  1184. WM_COALESCE_LAST = $039F;
  1185. { Application termination }
  1186. WM_QUERYENDSESSION = $0011;
  1187. WM_ENDSESSION = $0016;
  1188. WM_QUIT = $0012;
  1189. WM_SYSTEMERROR = $0017;
  1190. type
  1191. { Window class management }
  1192. WNDPROC = function(hwnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; far;
  1193. PWNDCLASS = ^WNDCLASS;
  1194. NPWNDCLASS = ^WNDCLASS; near;
  1195. LPWNDCLASS = ^WNDCLASS; far;
  1196. WNDCLASS = record
  1197. style: UINT;
  1198. lpfnWndProc: WNDPROC;
  1199. cbClsExtra: SmallInt;
  1200. cbWndExtra: SmallInt;
  1201. hInstance: HINST;
  1202. hIcon: HICON;
  1203. hCursor: HCURSOR;
  1204. hbrBackground: HBRUSH;
  1205. lpszMenuName: LPCSTR;
  1206. lpszClassName: LPCSTR;
  1207. end;
  1208. TWndClass = WNDCLASS;
  1209. const
  1210. { Class styles }
  1211. CS_VREDRAW = $0001;
  1212. CS_HREDRAW = $0002;
  1213. CS_OWNDC = $0020;
  1214. CS_CLASSDC = $0040;
  1215. CS_PARENTDC = $0080;
  1216. CS_SAVEBITS = $0800;
  1217. CS_DBLCLKS = $0008;
  1218. CS_BYTEALIGNCLIENT = $1000;
  1219. CS_BYTEALIGNWINDOW = $2000;
  1220. CS_NOCLOSE = $0200;
  1221. CS_KEYCVTWINDOW = $0004;
  1222. CS_NOKEYCVT = $0100;
  1223. CS_GLOBALCLASS = $4000;
  1224. { Class field offsets for GetClassLong() and GetClassWord() }
  1225. GCL_MENUNAME = (-8);
  1226. GCW_HBRBACKGROUND = (-10);
  1227. GCW_HCURSOR = (-12);
  1228. GCW_HICON = (-14);
  1229. GCW_HMODULE = (-16);
  1230. GCW_CBWNDEXTRA = (-18);
  1231. GCW_CBCLSEXTRA = (-20);
  1232. GCL_WNDPROC = (-24);
  1233. GCW_STYLE = (-26);
  1234. { Window creation/destroy }
  1235. { Window Styles }
  1236. { Basic window types }
  1237. WS_OVERLAPPED = $00000000;
  1238. WS_POPUP = $80000000;
  1239. WS_CHILD = $40000000;
  1240. { Clipping styles }
  1241. WS_CLIPSIBLINGS = $04000000;
  1242. WS_CLIPCHILDREN = $02000000;
  1243. { Generic window states }
  1244. WS_VISIBLE = $10000000;
  1245. WS_DISABLED = $08000000;
  1246. { Main window states }
  1247. WS_MINIMIZE = $20000000;
  1248. WS_MAXIMIZE = $01000000;
  1249. { Main window styles }
  1250. WS_CAPTION = $00C00000; { WS_BORDER | WS_DLGFRAME }
  1251. WS_BORDER = $00800000;
  1252. WS_DLGFRAME = $00400000;
  1253. WS_VSCROLL = $00200000;
  1254. WS_HSCROLL = $00100000;
  1255. WS_SYSMENU = $00080000;
  1256. WS_THICKFRAME = $00040000;
  1257. WS_MINIMIZEBOX = $00020000;
  1258. WS_MAXIMIZEBOX = $00010000;
  1259. { Control window styles }
  1260. WS_GROUP = $00020000;
  1261. WS_TABSTOP = $00010000;
  1262. { Common Window Styles }
  1263. WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
  1264. WS_POPUPWINDOW = (WS_POPUP or WS_BORDER or WS_SYSMENU);
  1265. WS_CHILDWINDOW = (WS_CHILD);
  1266. { Extended Window Styles }
  1267. WS_EX_DLGMODALFRAME = $00000001;
  1268. WS_EX_NOPARENTNOTIFY = $00000004;
  1269. { Obsolete style names }
  1270. WS_TILED = WS_OVERLAPPED;
  1271. WS_ICONIC = WS_MINIMIZE;
  1272. WS_SIZEBOX = WS_THICKFRAME;
  1273. WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
  1274. { Special value for CreateWindow, et al. }
  1275. HWND_DESKTOP = HWND(0);
  1276. WM_CREATE = $0001;
  1277. WM_NCCREATE = $0081;
  1278. type
  1279. { WM_CREATE/WM_NCCREATE lParam struct }
  1280. PCREATESTRUCT = ^CREATESTRUCT;
  1281. LPCREATESTRUCT = ^CREATESTRUCT; far;
  1282. CREATESTRUCT = record
  1283. lpCreateParams: FarPointer;
  1284. hInstance: HINST;
  1285. hMenu: HMENU;
  1286. hwndParent: HWND;
  1287. cy: SmallInt;
  1288. cx: SmallInt;
  1289. y: SmallInt;
  1290. x: SmallInt;
  1291. style: LONG;
  1292. lpszName: LPCSTR;
  1293. lpszClass: LPCSTR;
  1294. dwExStyle: DWORD;
  1295. end;
  1296. TCreateStruct = CREATESTRUCT;
  1297. const
  1298. WM_DESTROY = $0002;
  1299. WM_NCDESTROY = $0082;
  1300. SW_HIDE = 0;
  1301. SW_SHOWNORMAL = 1;
  1302. SW_NORMAL = 1;
  1303. SW_SHOWMINIMIZED = 2;
  1304. SW_SHOWMAXIMIZED = 3;
  1305. SW_MAXIMIZE = 3;
  1306. SW_SHOWNOACTIVATE = 4;
  1307. SW_SHOW = 5;
  1308. SW_MINIMIZE = 6;
  1309. SW_SHOWMINNOACTIVE = 7;
  1310. SW_SHOWNA = 8;
  1311. SW_RESTORE = 9;
  1312. { Obsolete ShowWindow() command names }
  1313. HIDE_WINDOW = 0;
  1314. SHOW_OPENWINDOW = 1;
  1315. SHOW_ICONWINDOW = 2;
  1316. SHOW_FULLSCREEN = 3;
  1317. SHOW_OPENNOACTIVATE = 4;
  1318. WM_SHOWWINDOW = $0018;
  1319. { WM_SHOWWINDOW wParam codes }
  1320. SW_PARENTCLOSING = 1;
  1321. SW_OTHERMAXIMIZED = 2;
  1322. SW_PARENTOPENING = 3;
  1323. SW_OTHERRESTORED = 4;
  1324. { Obsolete constant names }
  1325. SW_OTHERZOOM = SW_OTHERMAXIMIZED;
  1326. SW_OTHERUNZOOM = SW_OTHERRESTORED;
  1327. WM_SETREDRAW = $000B;
  1328. { Enabled state }
  1329. WM_ENABLE = $000A;
  1330. { Window text }
  1331. WM_SETTEXT = $000C;
  1332. WM_GETTEXT = $000D;
  1333. WM_GETTEXTLENGTH = $000E;
  1334. { Window field offsets for GetWindowLong() and GetWindowWord() }
  1335. GWL_WNDPROC = (-4);
  1336. GWW_HINSTANCE = (-6);
  1337. GWW_HWNDPARENT = (-8);
  1338. GWW_ID = (-12);
  1339. GWL_STYLE = (-16);
  1340. GWL_EXSTYLE = (-20);
  1341. { Window size, position, Z-order, and visibility }
  1342. CW_USEDEFAULT = SmallInt($8000);
  1343. { SetWindowPos() and WINDOWPOS flags }
  1344. SWP_NOSIZE = $0001;
  1345. SWP_NOMOVE = $0002;
  1346. SWP_NOZORDER = $0004;
  1347. SWP_NOREDRAW = $0008;
  1348. SWP_NOACTIVATE = $0010;
  1349. SWP_FRAMECHANGED = $0020; { The frame changed: send WM_NCCALCSIZE }
  1350. SWP_SHOWWINDOW = $0040;
  1351. SWP_HIDEWINDOW = $0080;
  1352. SWP_NOCOPYBITS = $0100;
  1353. SWP_NOOWNERZORDER = $0200; { Don't do owner Z ordering }
  1354. SWP_DRAWFRAME = SWP_FRAMECHANGED;
  1355. SWP_NOREPOSITION = SWP_NOOWNERZORDER;
  1356. SWP_NOSENDCHANGING = $0400;
  1357. SWP_DEFERERASE = $2000;
  1358. { SetWindowPos() hwndInsertAfter field values }
  1359. HWND_TOP = HWND(0);
  1360. HWND_BOTTOM = HWND(1);
  1361. HWND_TOPMOST = HWND(-1);
  1362. HWND_NOTOPMOST = HWND(-2);
  1363. type
  1364. HDWP = THandle;
  1365. const
  1366. WM_MOVE = $0003;
  1367. WM_SIZE = $0005;
  1368. { WM_SIZE message wParam values }
  1369. SIZE_RESTORED = 0;
  1370. SIZE_MINIMIZED = 1;
  1371. SIZE_MAXIMIZED = 2;
  1372. SIZE_MAXSHOW = 3;
  1373. SIZE_MAXHIDE = 4;
  1374. { Obsolete constant names }
  1375. SIZENORMAL = SIZE_RESTORED;
  1376. SIZEICONIC = SIZE_MINIMIZED;
  1377. SIZEFULLSCREEN = SIZE_MAXIMIZED;
  1378. SIZEZOOMSHOW = SIZE_MAXSHOW;
  1379. SIZEZOOMHIDE = SIZE_MAXHIDE;
  1380. { Main window support }
  1381. WM_QUERYOPEN = $0013;
  1382. WM_CLOSE = $0010;
  1383. type
  1384. { Struct pointed to by WM_GETMINMAXINFO lParam }
  1385. PMINMAXINFO = ^MINMAXINFO;
  1386. LPMINMAXINFO = ^MINMAXINFO; far;
  1387. MINMAXINFO = record
  1388. ptReserved: POINT;
  1389. ptMaxSize: POINT;
  1390. ptMaxPosition: POINT;
  1391. ptMinTrackSize: POINT;
  1392. ptMaxTrackSize: POINT;
  1393. end;
  1394. TMinMaxInfo = MINMAXINFO;
  1395. const
  1396. WM_GETMINMAXINFO = $0024;
  1397. type
  1398. { Window query and enumeration }
  1399. WNDENUMPROC = function(hwnd: HWND; lParam: LPARAM): BOOL; far;
  1400. const
  1401. { GetWindow() constants }
  1402. GW_HWNDFIRST = 0;
  1403. GW_HWNDLAST = 1;
  1404. GW_HWNDNEXT = 2;
  1405. GW_HWNDPREV = 3;
  1406. GW_OWNER = 4;
  1407. GW_CHILD = 5;
  1408. type
  1409. { Window property support }
  1410. PROPENUMPROC = function(hwnd: HWND; lpsz: LPCSTR; hData: HANDLE): BOOL; far;
  1411. const
  1412. { Window repainting }
  1413. WM_PAINT = $000F;
  1414. WM_ERASEBKGND = $0014;
  1415. WM_ICONERASEBKGND = $0027;
  1416. type
  1417. { BeginPaint() return structure }
  1418. PPAINTSTRUCT = ^PAINTSTRUCT;
  1419. NPPAINTSTRUCT = ^PAINTSTRUCT; near;
  1420. LPPAINTSTRUCT = ^PAINTSTRUCT; far;
  1421. PAINTSTRUCT = record
  1422. hdc: HDC;
  1423. fErase: BOOL;
  1424. rcPaint: RECT;
  1425. fRestore: BOOL;
  1426. fIncUpdate: BOOL;
  1427. rgbReserved: array [0..15] of BYTE;
  1428. end;
  1429. TPaintStruct = PAINTSTRUCT;
  1430. const
  1431. RDW_INVALIDATE = $0001;
  1432. RDW_INTERNALPAINT = $0002;
  1433. RDW_ERASE = $0004;
  1434. RDW_VALIDATE = $0008;
  1435. RDW_NOINTERNALPAINT = $0010;
  1436. RDW_NOERASE = $0020;
  1437. RDW_NOCHILDREN = $0040;
  1438. RDW_ALLCHILDREN = $0080;
  1439. RDW_UPDATENOW = $0100;
  1440. RDW_ERASENOW = $0200;
  1441. RDW_FRAME = $0400;
  1442. RDW_NOFRAME = $0800;
  1443. { Non-client window area management }
  1444. WM_NCPAINT = $0085;
  1445. WM_NCCALCSIZE = $0083;
  1446. type
  1447. { WM_NCCALCSIZE parameter structure }
  1448. PNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS;
  1449. LPNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS; far;
  1450. NCCALCSIZE_PARAMS = record
  1451. rgrc: array [0..1] of RECT;
  1452. end;
  1453. TNCCalcSize_Params = NCCALCSIZE_PARAMS;
  1454. const
  1455. WM_NCHITTEST = $0084;
  1456. { WM_NCHITTEST return codes }
  1457. HTERROR = (-2);
  1458. HTTRANSPARENT = (-1);
  1459. HTNOWHERE = 0;
  1460. HTCLIENT = 1;
  1461. HTCAPTION = 2;
  1462. HTSYSMENU = 3;
  1463. HTSIZE = 4;
  1464. HTMENU = 5;
  1465. HTHSCROLL = 6;
  1466. HTVSCROLL = 7;
  1467. HTMINBUTTON = 8;
  1468. HTMAXBUTTON = 9;
  1469. HTLEFT = 10;
  1470. HTRIGHT = 11;
  1471. HTTOP = 12;
  1472. HTTOPLEFT = 13;
  1473. HTTOPRIGHT = 14;
  1474. HTBOTTOM = 15;
  1475. HTBOTTOMLEFT = 16;
  1476. HTBOTTOMRIGHT = 17;
  1477. HTBORDER = 18;
  1478. HTGROWBOX = HTSIZE;
  1479. HTREDUCE = HTMINBUTTON;
  1480. HTZOOM = HTMAXBUTTON;
  1481. { Drag-and-drop support }
  1482. WM_QUERYDRAGICON = $0037;
  1483. WM_DROPFILES = $0233;
  1484. { Window activation }
  1485. { WM_ACTIVATE state values }
  1486. WA_INACTIVE = 0;
  1487. WA_ACTIVE = 1;
  1488. WA_CLICKACTIVE = 2;
  1489. WM_ACTIVATE = $0006;
  1490. WM_ACTIVATEAPP = $001C;
  1491. WM_NCACTIVATE = $0086;
  1492. type
  1493. { Keyboard input support }
  1494. PKeyboardState = ^TKeyboardState;
  1495. LPKeyboardState = ^TKeyboardState; far;
  1496. TKeyboardState = array [0..255] of AnsiChar;
  1497. const
  1498. WM_SETFOCUS = $0007;
  1499. WM_KILLFOCUS = $0008;
  1500. WM_KEYDOWN = $0100;
  1501. WM_KEYUP = $0101;
  1502. WM_CHAR = $0102;
  1503. WM_DEADCHAR = $0103;
  1504. WM_SYSKEYDOWN = $0104;
  1505. WM_SYSKEYUP = $0105;
  1506. WM_SYSCHAR = $0106;
  1507. WM_SYSDEADCHAR = $0107;
  1508. { Keyboard message range }
  1509. WM_KEYFIRST = $0100;
  1510. WM_KEYLAST = $0108;
  1511. { WM_KEYUP/DOWN/AnsiChar HIWORD(lParam) flags }
  1512. KF_EXTENDED = $0100;
  1513. KF_DLGMODE = $0800;
  1514. KF_MENUMODE = $1000;
  1515. KF_ALTDOWN = $2000;
  1516. KF_REPEAT = $4000;
  1517. KF_UP = $8000;
  1518. { Virtual key codes }
  1519. VK_LBUTTON = $01;
  1520. VK_RBUTTON = $02;
  1521. VK_CANCEL = $03;
  1522. VK_MBUTTON = $04;
  1523. VK_BACK = $08;
  1524. VK_TAB = $09;
  1525. VK_CLEAR = $0C;
  1526. VK_RETURN = $0D;
  1527. VK_SHIFT = $10;
  1528. VK_CONTROL = $11;
  1529. VK_MENU = $12;
  1530. VK_PAUSE = $13;
  1531. VK_CAPITAL = $14;
  1532. VK_ESCAPE = $1B;
  1533. VK_SPACE = $20;
  1534. VK_PRIOR = $21;
  1535. VK_NEXT = $22;
  1536. VK_END = $23;
  1537. VK_HOME = $24;
  1538. VK_LEFT = $25;
  1539. VK_UP = $26;
  1540. VK_RIGHT = $27;
  1541. VK_DOWN = $28;
  1542. VK_SELECT = $29;
  1543. VK_PRINT = $2A;
  1544. VK_EXECUTE = $2B;
  1545. VK_SNAPSHOT = $2C;
  1546. VK_INSERT = $2D;
  1547. VK_DELETE = $2E;
  1548. VK_HELP = $2F;
  1549. VK_NUMPAD0 = $60;
  1550. VK_NUMPAD1 = $61;
  1551. VK_NUMPAD2 = $62;
  1552. VK_NUMPAD3 = $63;
  1553. VK_NUMPAD4 = $64;
  1554. VK_NUMPAD5 = $65;
  1555. VK_NUMPAD6 = $66;
  1556. VK_NUMPAD7 = $67;
  1557. VK_NUMPAD8 = $68;
  1558. VK_NUMPAD9 = $69;
  1559. VK_MULTIPLY = $6A;
  1560. VK_ADD = $6B;
  1561. VK_SEPARATOR = $6C;
  1562. VK_SUBTRACT = $6D;
  1563. VK_DECIMAL = $6E;
  1564. VK_DIVIDE = $6F;
  1565. VK_F1 = $70;
  1566. VK_F2 = $71;
  1567. VK_F3 = $72;
  1568. VK_F4 = $73;
  1569. VK_F5 = $74;
  1570. VK_F6 = $75;
  1571. VK_F7 = $76;
  1572. VK_F8 = $77;
  1573. VK_F9 = $78;
  1574. VK_F10 = $79;
  1575. VK_F11 = $7A;
  1576. VK_F12 = $7B;
  1577. VK_F13 = $7C;
  1578. VK_F14 = $7D;
  1579. VK_F15 = $7E;
  1580. VK_F16 = $7F;
  1581. VK_F17 = $80;
  1582. VK_F18 = $81;
  1583. VK_F19 = $82;
  1584. VK_F20 = $83;
  1585. VK_F21 = $84;
  1586. VK_F22 = $85;
  1587. VK_F23 = $86;
  1588. VK_F24 = $87;
  1589. VK_NUMLOCK = $90;
  1590. VK_SCROLL = $91;
  1591. { VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z' }
  1592. { VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '0' }
  1593. { SetWindowsHook() keyboard hook }
  1594. WH_KEYBOARD = 2;
  1595. { Mouse input support }
  1596. { Mouse input messages }
  1597. WM_MOUSEMOVE = $0200;
  1598. WM_LBUTTONDOWN = $0201;
  1599. WM_LBUTTONUP = $0202;
  1600. WM_LBUTTONDBLCLK = $0203;
  1601. WM_RBUTTONDOWN = $0204;
  1602. WM_RBUTTONUP = $0205;
  1603. WM_RBUTTONDBLCLK = $0206;
  1604. WM_MBUTTONDOWN = $0207;
  1605. WM_MBUTTONUP = $0208;
  1606. WM_MBUTTONDBLCLK = $0209;
  1607. { Mouse input message range }
  1608. WM_MOUSEFIRST = $0200;
  1609. WM_MOUSELAST = $0209;
  1610. { Mouse message wParam key states }
  1611. MK_LBUTTON = $0001;
  1612. MK_RBUTTON = $0002;
  1613. MK_SHIFT = $0004;
  1614. MK_CONTROL = $0008;
  1615. MK_MBUTTON = $0010;
  1616. { Non-client mouse messages }
  1617. WM_NCMOUSEMOVE = $00A0;
  1618. WM_NCLBUTTONDOWN = $00A1;
  1619. WM_NCLBUTTONUP = $00A2;
  1620. WM_NCLBUTTONDBLCLK = $00A3;
  1621. WM_NCRBUTTONDOWN = $00A4;
  1622. WM_NCRBUTTONUP = $00A5;
  1623. WM_NCRBUTTONDBLCLK = $00A6;
  1624. WM_NCMBUTTONDOWN = $00A7;
  1625. WM_NCMBUTTONUP = $00A8;
  1626. WM_NCMBUTTONDBLCLK = $00A9;
  1627. { Mouse click activation support }
  1628. WM_MOUSEACTIVATE = $0021;
  1629. { WM_MOUSEACTIVATE return codes }
  1630. MA_ACTIVATE = 1;
  1631. MA_ACTIVATEANDEAT = 2;
  1632. MA_NOACTIVATE = 3;
  1633. { SetWindowsHook() mouse hook }
  1634. WH_MOUSE = 7;
  1635. type
  1636. PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  1637. LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT; far;
  1638. MOUSEHOOKSTRUCT = record
  1639. pt: POINT;
  1640. hwnd: HWND;
  1641. wHitTestCode: UINT;
  1642. dwExtraInfo: DWORD;
  1643. end;
  1644. TMouseHookStruct = MOUSEHOOKSTRUCT;
  1645. const
  1646. { Mode control }
  1647. WM_CANCELMODE = $001F;
  1648. type
  1649. { Timer support }
  1650. TIMERPROC = procedure(hwnd: HWND; msg, idTimer: UINT; dwTime: DWORD); far;
  1651. const
  1652. WM_TIMER = $0113;
  1653. type
  1654. { Accelerator support }
  1655. HACCEL = THandle;
  1656. { Menu support }
  1657. { Menu template header }
  1658. PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
  1659. LPMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER; far;
  1660. MENUITEMTEMPLATEHEADER = record
  1661. versionNumber: UINT;
  1662. offset: UINT;
  1663. end;
  1664. TMenuItemTemplateHeader = MENUITEMTEMPLATEHEADER;
  1665. { Menu template item struct }
  1666. PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE;
  1667. LPMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; far;
  1668. MENUITEMTEMPLATE = record
  1669. mtOption: UINT;
  1670. mtID: UINT;
  1671. mtString: array [0..0] of AnsiChar;
  1672. end;
  1673. TMenuItemTemplate = MENUITEMTEMPLATE;
  1674. const
  1675. MF_INSERT = $0000;
  1676. MF_CHANGE = $0080;
  1677. MF_APPEND = $0100;
  1678. MF_DELETE = $0200;
  1679. MF_REMOVE = $1000;
  1680. { Menu flags for Add/Check/EnableMenuItem() }
  1681. MF_BYCOMMAND = $0000;
  1682. MF_BYPOSITION = $0400;
  1683. MF_SEPARATOR = $0800;
  1684. MF_ENABLED = $0000;
  1685. MF_GRAYED = $0001;
  1686. MF_DISABLED = $0002;
  1687. MF_UNCHECKED = $0000;
  1688. MF_CHECKED = $0008;
  1689. MF_USECHECKBITMAPS = $0200;
  1690. MF_STRING = $0000;
  1691. MF_BITMAP = $0004;
  1692. MF_OWNERDRAW = $0100;
  1693. MF_POPUP = $0010;
  1694. MF_MENUBARBREAK = $0020;
  1695. MF_MENUBREAK = $0040;
  1696. MF_UNHILITE = $0000;
  1697. MF_HILITE = $0080;
  1698. MF_SYSMENU = $2000;
  1699. MF_HELP = $4000;
  1700. MF_MOUSESELECT = $8000;
  1701. MF_END = $0080; { Only valid in menu resource templates }
  1702. { Flags for TrackPopupMenu }
  1703. TPM_LEFTBUTTON = $0000;
  1704. { Menu messages }
  1705. WM_INITMENU = $0116;
  1706. WM_INITMENUPOPUP = $0117;
  1707. WM_MENUSELECT = $011F;
  1708. WM_MENUCHAR = $0120;
  1709. { Menu and control command messages }
  1710. WM_COMMAND = $0111;
  1711. { Scroll bar support }
  1712. WM_HSCROLL = $0114;
  1713. WM_VSCROLL = $0115;
  1714. { WM_H/VSCROLL commands }
  1715. SB_LINEUP = 0;
  1716. SB_LINELEFT = 0;
  1717. SB_LINEDOWN = 1;
  1718. SB_LINERIGHT = 1;
  1719. SB_PAGEUP = 2;
  1720. SB_PAGELEFT = 2;
  1721. SB_PAGEDOWN = 3;
  1722. SB_PAGERIGHT = 3;
  1723. SB_THUMBPOSITION = 4;
  1724. SB_THUMBTRACK = 5;
  1725. SB_TOP = 6;
  1726. SB_LEFT = 6;
  1727. SB_BOTTOM = 7;
  1728. SB_RIGHT = 7;
  1729. SB_ENDSCROLL = 8;
  1730. { Scroll bar selection constants }
  1731. SB_HORZ = 0;
  1732. SB_VERT = 1;
  1733. SB_CTL = 2;
  1734. SB_BOTH = 3;
  1735. { EnableScrollBar() flags }
  1736. ESB_ENABLE_BOTH = $0000;
  1737. ESB_DISABLE_BOTH = $0003;
  1738. ESB_DISABLE_LEFT = $0001;
  1739. ESB_DISABLE_RIGHT = $0002;
  1740. ESB_DISABLE_UP = $0001;
  1741. ESB_DISABLE_DOWN = $0002;
  1742. ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
  1743. ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
  1744. { Clipboard manager }
  1745. { Predefined Clipboard Formats }
  1746. CF_TEXT = 1;
  1747. CF_BITMAP = 2;
  1748. CF_METAFILEPICT = 3;
  1749. CF_SYLK = 4;
  1750. CF_DIF = 5;
  1751. CF_TIFF = 6;
  1752. CF_OEMTEXT = 7;
  1753. CF_DIB = 8;
  1754. CF_PALETTE = 9;
  1755. CF_PENDATA = 10;
  1756. CF_RIFF = 11;
  1757. CF_WAVE = 12;
  1758. CF_OWNERDISPLAY = $0080;
  1759. CF_DSPTEXT = $0081;
  1760. CF_DSPBITMAP = $0082;
  1761. CF_DSPMETAFILEPICT = $0083;
  1762. { "Private" formats don't get GlobalFree()'d }
  1763. CF_PRIVATEFIRST = $0200;
  1764. CF_PRIVATELAST = $02FF;
  1765. { "GDIOBJ" formats do get DeleteObject()'d }
  1766. CF_GDIOBJFIRST = $0300;
  1767. CF_GDIOBJLAST = $03FF;
  1768. { Clipboard command messages }
  1769. WM_CUT = $0300;
  1770. WM_COPY = $0301;
  1771. WM_PASTE = $0302;
  1772. WM_CLEAR = $0303;
  1773. WM_UNDO = $0304;
  1774. { Clipboard owner messages }
  1775. WM_RENDERFORMAT = $0305;
  1776. WM_RENDERALLFORMATS = $0306;
  1777. WM_DESTROYCLIPBOARD = $0307;
  1778. { Clipboard viewer messages }
  1779. WM_DRAWCLIPBOARD = $0308;
  1780. WM_PAINTCLIPBOARD = $0309;
  1781. WM_SIZECLIPBOARD = $030B;
  1782. WM_VSCROLLCLIPBOARD = $030A;
  1783. WM_HSCROLLCLIPBOARD = $030E;
  1784. WM_ASKCBFORMATNAME = $030C;
  1785. WM_CHANGECBCHAIN = $030D;
  1786. { Mouse cursor support }
  1787. { Standard cursor resource IDs }
  1788. IDC_ARROW = MAKEINTRESOURCE(32512);
  1789. IDC_IBEAM = MAKEINTRESOURCE(32513);
  1790. IDC_WAIT = MAKEINTRESOURCE(32514);
  1791. IDC_CROSS = MAKEINTRESOURCE(32515);
  1792. IDC_UPARROW = MAKEINTRESOURCE(32516);
  1793. IDC_SIZE = MAKEINTRESOURCE(32640);
  1794. IDC_ICON = MAKEINTRESOURCE(32641);
  1795. IDC_SIZENWSE = MAKEINTRESOURCE(32642);
  1796. IDC_SIZENESW = MAKEINTRESOURCE(32643);
  1797. IDC_SIZEWE = MAKEINTRESOURCE(32644);
  1798. IDC_SIZENS = MAKEINTRESOURCE(32645);
  1799. WM_SETCURSOR = $0020;
  1800. { Icon support }
  1801. { Standard icon resource IDs }
  1802. IDI_APPLICATION = MAKEINTRESOURCE(32512);
  1803. IDI_HAND = MAKEINTRESOURCE(32513);
  1804. IDI_QUESTION = MAKEINTRESOURCE(32514);
  1805. IDI_EXCLAMATION = MAKEINTRESOURCE(32515);
  1806. IDI_ASTERISK = MAKEINTRESOURCE(32516);
  1807. { Message Box support }
  1808. MB_OK = $0000;
  1809. MB_OKCANCEL = $0001;
  1810. MB_ABORTRETRYIGNORE = $0002;
  1811. MB_YESNOCANCEL = $0003;
  1812. MB_YESNO = $0004;
  1813. MB_RETRYCANCEL = $0005;
  1814. MB_TYPEMASK = $000F;
  1815. MB_ICONHAND = $0010;
  1816. MB_ICONQUESTION = $0020;
  1817. MB_ICONEXCLAMATION = $0030;
  1818. MB_ICONASTERISK = $0040;
  1819. MB_ICONMASK = $00F0;
  1820. MB_ICONINFORMATION = MB_ICONASTERISK;
  1821. MB_ICONSTOP = MB_ICONHAND;
  1822. MB_DEFBUTTON1 = $0000;
  1823. MB_DEFBUTTON2 = $0100;
  1824. MB_DEFBUTTON3 = $0200;
  1825. MB_DEFMASK = $0F00;
  1826. MB_APPLMODAL = $0000;
  1827. MB_SYSTEMMODAL = $1000;
  1828. MB_TASKMODAL = $2000;
  1829. MB_NOFOCUS = $8000;
  1830. { WM_SYSCOMMAND support }
  1831. WM_SYSCOMMAND = $0112;
  1832. { System Menu Command Values }
  1833. SC_SIZE = $F000;
  1834. SC_MOVE = $F010;
  1835. SC_MINIMIZE = $F020;
  1836. SC_MAXIMIZE = $F030;
  1837. SC_NEXTWINDOW = $F040;
  1838. SC_PREVWINDOW = $F050;
  1839. SC_CLOSE = $F060;
  1840. SC_VSCROLL = $F070;
  1841. SC_HSCROLL = $F080;
  1842. SC_MOUSEMENU = $F090;
  1843. SC_KEYMENU = $F100;
  1844. SC_ARRANGE = $F110;
  1845. SC_RESTORE = $F120;
  1846. SC_TASKLIST = $F130;
  1847. SC_SCREENSAVE = $F140;
  1848. SC_HOTKEY = $F150;
  1849. { Obsolete names }
  1850. SC_ICON = SC_MINIMIZE;
  1851. SC_ZOOM = SC_MAXIMIZE;
  1852. { MDI Support }
  1853. type
  1854. { CreateWindow lpParams structure for creating MDI client }
  1855. PCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  1856. LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT; far;
  1857. CLIENTCREATESTRUCT = record
  1858. hWindowMenu: HMENU;
  1859. idFirstChild: UINT;
  1860. end;
  1861. TClientCreateStruct = CLIENTCREATESTRUCT;
  1862. const
  1863. { MDI messages }
  1864. WM_MDICREATE = $0220;
  1865. WM_MDIDESTROY = $0221;
  1866. WM_MDIACTIVATE = $0222;
  1867. WM_MDIRESTORE = $0223;
  1868. WM_MDINEXT = $0224;
  1869. WM_MDIMAXIMIZE = $0225;
  1870. WM_MDITILE = $0226;
  1871. WM_MDICASCADE = $0227;
  1872. WM_MDIICONARRANGE = $0228;
  1873. WM_MDIGETACTIVE = $0229;
  1874. WM_MDISETMENU = $0230;
  1875. type
  1876. { WM_MDICREATE message structure }
  1877. PMDICREATESTRUCT = ^MDICREATESTRUCT;
  1878. LPMDICREATESTRUCT = ^MDICREATESTRUCT; far;
  1879. MDICREATESTRUCT = record
  1880. szClass: LPCSTR;
  1881. szTitle: LPCSTR;
  1882. hOwner: HINST;
  1883. x: SmallInt;
  1884. y: SmallInt;
  1885. cx: SmallInt;
  1886. cy: SmallInt;
  1887. style: DWORD;
  1888. lParam: LPARAM;
  1889. end;
  1890. TMDICreateStruct = MDICREATESTRUCT;
  1891. const
  1892. WM_CHILDACTIVATE = $0022;
  1893. { Dialog and Control Management }
  1894. { Dialog window class }
  1895. WC_DIALOG = MAKEINTATOM($8002);
  1896. { cbWndExtra bytes needed by dialog manager for dialog classes }
  1897. DLGWINDOWEXTRA = 30;
  1898. { Dialog styles }
  1899. DS_ABSALIGN = $01;
  1900. DS_SYSMODAL = $02;
  1901. DS_LOCALEDIT = $20;
  1902. DS_SETFONT = $40;
  1903. DS_MODALFRAME = $80;
  1904. DS_NOIDLEMSG = $100;
  1905. { Dialog messages }
  1906. DM_GETDEFID = (WM_USER+0);
  1907. DM_SETDEFID = (WM_USER+1);
  1908. { Returned in HIWORD() of DM_GETDEFID result if msg is supported }
  1909. DC_HASDEFID = $534B;
  1910. { Dialog notification messages }
  1911. WM_INITDIALOG = $0110;
  1912. WM_NEXTDLGCTL = $0028;
  1913. WM_PARENTNOTIFY = $0210;
  1914. WM_ENTERIDLE = $0121;
  1915. type
  1916. DLGPROC = function(hwndDlg: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; far;
  1917. const
  1918. { Get/SetWindowWord/Long offsets for use with WC_DIALOG windows }
  1919. DWL_MSGRESULT = 0;
  1920. DWL_DLGPROC = 4;
  1921. DWL_USER = 8;
  1922. WM_GETDLGCODE = $0087;
  1923. { dialog codes }
  1924. DLGC_WANTARROWS = $0001;
  1925. DLGC_WANTTAB = $0002;
  1926. DLGC_WANTALLKEYS = $0004;
  1927. DLGC_WANTMESSAGE = $0004;
  1928. DLGC_HASSETSEL = $0008;
  1929. DLGC_DEFPUSHBUTTON = $0010;
  1930. DLGC_UNDEFPUSHBUTTON = $0020;
  1931. DLGC_RADIOBUTTON = $0040;
  1932. DLGC_WANTCHARS = $0080;
  1933. DLGC_STATIC = $0100;
  1934. DLGC_BUTTON = $2000;
  1935. WM_CTLCOLOR = $0019;
  1936. { WM_CTLCOLOR control IDs }
  1937. CTLCOLOR_MSGBOX = 0;
  1938. CTLCOLOR_EDIT = 1;
  1939. CTLCOLOR_LISTBOX = 2;
  1940. CTLCOLOR_BTN = 3;
  1941. CTLCOLOR_DLG = 4;
  1942. CTLCOLOR_SCROLLBAR = 5;
  1943. CTLCOLOR_STATIC = 6;
  1944. WM_SETFONT = $0030;
  1945. WM_GETFONT = $0031;
  1946. { Standard dialog button IDs }
  1947. IDOK = 1;
  1948. IDCANCEL = 2;
  1949. IDABORT = 3;
  1950. IDRETRY = 4;
  1951. IDIGNORE = 5;
  1952. IDYES = 6;
  1953. IDNO = 7;
  1954. { Owner draw control support }
  1955. { Owner draw control types }
  1956. ODT_MENU = 1;
  1957. ODT_LISTBOX = 2;
  1958. ODT_COMBOBOX = 3;
  1959. ODT_BUTTON = 4;
  1960. { Owner draw actions }
  1961. ODA_DRAWENTIRE = $0001;
  1962. ODA_SELECT = $0002;
  1963. ODA_FOCUS = $0004;
  1964. { Owner draw state }
  1965. ODS_SELECTED = $0001;
  1966. ODS_GRAYED = $0002;
  1967. ODS_DISABLED = $0004;
  1968. ODS_CHECKED = $0008;
  1969. ODS_FOCUS = $0010;
  1970. WM_DRAWITEM = $002B;
  1971. type
  1972. PDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  1973. NPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; near;
  1974. LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT; far;
  1975. DRAWITEMSTRUCT = record
  1976. CtlType: UINT;
  1977. CtlID: UINT;
  1978. itemID: UINT;
  1979. itemAction: UINT;
  1980. itemState: UINT;
  1981. hwndItem: HWND;
  1982. hDC: HDC;
  1983. rcItem: RECT;
  1984. itemData: DWORD;
  1985. end;
  1986. TDrawItemStruct = DRAWITEMSTRUCT;
  1987. const
  1988. WM_MEASUREITEM = $002C;
  1989. type
  1990. PMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  1991. NPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; near;
  1992. LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT; far;
  1993. MEASUREITEMSTRUCT = record
  1994. CtlType: UINT;
  1995. CtlID: UINT;
  1996. itemID: UINT;
  1997. itemWidth: UINT;
  1998. itemHeight: UINT;
  1999. itemData: DWORD;
  2000. end;
  2001. TMeasureItemStruct = MEASUREITEMSTRUCT;
  2002. const
  2003. WM_DELETEITEM = $002D;
  2004. type
  2005. PDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
  2006. NPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT; near;
  2007. LPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT; far;
  2008. DELETEITEMSTRUCT = record
  2009. CtlType: UINT;
  2010. CtlID: UINT;
  2011. itemID: UINT;
  2012. hwndItem: HWND;
  2013. itemData: DWORD;
  2014. end;
  2015. TDeleteItemStruct = DELETEITEMSTRUCT;
  2016. const
  2017. WM_COMPAREITEM = $0039;
  2018. type
  2019. PCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
  2020. NPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT; near;
  2021. LPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT; far;
  2022. COMPAREITEMSTRUCT = record
  2023. CtlType: UINT;
  2024. CtlID: UINT;
  2025. hwndItem: HWND;
  2026. itemID1: UINT;
  2027. itemData1: DWORD;
  2028. itemID2: UINT;
  2029. itemData2: DWORD;
  2030. end;
  2031. TCompareItemStruct = COMPAREITEMSTRUCT;
  2032. { Static control }
  2033. const
  2034. { Static Control Styles }
  2035. SS_LEFT = $00000000;
  2036. SS_CENTER = $00000001;
  2037. SS_RIGHT = $00000002;
  2038. SS_ICON = $00000003;
  2039. SS_BLACKRECT = $00000004;
  2040. SS_GRAYRECT = $00000005;
  2041. SS_WHITERECT = $00000006;
  2042. SS_BLACKFRAME = $00000007;
  2043. SS_GRAYFRAME = $00000008;
  2044. SS_WHITEFRAME = $00000009;
  2045. SS_SIMPLE = $0000000B;
  2046. SS_LEFTNOWORDWRAP = $0000000C;
  2047. SS_NOPREFIX = $00000080;
  2048. { Button control }
  2049. { Button Control Styles }
  2050. BS_PUSHBUTTON = $00000000;
  2051. BS_DEFPUSHBUTTON = $00000001;
  2052. BS_CHECKBOX = $00000002;
  2053. BS_AUTOCHECKBOX = $00000003;
  2054. BS_RADIOBUTTON = $00000004;
  2055. BS_3STATE = $00000005;
  2056. BS_AUTO3STATE = $00000006;
  2057. BS_GROUPBOX = $00000007;
  2058. BS_USERBUTTON = $00000008;
  2059. BS_AUTORADIOBUTTON = $00000009;
  2060. BS_OWNERDRAW = $0000000B;
  2061. BS_LEFTTEXT = $00000020;
  2062. { Button Control Messages }
  2063. BM_GETCHECK = (WM_USER+0);
  2064. BM_SETCHECK = (WM_USER+1);
  2065. BM_GETSTATE = (WM_USER+2);
  2066. BM_SETSTATE = (WM_USER+3);
  2067. BM_SETSTYLE = (WM_USER+4);
  2068. { User Button Notification Codes }
  2069. BN_CLICKED = 0;
  2070. BN_PAINT = 1;
  2071. BN_HILITE = 2;
  2072. BN_UNHILITE = 3;
  2073. BN_DISABLE = 4;
  2074. BN_DOUBLECLICKED = 5;
  2075. { Edit control }
  2076. { Edit control styles }
  2077. ES_LEFT = $00000000;
  2078. ES_CENTER = $00000001;
  2079. ES_RIGHT = $00000002;
  2080. ES_MULTILINE = $00000004;
  2081. ES_UPPERCASE = $00000008;
  2082. ES_LOWERCASE = $00000010;
  2083. ES_PASSWORD = $00000020;
  2084. ES_AUTOVSCROLL = $00000040;
  2085. ES_AUTOHSCROLL = $00000080;
  2086. ES_NOHIDESEL = $00000100;
  2087. ES_OEMCONVERT = $00000400;
  2088. { Edit control messages }
  2089. EM_GETSEL = (WM_USER+0);
  2090. EM_SETSEL = (WM_USER+1);
  2091. EM_GETRECT = (WM_USER+2);
  2092. EM_SETRECT = (WM_USER+3);
  2093. EM_SETRECTNP = (WM_USER+4);
  2094. EM_LINESCROLL = (WM_USER+6);
  2095. EM_GETMODIFY = (WM_USER+8);
  2096. EM_SETMODIFY = (WM_USER+9);
  2097. EM_GETLINECOUNT = (WM_USER+10);
  2098. EM_LINEINDEX = (WM_USER+11);
  2099. EM_SETHANDLE = (WM_USER+12);
  2100. EM_GETHANDLE = (WM_USER+13);
  2101. EM_LINELENGTH = (WM_USER+17);
  2102. EM_REPLACESEL = (WM_USER+18);
  2103. EM_SETFONT = (WM_USER+19); { NOT IMPLEMENTED: use WM_SETFONT }
  2104. EM_GETLINE = (WM_USER+20);
  2105. EM_LIMITTEXT = (WM_USER+21);
  2106. EM_CANUNDO = (WM_USER+22);
  2107. EM_UNDO = (WM_USER+23);
  2108. EM_FMTLINES = (WM_USER+24);
  2109. EM_LINEFROMCHAR = (WM_USER+25);
  2110. EM_SETWORDBREAK = (WM_USER+26); { NOT IMPLEMENTED: use EM_SETWORDBREAK }
  2111. EM_SETTABSTOPS = (WM_USER+27);
  2112. EM_SETPASSWORDCHAR = (WM_USER+28);
  2113. EM_EMPTYUNDOBUFFER = (WM_USER+29);
  2114. { Edit control notification codes }
  2115. EN_SETFOCUS = $0100;
  2116. EN_KILLFOCUS = $0200;
  2117. EN_CHANGE = $0300;
  2118. EN_UPDATE = $0400;
  2119. EN_ERRSPACE = $0500;
  2120. EN_MAXTEXT = $0501;
  2121. EN_HSCROLL = $0601;
  2122. EN_VSCROLL = $0602;
  2123. { Scroll bar control }
  2124. { Also see scrolling support }
  2125. { Scroll bar styles }
  2126. SBS_HORZ = $0000;
  2127. SBS_VERT = $0001;
  2128. SBS_TOPALIGN = $0002;
  2129. SBS_LEFTALIGN = $0002;
  2130. SBS_BOTTOMALIGN = $0004;
  2131. SBS_RIGHTALIGN = $0004;
  2132. SBS_SIZEBOXTOPLEFTALIGN = $0002;
  2133. SBS_SIZEBOXBOTTOMRIGHTALIGN = $0004;
  2134. SBS_SIZEBOX = $0008;
  2135. { Listbox control }
  2136. { Listbox styles }
  2137. LBS_NOTIFY = $0001;
  2138. LBS_SORT = $0002;
  2139. LBS_NOREDRAW = $0004;
  2140. LBS_MULTIPLESEL = $0008;
  2141. LBS_OWNERDRAWFIXED = $0010;
  2142. LBS_OWNERDRAWVARIABLE = $0020;
  2143. LBS_HASSTRINGS = $0040;
  2144. LBS_USETABSTOPS = $0080;
  2145. LBS_NOINTEGRALHEIGHT = $0100;
  2146. LBS_MULTICOLUMN = $0200;
  2147. LBS_WANTKEYBOARDINPUT = $0400;
  2148. LBS_EXTENDEDSEL = $0800;
  2149. LBS_STANDARD = (LBS_NOTIFY or LBS_SORT or WS_VSCROLL or WS_BORDER);
  2150. { Listbox messages }
  2151. LB_ADDSTRING = (WM_USER+1);
  2152. LB_INSERTSTRING = (WM_USER+2);
  2153. LB_DELETESTRING = (WM_USER+3);
  2154. LB_RESETCONTENT = (WM_USER+5);
  2155. LB_SETSEL = (WM_USER+6);
  2156. LB_SETCURSEL = (WM_USER+7);
  2157. LB_GETSEL = (WM_USER+8);
  2158. LB_GETCURSEL = (WM_USER+9);
  2159. LB_GETTEXT = (WM_USER+10);
  2160. LB_GETTEXTLEN = (WM_USER+11);
  2161. LB_GETCOUNT = (WM_USER+12);
  2162. LB_SELECTSTRING = (WM_USER+13);
  2163. LB_DIR = (WM_USER+14);
  2164. LB_GETTOPINDEX = (WM_USER+15);
  2165. LB_FINDSTRING = (WM_USER+16);
  2166. LB_GETSELCOUNT = (WM_USER+17);
  2167. LB_GETSELITEMS = (WM_USER+18);
  2168. LB_SETTABSTOPS = (WM_USER+19);
  2169. LB_GETHORIZONTALEXTENT = (WM_USER+20);
  2170. LB_SETHORIZONTALEXTENT = (WM_USER+21);
  2171. LB_SETCOLUMNWIDTH = (WM_USER+22);
  2172. LB_SETTOPINDEX = (WM_USER+24);
  2173. LB_GETITEMRECT = (WM_USER+25);
  2174. LB_GETITEMDATA = (WM_USER+26);
  2175. LB_SETITEMDATA = (WM_USER+27);
  2176. LB_SELITEMRANGE = (WM_USER+28);
  2177. LB_SETCARETINDEX = (WM_USER+31);
  2178. LB_GETCARETINDEX = (WM_USER+32);
  2179. { Listbox notification codes }
  2180. LBN_ERRSPACE = (-2);
  2181. LBN_SELCHANGE = 1;
  2182. LBN_DBLCLK = 2;
  2183. LBN_SELCANCEL = 3;
  2184. LBN_SETFOCUS = 4;
  2185. LBN_KILLFOCUS = 5;
  2186. { Listbox notification messages }
  2187. WM_VKEYTOITEM = $002E;
  2188. WM_CHARTOITEM = $002F;
  2189. { Listbox message return values }
  2190. LB_OKAY = 0;
  2191. LB_ERR = (-1);
  2192. LB_ERRSPACE = (-2);
  2193. LB_CTLCODE = 0;
  2194. { Dialog directory support }
  2195. { DlgDirList, DlgDirListComboBox flags values }
  2196. DDL_READWRITE = $0000;
  2197. DDL_READONLY = $0001;
  2198. DDL_HIDDEN = $0002;
  2199. DDL_SYSTEM = $0004;
  2200. DDL_DIRECTORY = $0010;
  2201. DDL_ARCHIVE = $0020;
  2202. DDL_POSTMSGS = $2000;
  2203. DDL_DRIVES = $4000;
  2204. DDL_EXCLUSIVE = $8000;
  2205. { Combo box control }
  2206. { Combo box styles }
  2207. CBS_SIMPLE = $0001;
  2208. CBS_DROPDOWN = $0002;
  2209. CBS_DROPDOWNLIST = $0003;
  2210. CBS_OWNERDRAWFIXED = $0010;
  2211. CBS_OWNERDRAWVARIABLE = $0020;
  2212. CBS_AUTOHSCROLL = $0040;
  2213. CBS_OEMCONVERT = $0080;
  2214. CBS_SORT = $0100;
  2215. CBS_HASSTRINGS = $0200;
  2216. CBS_NOINTEGRALHEIGHT = $0400;
  2217. { Combo box messages }
  2218. CB_GETEDITSEL = (WM_USER+0);
  2219. CB_LIMITTEXT = (WM_USER+1);
  2220. CB_SETEDITSEL = (WM_USER+2);
  2221. CB_ADDSTRING = (WM_USER+3);
  2222. CB_DELETESTRING = (WM_USER+4);
  2223. CB_DIR = (WM_USER+5);
  2224. CB_GETCOUNT = (WM_USER+6);
  2225. CB_GETCURSEL = (WM_USER+7);
  2226. CB_GETLBTEXT = (WM_USER+8);
  2227. CB_GETLBTEXTLEN = (WM_USER+9);
  2228. CB_INSERTSTRING = (WM_USER+10);
  2229. CB_RESETCONTENT = (WM_USER+11);
  2230. CB_FINDSTRING = (WM_USER+12);
  2231. CB_SELECTSTRING = (WM_USER+13);
  2232. CB_SETCURSEL = (WM_USER+14);
  2233. CB_SHOWDROPDOWN = (WM_USER+15);
  2234. CB_GETITEMDATA = (WM_USER+16);
  2235. CB_SETITEMDATA = (WM_USER+17);
  2236. { Combo box notification codes }
  2237. CBN_ERRSPACE = (-1);
  2238. CBN_SELCHANGE = 1;
  2239. CBN_DBLCLK = 2;
  2240. CBN_SETFOCUS = 3;
  2241. CBN_KILLFOCUS = 4;
  2242. CBN_EDITCHANGE = 5;
  2243. CBN_EDITUPDATE = 6;
  2244. CBN_DROPDOWN = 7;
  2245. { Combo box message return values }
  2246. CB_OKAY = 0;
  2247. CB_ERR = (-1);
  2248. CB_ERRSPACE = (-2);
  2249. type
  2250. { Windows hook support }
  2251. LPHHOOK = ^HHOOK; far;
  2252. HHOOK = DWORD;
  2253. HOOKPROC = function(code: SmallInt; wParam: WPARAM; lParam: LPARAM): LRESULT; far;
  2254. THookProc = HOOKPROC;
  2255. const
  2256. { Standard hook code }
  2257. HC_ACTION = 0;
  2258. { Obsolete hook codes (NO LONGER SUPPORTED) }
  2259. HC_GETLPLPFN = (-3);
  2260. HC_LPLPFNNEXT = (-2);
  2261. HC_LPFNNEXT = (-1);
  2262. { Computer-based-training (CBT) support }
  2263. WM_QUEUESYNC = $0023;
  2264. { SetWindowsHook() code }
  2265. WH_CBT = 5;
  2266. HCBT_MOVESIZE = 0;
  2267. HCBT_MINMAX = 1;
  2268. HCBT_QS = 2;
  2269. HCBT_CREATEWND = 3;
  2270. HCBT_DESTROYWND = 4;
  2271. HCBT_ACTIVATE = 5;
  2272. HCBT_CLICKSKIPPED = 6;
  2273. HCBT_KEYSKIPPED = 7;
  2274. HCBT_SYSCOMMAND = 8;
  2275. HCBT_SETFOCUS = 9;
  2276. { Journalling support }
  2277. WH_JOURNALRECORD = 0;
  2278. WH_JOURNALPLAYBACK = 1;
  2279. { Journalling hook codes }
  2280. HC_GETNEXT = 1;
  2281. HC_SKIP = 2;
  2282. HC_NOREMOVE = 3;
  2283. HC_NOREM = HC_NOREMOVE;
  2284. HC_SYSMODALON = 4;
  2285. HC_SYSMODALOFF = 5;
  2286. type
  2287. { Journalling message structure }
  2288. PEVENTMSG = ^EVENTMSG;
  2289. NPEVENTMSG = ^EVENTMSG; near;
  2290. LPEVENTMSG = ^EVENTMSG; far;
  2291. EVENTMSG = record
  2292. message: UINT;
  2293. paramL: UINT;
  2294. paramH: UINT;
  2295. time: DWORD;
  2296. end;
  2297. TEventMsg = EVENTMSG;
  2298. { Help support }
  2299. const
  2300. { WinHelp() commands }
  2301. HELP_CONTEXT = $0001;
  2302. HELP_QUIT = $0002;
  2303. HELP_INDEX = $0003;
  2304. HELP_CONTENTS = $0003;
  2305. HELP_HELPONHELP = $0004;
  2306. HELP_SETINDEX = $0005;
  2307. HELP_SETCONTENTS = $0005;
  2308. HELP_CONTEXTPOPUP = $0008;
  2309. HELP_FORCEFILE = $0009;
  2310. HELP_KEY = $0101;
  2311. HELP_COMMAND = $0102;
  2312. HELP_PARTIALKEY = $0105;
  2313. HELP_MULTIKEY = $0201;
  2314. HELP_SETWINPOS = $0203;
  2315. type
  2316. PMULTIKEYHELP = ^MULTIKEYHELP;
  2317. LPMULTIKEYHELP = ^MULTIKEYHELP; far;
  2318. MULTIKEYHELP = record
  2319. mkSize: UINT;
  2320. mkKeylist: BYTE;
  2321. szKeyphrase: array [0..0] of BYTE;
  2322. end;
  2323. TMultiKeyHelp = MULTIKEYHELP;
  2324. PHELPWININFO = ^HELPWININFO;
  2325. NPHELPWININFO = ^HELPWININFO; near;
  2326. LPHELPWININFO = ^HELPWININFO; far;
  2327. HELPWININFO = record
  2328. wStructSize: SmallInt;
  2329. x: SmallInt;
  2330. y: SmallInt;
  2331. dx: SmallInt;
  2332. dy: SmallInt;
  2333. wMax: SmallInt;
  2334. rgchMember: array [0..1] of AnsiChar;
  2335. end;
  2336. THelpWinInfo = HELPWININFO;
  2337. { Sound support }
  2338. const
  2339. { SetSoundNoise() Sources }
  2340. S_PERIOD512 = 0;
  2341. S_PERIOD1024 = 1;
  2342. S_PERIOD2048 = 2;
  2343. S_PERIODVOICE = 3;
  2344. S_WHITE512 = 4;
  2345. S_WHITE1024 = 5;
  2346. S_WHITE2048 = 6;
  2347. S_WHITEVOICE = 7;
  2348. { WaitSoundState() constants }
  2349. S_QUEUEEMPTY = 0;
  2350. S_THRESHOLD = 1;
  2351. S_ALLTHRESHOLD = 2;
  2352. { Accent Modes }
  2353. S_NORMAL = 0;
  2354. S_LEGATO = 1;
  2355. S_STACCATO = 2;
  2356. { Error return values }
  2357. S_SERDVNA = (-1);
  2358. S_SEROFM = (-2);
  2359. S_SERMACT = (-3);
  2360. S_SERQFUL = (-4);
  2361. S_SERBDNT = (-5);
  2362. S_SERDLN = (-6);
  2363. S_SERDCC = (-7);
  2364. S_SERDTP = (-8);
  2365. S_SERDVL = (-9);
  2366. S_SERDMD = (-10);
  2367. S_SERDSH = (-11);
  2368. S_SERDPT = (-12);
  2369. S_SERDFQ = (-13);
  2370. S_SERDDR = (-14);
  2371. S_SERDSR = (-15);
  2372. S_SERDST = (-16);
  2373. { Comm support }
  2374. NOPARITY = 0;
  2375. ODDPARITY = 1;
  2376. EVENPARITY = 2;
  2377. MARKPARITY = 3;
  2378. SPACEPARITY = 4;
  2379. ONESTOPBIT = 0;
  2380. ONE5STOPBITS = 1;
  2381. TWOSTOPBITS = 2;
  2382. IGNORE = 0;
  2383. INFINITE = $FFFF;
  2384. { Error Flags }
  2385. CE_RXOVER = $0001;
  2386. CE_OVERRUN = $0002;
  2387. CE_RXPARITY = $0004;
  2388. CE_FRAME = $0008;
  2389. CE_BREAK = $0010;
  2390. CE_CTSTO = $0020;
  2391. CE_DSRTO = $0040;
  2392. CE_RLSDTO = $0080;
  2393. CE_TXFULL = $0100;
  2394. CE_PTO = $0200;
  2395. CE_IOE = $0400;
  2396. CE_DNS = $0800;
  2397. CE_OOP = $1000;
  2398. CE_MODE = $8000;
  2399. IE_BADID = (-1);
  2400. IE_OPEN = (-2);
  2401. IE_NOPEN = (-3);
  2402. IE_MEMORY = (-4);
  2403. IE_DEFAULT = (-5);
  2404. IE_HARDWARE = (-10);
  2405. IE_BYTESIZE = (-11);
  2406. IE_BAUDRATE = (-12);
  2407. { Events }
  2408. EV_RXCHAR = $0001;
  2409. EV_RXFLAG = $0002;
  2410. EV_TXEMPTY = $0004;
  2411. EV_CTS = $0008;
  2412. EV_DSR = $0010;
  2413. EV_RLSD = $0020;
  2414. EV_BREAK = $0040;
  2415. EV_ERR = $0080;
  2416. EV_RING = $0100;
  2417. EV_PERR = $0200;
  2418. EV_CTSS = $0400;
  2419. EV_DSRS = $0800;
  2420. EV_RLSDS = $1000;
  2421. EV_RingTe = $2000;
  2422. // EV_RINGTE = EV_RingTe;
  2423. { Escape Functions }
  2424. SETXOFF = 1;
  2425. SETXON = 2;
  2426. SETRTS = 3;
  2427. CLRRTS = 4;
  2428. SETDTR = 5;
  2429. CLRDTR = 6;
  2430. RESETDEV = 7;
  2431. LPTx = $80;
  2432. type
  2433. PDCB = ^DCB;
  2434. LPDCB = ^DCB; far;
  2435. DCB = record
  2436. Id: BYTE;
  2437. BaudRate: UINT;
  2438. ByteSize: BYTE;
  2439. Parity: BYTE;
  2440. StopBits: BYTE;
  2441. RlsTimeout: UINT;
  2442. CtsTimeout: UINT;
  2443. DsrTimeout: UINT;
  2444. Flags: Word;
  2445. { UINT fBinary :1;
  2446. UINT fRtsDisable :1;
  2447. UINT fParity :1;
  2448. UINT fOutxCtsFlow :1;
  2449. UINT fOutxDsrFlow :1;
  2450. UINT fDummy :2;
  2451. UINT fDtrDisable :1;
  2452. UINT fOutX :1;
  2453. UINT fInX :1;
  2454. UINT fPeChar :1;
  2455. UINT fNull :1;
  2456. UINT fChEvt :1;
  2457. UINT fDtrflow :1;
  2458. UINT fRtsflow :1;
  2459. UINT fDummy2 :1;}
  2460. XonChar: AnsiChar;
  2461. XoffChar: AnsiChar;
  2462. XonLim: UINT;
  2463. XoffLim: UINT;
  2464. PeChar: AnsiChar;
  2465. EofChar: AnsiChar;
  2466. EvtChar: AnsiChar;
  2467. TxDelay: UINT;
  2468. end;
  2469. TDCB = DCB;
  2470. const
  2471. DCB_Binary = $0001;
  2472. DCB_RtsDisable = $0002;
  2473. DCB_Parity = $0004;
  2474. DCB_OutxCtsFlow = $0008;
  2475. DCB_OutxDsrFlow = $0010;
  2476. DCB_Dummy = $0060;
  2477. DCB_DtrDisable = $0080;
  2478. DCB_OutX = $0100;
  2479. DCB_InX = $0200;
  2480. DCB_PeChar = $0400;
  2481. DCB_Null = $0800;
  2482. DCB_ChEvt = $1000;
  2483. DCB_Dtrflow = $2000;
  2484. DCB_Rtsflow = $4000;
  2485. DCB_Dummy2 = $8000;
  2486. type
  2487. PCOMSTAT = ^COMSTAT;
  2488. LPCOMSTAT = ^COMSTAT; far;
  2489. COMSTAT = record
  2490. case Integer of
  2491. 0: (
  2492. status: BYTE;
  2493. cbInQue: UINT;
  2494. cbOutQue: UINT;
  2495. );
  2496. 1: (
  2497. { BP7 compatible field name, overlaid on top of 'status' }
  2498. Flags: Byte
  2499. );
  2500. end;
  2501. TComStat = COMSTAT;
  2502. const
  2503. CSTF_CTSHOLD = $01;
  2504. CSTF_DSRHOLD = $02;
  2505. CSTF_RLSDHOLD = $04;
  2506. CSTF_XOFFHOLD = $08;
  2507. CSTF_XOFFSENT = $10;
  2508. CSTF_EOF = $20;
  2509. CSTF_TXIM = $40;
  2510. { BP7 compatibility constants }
  2511. COM_CtsHold = $01;
  2512. COM_DsrHold = $02;
  2513. COM_RlsdHold = $04;
  2514. COM_XoffHold = $08;
  2515. COM_XoffSent = $10;
  2516. COM_Eof = $20;
  2517. COM_Txim = $40;