pmwin.pas 85 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564
  1. {****************************************************************************
  2. Copyright (c) 1993,94 by Florian Kl„mpfl
  3. ****************************************************************************}
  4. unit pmwin;
  5. interface
  6. uses
  7. os2def;
  8. type
  9. MPARAM = pointer;
  10. PMPARAM = ^MPARAM;
  11. MRESULT = pointer;
  12. PMRESULT = ^MRESULT;
  13. {!!!!!!!!! eigentlich Prozedurevariablen }
  14. FNWP = pointer;
  15. PFN = pointer; { muá auáerdem in OS2DEF.PP definiert werden }
  16. PFNWP = ^FNWP;
  17. const
  18. WS_VISIBLE = $80000000;
  19. WS_DISABLED = $40000000;
  20. WS_CLIPCHILDREN = $20000000;
  21. WS_CLIPSIBLINGS = $10000000;
  22. WS_PARENTCLIP = $08000000;
  23. WS_SAVEBITS = $04000000;
  24. WS_SYNCPAINT = $02000000;
  25. WS_MINIMIZED = $01000000;
  26. WS_MAXIMIZED = $00800000;
  27. WS_ANIMATE = $00400000;
  28. WS_GROUP = $00010000;
  29. WS_TABSTOP = $00020000;
  30. WS_MULTISELECT = $00040000;
  31. CS_MOVENOTIFY = $00000001;
  32. CS_SIZEREDRAW = $00000004;
  33. CS_HITTEST = $00000008;
  34. CS_PUBLIC = $00000010;
  35. CS_FRAME = $00000020;
  36. CS_CLIPCHILDREN = $20000000;
  37. CS_CLIPSIBLINGS = $10000000;
  38. CS_PARENTCLIP = $08000000;
  39. CS_SAVEBITS = $04000000;
  40. CS_SYNCPAINT = $02000000;
  41. HWND_DESKTOP = 1;
  42. HWND_OBJECT = 2;
  43. HWND_TOP = 3;
  44. HWND_BOTTOM = 4;
  45. HWND_THREADCAPTURE = 5;
  46. function WinRegisterClass(hab : HAB;pszClassName : PSZ;pfnWndProc : PFNWP;flStyle : ULONG;cbWindowData : ULONG) : BOOL;
  47. function WinDefWindowProc(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
  48. function WinDestroyWindow(hwnd : HWND) : BOOL;
  49. function WinShowWindow(hwnd : HWND;fShow : BOOL) : BOOL;
  50. function WinQueryWindowRect(hwnd : HWND;prclDest : PRECTL) : BOOL;
  51. function WinGetPS(hwnd : HWND) : HPS;
  52. function WinReleasePS(hps : HPS) : BOOL;
  53. function WinEndPaint(hps : HPS) : BOOL;
  54. function WinGetClipPS(hwnd : HWND;hwndClip : HWND;fl : ULONG) : HPS;
  55. function WinIsWindowShowing(hwnd : HWND) : BOOL;
  56. function WinBeginPaint(hwnd : HWND;hps : HPS;prclPaint : PRECTL) : HPS;
  57. function WinOpenWindowDC(hwnd : HWND) : HDC;
  58. function WinScrollWindow(hwnd : HWND;dx : LONG;dy : LONG;prclScroll : PRECTL;prclClip : PRECTL;hrgnUpdate : HRGN;prclUpdate : PRECTL;rgfsw : ULONG) : LONG;
  59. const
  60. PSF_LOCKWINDOWUPDATE = $0001;
  61. PSF_CLIPUPWARDS = $0002;
  62. PSF_CLIPDOWNWARDS = $0004;
  63. PSF_CLIPSIBLINGS = $0008;
  64. PSF_CLIPCHILDREN = $0010;
  65. PSF_PARENTCLIP = $0020;
  66. SW_SCROLLCHILDREN = $0001;
  67. SW_INVALIDATERGN = $0002;
  68. function WinFillRect(hps : HPS;prcl : PRECTL;lColor : LONG) : BOOL;
  69. type
  70. QVERSDATA = record
  71. environment : USHORT;
  72. version : USHORT;
  73. end;
  74. PQVERSDATA = ^QVERSDATA;
  75. const
  76. QV_OS2 = $0000;
  77. QV_CMS = $0001;
  78. QV_TSO = $0002;
  79. QV_TSOBATCH = $0003;
  80. QV_OS400 = $0004;
  81. function WinQueryVersion(hab : HAB) : ULONG;
  82. function WinInitialize(flOptions : ULONG) : HAB;
  83. function WinTerminate(hab : HAB) : BOOL;
  84. function WinQueryAnchorBlock(hwnd : HWND) : HAB;
  85. function WinCreateWindow(hwndParent : HWND;pszClass : PSZ;pszName : PSZ;flStyle : ULONG;x : LONG;y : LONG;cx : LONG;cy : LONG;hwndOwner : HWND;hwndInsertBehind : HWND;id : ULONG;pCtlData : PVOID;pPresParams : PVOID) : HWND;
  86. function WinEnableWindow(hwnd : HWND;fEnable : BOOL) : BOOL;
  87. function WinIsWindowEnabled(hwnd : HWND) : BOOL;
  88. function WinEnableWindowUpdate(hwnd : HWND;fEnable : BOOL) : BOOL;
  89. function WinIsWindowVisible(hwnd : HWND) : BOOL;
  90. function WinQueryWindowText(hwnd : HWND;cchBufferMax : LONG;pchBuffer : PCH) : LONG;
  91. function WinSetWindowText(hwnd : HWND;pszText : PSZ) : BOOL;
  92. function WinQueryWindowTextLength(hwnd : HWND) : LONG;
  93. function WinWindowFromID(hwndParent : HWND;id : ULONG) : HWND;
  94. function WinIsWindow(hab : HAB;hwnd : HWND) : BOOL;
  95. function WinQueryWindow(hwnd : HWND;cmd : LONG) : HWND;
  96. function WinMultWindowFromIDs(hwndParent : HWND;prghwnd : PHWND;idFirst : ULONG;idLast : ULONG) : LONG;
  97. const
  98. QW_NEXT = 0;
  99. QW_PREV = 1;
  100. QW_TOP = 2;
  101. QW_BOTTOM = 3;
  102. QW_OWNER = 4;
  103. QW_PARENT = 5;
  104. QW_NEXTTOP = 6;
  105. QW_PREVTOP = 7;
  106. QW_FRAMEOWNER = 8;
  107. function WinSetParent(hwnd : HWND;hwndNewParent : HWND;fRedraw : BOOL) : BOOL;
  108. function WinIsChild(hwnd : HWND;hwndParent : HWND) : BOOL;
  109. function WinSetOwner(hwnd : HWND;hwndNewOwner : HWND) : BOOL;
  110. function WinQueryWindowProcess(hwnd : HWND;ppid : PPID;ptid : PTID) : BOOL;
  111. function WinQueryObjectWindow(hwndDesktop : HWND) : HWND;
  112. function WinQueryDesktopWindow(hab : HAB;hdc : HDC) : HWND;
  113. type
  114. SWP = record
  115. fl : ULONG;
  116. cy : LONG;
  117. cx : LONG;
  118. y : LONG;
  119. x : LONG;
  120. hwndInsertBehind : HWND;
  121. hwnd : HWND;
  122. ulReserved1 : ULONG;
  123. ulReserved2 : ULONG;
  124. end;
  125. PSWP = ^SWP;
  126. function WinSetWindowPos(hwnd : HWND;hwndInsertBehind : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fl : ULONG) : BOOL;
  127. function WinSetMultWindowPos(hab : HAB;pswp : PSWP;cswp : ULONG) : BOOL;
  128. function WinQueryWindowPos(hwnd : HWND;pswp : PSWP) : BOOL;
  129. const
  130. AWP_MINIMIZED = $00010000;
  131. AWP_MAXIMIZED = $00020000;
  132. AWP_RESTORED = $00040000;
  133. AWP_ACTIVATE = $00080000;
  134. AWP_DEACTIVATE = $00100000;
  135. SWP_SIZE = $0001;
  136. SWP_MOVE = $0002;
  137. SWP_ZORDER = $0004;
  138. SWP_SHOW = $0008;
  139. SWP_HIDE = $0010;
  140. SWP_NOREDRAW = $0020;
  141. SWP_NOADJUST = $0040;
  142. SWP_ACTIVATE = $0080;
  143. SWP_DEACTIVATE = $0100;
  144. SWP_EXTSTATECHANGE = $0200;
  145. SWP_MINIMIZE = $0400;
  146. SWP_MAXIMIZE = $0800;
  147. SWP_RESTORE = $1000;
  148. SWP_FOCUSACTIVATE = $2000;
  149. SWP_FOCUSDEACTIVATE = $4000;
  150. SWP_NOAUTOCLOSE = $8000;
  151. function WinUpdateWindow(hwnd : HWND) : BOOL;
  152. function WinInvalidateRect(hwnd : HWND;pwrc : PRECTL;fIncludeChildren : BOOL) : BOOL;
  153. function WinInvalidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;
  154. function WinInvertRect(hps : HPS;prcl : PRECTL) : BOOL;
  155. function WinDrawBitmap(hpsDst : HPS;hbm : HBITMAP;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore : LONG;clrBack : LONG;fl : ULONG) : BOOL;
  156. const
  157. DBM_NORMAL = $0000;
  158. DBM_INVERT = $0001;
  159. DBM_HALFTONE = $0002;
  160. DBM_STRETCH = $0004;
  161. DBM_IMAGEATTRS = $0008;
  162. function WinDrawText(hps : HPS;cchText : LONG;lpchText : PCH;prcl : PRECTL;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : LONG;
  163. const
  164. DT_LEFT = $0000;
  165. DT_QUERYEXTENT = $0002;
  166. DT_UNDERSCORE = $0010;
  167. DT_STRIKEOUT = $0020;
  168. DT_TEXTATTRS = $0040;
  169. DT_EXTERNALLEADING = $0080;
  170. DT_CENTER = $0100;
  171. DT_RIGHT = $0200;
  172. DT_TOP = $0000;
  173. DT_VCENTER = $0400;
  174. DT_BOTTOM = $0800;
  175. DT_HALFTONE = $1000;
  176. DT_MNEMONIC = $2000;
  177. DT_WORDBREAK = $4000;
  178. DT_ERASERECT = $8000;
  179. function WinDrawBorder(hps : HPS;prcl : PRECTL;cx : LONG;cy : LONG;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : BOOL;
  180. const
  181. DB_PATCOPY = $0000;
  182. DB_PATINVERT = $0001;
  183. DB_DESTINVERT = $0002;
  184. DB_AREAMIXMODE = $0003;
  185. DB_ROP = $0007;
  186. DB_INTERIOR = $0008;
  187. DB_AREAATTRS = $0010;
  188. DB_STANDARD = $0100;
  189. DB_DLGBORDER = $0200;
  190. function WinLoadString(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;
  191. function WinLoadMessage(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;
  192. function WinSetActiveWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;
  193. type
  194. CREATESTRUCT = record
  195. pPresParams : PVOID;
  196. pCtlData : PVOID;
  197. id : ULONG;
  198. hwndInsertBehind : HWND;
  199. hwndOwner : HWND;
  200. cy : LONG;
  201. cx : LONG;
  202. y : LONG;
  203. x : LONG;
  204. flStyle : ULONG;
  205. pszText : PSZ;
  206. pszClass : PSZ;
  207. hwndParent : HWND;
  208. end;
  209. PCREATESTRUCT = ^CREATESTRUCT;
  210. CLASSINFO = record
  211. flClassStyle : ULONG;
  212. pfnWindowProc : PFNWP;
  213. cbWindowData : ULONG;
  214. end;
  215. PCLASSINFO = ^CLASSINFO;
  216. function WinSubclassWindow(hwnd : HWND;pfnwp : PFNWP) : PFNWP;
  217. function WinQueryClassName(hwnd : HWND;cchMax : LONG;pch : PCH) : LONG;
  218. function WinQueryClassInfo(hab : HAB;pszClassName : PSZ;pClassInfo : PCLASSINFO) : BOOL;
  219. function WinQueryActiveWindow(hwndDesktop : HWND) : HWND;
  220. function WinIsThreadActive(hab : HAB) : BOOL;
  221. function WinQuerySysModalWindow(hwndDesktop : HWND) : HWND;
  222. function WinSetSysModalWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;
  223. function WinQueryWindowUShort(hwnd : HWND;index : LONG) : USHORT;
  224. function WinSetWindowUShort(hwnd : HWND;index : LONG;us : USHORT) : BOOL;
  225. function WinQueryWindowULong(hwnd : HWND;index : LONG) : ULONG;
  226. function WinSetWindowULong(hwnd : HWND;index : LONG;ul : ULONG) : BOOL;
  227. function WinQueryWindowPtr(hwnd : HWND;index : LONG) : PVOID;
  228. function WinSetWindowPtr(hwnd : HWND;index : LONG;p : PVOID) : BOOL;
  229. function WinSetWindowBits(hwnd : HWND;index : LONG;flData : ULONG;flMask : ULONG) : BOOL;
  230. const
  231. QWS_USER = 0;
  232. QWS_ID = -1;
  233. QWS_MIN = -1;
  234. QWL_USER = 0;
  235. QWL_STYLE = -2;
  236. QWP_PFNWP = -3;
  237. QWL_HMQ = -4;
  238. QWL_RESERVED = -5;
  239. QWL_MIN = -6;
  240. QWL_HHEAP = $0004;
  241. QWL_HWNDFOCUSSAVE = $0018;
  242. QWL_DEFBUTTON = $0040;
  243. QWL_PSSCBLK = $0048;
  244. QWL_PFEPBLK = $004c;
  245. QWL_PSTATBLK = $0050;
  246. QWS_FLAGS = $0008;
  247. QWS_RESULT = $000a;
  248. QWS_XRESTORE = $000c;
  249. QWS_YRESTORE = $000e;
  250. QWS_CXRESTORE = $0010;
  251. QWS_CYRESTORE = $0012;
  252. QWS_XMINIMIZE = $0014;
  253. QWS_YMINIMIZE = $0016;
  254. type
  255. HENUM = LHANDLE;
  256. function WinBeginEnumWindows(hwnd : HWND) : HENUM;
  257. function WinGetNextWindow(henum : HENUM) : HWND;
  258. function WinEndEnumWindows(henum : HENUM) : BOOL;
  259. function WinWindowFromPoint(hwnd : HWND;pptl : PPOINTL;fChildren : BOOL) : HWND;
  260. function WinMapWindowPoints(hwndFrom : HWND;hwndTo : HWND;prgptl : PPOINTL;cwpt : LONG) : BOOL;
  261. function WinValidateRect(hwnd : HWND;prcl : PRECTL;fIncludeChildren : BOOL) : BOOL;
  262. function WinValidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;
  263. function WinWindowFromDC(hdc : HDC) : HWND;
  264. function WinQueryWindowDC(hwnd : HWND) : HDC;
  265. function WinGetScreenPS(hwndDesktop : HWND) : HPS;
  266. function WinLockWindowUpdate(hwndDesktop : HWND;hwndLockUpdate : HWND) : BOOL;
  267. function WinLockVisRegions(hwndDesktop : HWND;fLock : BOOL) : BOOL;
  268. function WinQueryUpdateRect(hwnd : HWND;prcl : PRECTL) : BOOL;
  269. function WinQueryUpdateRegion(hwnd : HWND;hrgn : HRGN) : LONG;
  270. function WinExcludeUpdateRegion(hps : HPS;hwnd : HWND) : LONG;
  271. type
  272. QMSG = record
  273. hwnd : HWND;
  274. msg : ULONG;
  275. mp1 : MPARAM;
  276. mp2 : MPARAM;
  277. time : ULONG;
  278. ptl : POINTL;
  279. reserved : ULONG;
  280. end;
  281. PQMSG = ^QMSG;
  282. const
  283. WM_NULL = $0000;
  284. WM_CREATE = $0001;
  285. WM_DESTROY = $0002;
  286. WM_ENABLE = $0004;
  287. WM_SHOW = $0005;
  288. WM_MOVE = $0006;
  289. WM_SIZE = $0007;
  290. WM_ADJUSTWINDOWPOS = $0008;
  291. WM_CALCVALIDRECTS = $0009;
  292. WM_SETWINDOWPARAMS = $000a;
  293. WM_QUERYWINDOWPARAMS = $000b;
  294. WM_HITTEST = $000c;
  295. WM_ACTIVATE = $000d;
  296. WM_SETFOCUS = $000f;
  297. WM_SETSELECTION = $0010;
  298. WM_PPAINT = $0011;
  299. WM_PSETFOCUS = $0012;
  300. WM_PSYSCOLORCHANGE = $0013;
  301. WM_PSIZE = $0014;
  302. WM_PACTIVATE = $0015;
  303. WM_PCONTROL = $0016;
  304. WM_COMMAND = $0020;
  305. WM_SYSCOMMAND = $0021;
  306. WM_HELP = $0022;
  307. WM_PAINT = $0023;
  308. WM_TIMER = $0024;
  309. WM_SEM1 = $0025;
  310. WM_SEM2 = $0026;
  311. WM_SEM3 = $0027;
  312. WM_SEM4 = $0028;
  313. WM_CLOSE = $0029;
  314. WM_QUIT = $002a;
  315. WM_SYSCOLORCHANGE = $002b;
  316. WM_SYSVALUECHANGED = $002d;
  317. WM_APPTERMINATENOTIFY = $002e;
  318. WM_PRESPARAMCHANGED = $002f;
  319. WM_CONTROL = $0030;
  320. WM_VSCROLL = $0031;
  321. WM_HSCROLL = $0032;
  322. WM_INITMENU = $0033;
  323. WM_MENUSELECT = $0034;
  324. WM_MENUEND = $0035;
  325. WM_DRAWITEM = $0036;
  326. WM_MEASUREITEM = $0037;
  327. WM_CONTROLPOINTER = $0038;
  328. WM_QUERYDLGCODE = $003a;
  329. WM_INITDLG = $003b;
  330. WM_SUBSTITUTESTRING = $003c;
  331. WM_MATCHMNEMONIC = $003d;
  332. WM_SAVEAPPLICATION = $003e;
  333. WM_HELPBASE = $0F00;
  334. WM_HELPTOP = $0FFF;
  335. WM_USER = $1000;
  336. CMDSRC_PUSHBUTTON = 1;
  337. CMDSRC_MENU = 2;
  338. CMDSRC_ACCELERATOR = 3;
  339. CMDSRC_FONTDLG = 4;
  340. CMDSRC_FILEDLG = 5;
  341. CMDSRC_PRINTDLG = 6;
  342. CMDSRC_COLORDLG = 7;
  343. CMDSRC_OTHER = 0;
  344. {$PACKRECORDS 1}
  345. type
  346. CMDMSG = record
  347. cmd : USHORT;
  348. unused : USHORT;
  349. source : USHORT;
  350. fMouse : USHORT;
  351. end;
  352. PCMDMSG = ^CMDMSG;
  353. {$PACKRECORDS NORMAL}
  354. MQINFO = record
  355. cb : ULONG;
  356. pid : PID;
  357. tid : TID;
  358. cmsgs : ULONG;
  359. pReserved : PVOID;
  360. end;
  361. PMQINFO = ^MQINFO;
  362. function WinSendMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
  363. function WinCreateMsgQueue(hab : HAB;cmsg : LONG) : HMQ;
  364. function WinDestroyMsgQueue(hmq : HMQ) : BOOL;
  365. function WinQueryQueueInfo(hmq : HMQ;pmqi : PMQINFO;cbCopy : ULONG) : BOOL;
  366. function WinCancelShutdown(hmq : HMQ;fCancelAlways : BOOL) : BOOL;
  367. function WinGetMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG) : BOOL;
  368. function WinPeekMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG;fl : ULONG) : BOOL;
  369. function WinDispatchMsg(hab : HAB;pqmsg : PQMSG) : MRESULT;
  370. function WinPostMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;
  371. function WinRegisterUserMsg(hab : HAB;msgid : ULONG;datatype1 : LONG;dir1 : LONG;datatype2 : LONG;dir2 : LONG;datatyper : LONG) : BOOL;
  372. function WinRegisterUserDatatype(hab : HAB;datatype : LONG;count : LONG;types : PLONG) : BOOL;
  373. function WinSetMsgMode(hab : HAB;classname : PSZ;control : LONG) : BOOL;
  374. function WinSetSynchroMode(hab : HAB;mode : LONG) : BOOL;
  375. const
  376. PM_REMOVE = $0001;
  377. PM_NOREMOVE = $0000;
  378. RUM_IN = 1;
  379. RUM_OUT = 2;
  380. RUM_INOUT = 3;
  381. SMD_DELAYED = $0001;
  382. SMD_IMMEDIATE = $0002;
  383. SSM_SYNCHRONOUS = $0001;
  384. SSM_ASYNCHRONOUS = $0002;
  385. SSM_MIXED = $0003;
  386. CVR_ALIGNLEFT = $0001;
  387. CVR_ALIGNBOTTOM = $0002;
  388. CVR_ALIGNRIGHT = $0004;
  389. CVR_ALIGNTOP = $0008;
  390. CVR_REDRAW = $0010;
  391. HT_NORMAL = 0;
  392. HT_TRANSPARENT = (-1);
  393. HT_DISCARD = (-2);
  394. HT_ERROR = (-3);
  395. type
  396. WNDPARAMS = record
  397. fsStatus : ULONG;
  398. cchText : ULONG;
  399. pszText : PSZ;
  400. cbPresParams : ULONG;
  401. pPresParams : PVOID;
  402. cbCtlData : ULONG;
  403. pCtlData : PVOID;
  404. end;
  405. PWNDPARAMS = ^WNDPARAMS;
  406. const
  407. WPM_TEXT = $0001;
  408. WPM_CTLDATA = $0002;
  409. WPM_PRESPARAMS = $0004;
  410. WPM_CCHTEXT = $0008;
  411. WPM_CBCTLDATA = $0010;
  412. WPM_CBPRESPARAMS = $0020;
  413. function WinInSendMsg(hab : HAB) : BOOL;
  414. function WinBroadcastMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM;rgf : ULONG) : BOOL;
  415. const
  416. BMSG_POST = $0000;
  417. BMSG_SEND = $0001;
  418. BMSG_POSTQUEUE = $0002;
  419. BMSG_DESCENDANTS = $0004;
  420. BMSG_FRAMEONLY = $0008;
  421. function WinWaitMsg(hab : HAB;msgFirst : ULONG;msgLast : ULONG) : BOOL;
  422. function WinQueryQueueStatus(hwndDesktop : HWND) : ULONG;
  423. const
  424. QS_KEY = $0001;
  425. QS_MOUSEBUTTON = $0002;
  426. QS_MOUSEMOVE = $0004;
  427. QS_MOUSE = $0006;
  428. QS_TIMER = $0008;
  429. QS_PAINT = $0010;
  430. QS_POSTMSG = $0020;
  431. QS_SEM1 = $0040;
  432. QS_SEM2 = $0080;
  433. QS_SEM3 = $0100;
  434. QS_SEM4 = $0200;
  435. QS_SENDMSG = $0400;
  436. function WinQueryMsgPos(hab : HAB;pptl : PPOINTL) : BOOL;
  437. function WinQueryMsgTime(hab : HAB) : ULONG;
  438. type
  439. HEV = ULONG;
  440. HMTX = ULONG;
  441. HMUX = ULONG;
  442. function WinWaitEventSem(hev : HEV;ulTimeout : ULONG) : APIRET;
  443. function WinRequestMutexSem(hmtx : HMTX;ulTimeout : ULONG) : APIRET;
  444. function WinWaitMuxWaitSem(hmux : HMUX;ulTimeout : ULONG;pulUser : PULONG) : APIRET;
  445. function WinPostQueueMsg(hmq : HMQ;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;
  446. const
  447. SMIM_ALL = $0EFF;
  448. SMI_NOINTEREST = $0001;
  449. SMI_INTEREST = $0002;
  450. SMI_RESET = $0004;
  451. SMI_AUTODISPATCH = $0008;
  452. function WinSetMsgInterest(hwnd : HWND;msg_class : ULONG;control : LONG) : BOOL;
  453. function WinSetClassMsgInterest(hab : HAB;pszClassName : PSZ;msg_class : ULONG;control : LONG) : BOOL;
  454. function WinSetFocus(hwndDesktop : HWND;hwndSetFocus : HWND) : BOOL;
  455. function WinFocusChange(hwndDesktop : HWND;hwndSetFocus : HWND;flFocusChange : ULONG) : BOOL;
  456. const
  457. FC_NOSETFOCUS = $0001;
  458. FC_NOBRINGTOTOP = FC_NOSETFOCUS;
  459. FC_NOLOSEFOCUS = $0002;
  460. FC_NOBRINGTOPFIRSTWINDOW = FC_NOLOSEFOCUS;
  461. FC_NOSETACTIVE = $0004;
  462. FC_NOLOSEACTIVE = $0008;
  463. FC_NOSETSELECTION = $0010;
  464. FC_NOLOSESELECTION = $0020;
  465. QFC_NEXTINCHAIN = $0001;
  466. QFC_ACTIVE = $0002;
  467. QFC_FRAME = $0003;
  468. QFC_SELECTACTIVE = $0004;
  469. QFC_PARTOFCHAIN = $0005;
  470. function WinSetCapture(hwndDesktop : HWND;hwnd : HWND) : BOOL;
  471. function WinQueryCapture(hwndDesktop : HWND) : HWND;
  472. const
  473. WM_MOUSEFIRST = $0070;
  474. WM_MOUSELAST = $0079;
  475. WM_BUTTONCLICKFIRST = $0071;
  476. WM_BUTTONCLICKLAST = $0079;
  477. WM_MOUSEMOVE = $0070;
  478. WM_BUTTON1DOWN = $0071;
  479. WM_BUTTON1UP = $0072;
  480. WM_BUTTON1DBLCLK = $0073;
  481. WM_BUTTON2DOWN = $0074;
  482. WM_BUTTON2UP = $0075;
  483. WM_BUTTON2DBLCLK = $0076;
  484. WM_BUTTON3DOWN = $0077;
  485. WM_BUTTON3UP = $0078;
  486. WM_BUTTON3DBLCLK = $0079;
  487. WM_EXTMOUSEFIRST = $0410;
  488. WM_EXTMOUSELAST = $0419;
  489. WM_CHORD = $0410;
  490. WM_BUTTON1MOTIONSTART = $0411;
  491. WM_BUTTON1MOTIONEND = $0412;
  492. WM_BUTTON1CLICK = $0413;
  493. WM_BUTTON2MOTIONSTART = $0414;
  494. WM_BUTTON2MOTIONEND = $0415;
  495. WM_BUTTON2CLICK = $0416;
  496. WM_BUTTON3MOTIONSTART = $0417;
  497. WM_BUTTON3MOTIONEND = $0418;
  498. WM_BUTTON3CLICK = $0419;
  499. WM_MOUSETRANSLATEFIRST = $0420;
  500. WM_MOUSETRANSLATELAST = $0428;
  501. WM_BEGINDRAG = $0420;
  502. WM_ENDDRAG = $0421;
  503. WM_SINGLESELECT = $0422;
  504. WM_OPEN = $0423;
  505. WM_CONTEXTMENU = $0424;
  506. WM_CONTEXTHELP = $0425;
  507. WM_TEXTEDIT = $0426;
  508. WM_BEGINSELECT = $0427;
  509. WM_ENDSELECT = $0428;
  510. function WinQueryFocus(hwndDesktop : HWND) : HWND;
  511. const
  512. WM_CHAR = $007a;
  513. WM_VIOCHAR = $007b;
  514. KC_NONE = $0000;
  515. KC_CHAR = $0001;
  516. KC_VIRTUALKEY = $0002;
  517. KC_SCANCODE = $0004;
  518. KC_SHIFT = $0008;
  519. KC_CTRL = $0010;
  520. KC_ALT = $0020;
  521. KC_KEYUP = $0040;
  522. KC_PREVDOWN = $0080;
  523. KC_LONEKEY = $0100;
  524. KC_DEADKEY = $0200;
  525. KC_COMPOSITE = $0400;
  526. KC_INVALIDCOMP = $0800;
  527. KC_TOGGLE = $1000;
  528. KC_INVALIDCHAR = $2000;
  529. KC_DBCSRSRVD1 = $4000;
  530. KC_DBCSRSRVD2 = $8000;
  531. {$PACKRECORDS 1}
  532. type
  533. MSEMSG = record
  534. x : SHORT;
  535. y : SHORT;
  536. codeHitTest : USHORT;
  537. fsInp : USHORT;
  538. end;
  539. PMSEMSG = ^MSEMSG;
  540. CHRMSG = record
  541. fs : USHORT;
  542. cRepeat : UCHAR;
  543. scancode : UCHAR;
  544. chr : USHORT;
  545. vkey : USHORT;
  546. end;
  547. PCHRMSG = ^CHRMSG;
  548. {$PACKRECORDS NORMAL}
  549. const
  550. INP_NONE = $0000;
  551. INP_KBD = $0001;
  552. INP_MULT = $0002;
  553. INP_RES2 = $0004;
  554. INP_SHIFT = $0008;
  555. INP_CTRL = $0010;
  556. INP_ALT = $0020;
  557. INP_RES3 = $0040;
  558. INP_RES4 = $0080;
  559. INP_IGNORE = $FFFF;
  560. VK_BUTTON1 = $01;
  561. VK_BUTTON2 = $02;
  562. VK_BUTTON3 = $03;
  563. VK_BREAK = $04;
  564. VK_BACKSPACE = $05;
  565. VK_TAB = $06;
  566. VK_BACKTAB = $07;
  567. VK_NEWLINE = $08;
  568. VK_SHIFT = $09;
  569. VK_CTRL = $0A;
  570. VK_ALT = $0B;
  571. VK_ALTGRAF = $0C;
  572. VK_PAUSE = $0D;
  573. VK_CAPSLOCK = $0E;
  574. VK_ESC = $0F;
  575. VK_SPACE = $10;
  576. VK_PAGEUP = $11;
  577. VK_PAGEDOWN = $12;
  578. VK_END = $13;
  579. VK_HOME = $14;
  580. VK_LEFT = $15;
  581. VK_UP = $16;
  582. VK_RIGHT = $17;
  583. VK_DOWN = $18;
  584. VK_PRINTSCRN = $19;
  585. VK_INSERT = $1A;
  586. VK_DELETE = $1B;
  587. VK_SCRLLOCK = $1C;
  588. VK_NUMLOCK = $1D;
  589. VK_ENTER = $1E;
  590. VK_SYSRQ = $1F;
  591. VK_F1 = $20;
  592. VK_F2 = $21;
  593. VK_F3 = $22;
  594. VK_F4 = $23;
  595. VK_F5 = $24;
  596. VK_F6 = $25;
  597. VK_F7 = $26;
  598. VK_F8 = $27;
  599. VK_F9 = $28;
  600. VK_F10 = $29;
  601. VK_F11 = $2A;
  602. VK_F12 = $2B;
  603. VK_F13 = $2C;
  604. VK_F14 = $2D;
  605. VK_F15 = $2E;
  606. VK_F16 = $2F;
  607. VK_F17 = $30;
  608. VK_F18 = $31;
  609. VK_F19 = $32;
  610. VK_F20 = $33;
  611. VK_F21 = $34;
  612. VK_F22 = $35;
  613. VK_F23 = $36;
  614. VK_F24 = $37;
  615. VK_ENDDRAG = $38;
  616. VK_MENU = VK_F10;
  617. VK_DBCSFIRST = $0080;
  618. VK_DBCSLAST = $00ff;
  619. VK_USERFIRST = $0100;
  620. VK_USERLAST = $01ff;
  621. function WinGetKeyState(hwndDesktop : HWND;vkey : LONG) : LONG;
  622. function WinGetPhysKeyState(hwndDesktop : HWND;sc : LONG) : LONG;
  623. function WinEnablePhysInput(hwndDesktop : HWND;fEnable : BOOL) : BOOL;
  624. function WinIsPhysInputEnabled(hwndDesktop : HWND) : BOOL;
  625. function WinSetKeyboardStateTable(hwndDesktop : HWND;pKeyStateTable : PBYTE;fSet : BOOL) : BOOL;
  626. const
  627. WM_JOURNALNOTIFY = $007c;
  628. JRN_QUEUESTATUS = $00000001;
  629. JRN_PHYSKEYSTATE = $00000002;
  630. function WinGetDlgMsg(hwndDlg : HWND;pqmsg : PQMSG) : BOOL;
  631. function WinLoadDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : HWND;
  632. function WinDlgBox(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : ULONG;
  633. function WinDismissDlg(hwndDlg : HWND;usResult : ULONG) : BOOL;
  634. function WinQueryDlgItemShort(hwndDlg : HWND;idItem : ULONG;pResult : PSHORT;fSigned : BOOL) : BOOL;
  635. function WinSetDlgItemShort(hwndDlg : HWND;idItem : ULONG;usValue : USHORT;fSigned : BOOL) : BOOL;
  636. function WinSetDlgItemText(hwndDlg : HWND;idItem : ULONG;pszText : PSZ) : BOOL;
  637. function WinQueryDlgItemText(hwndDlg : HWND;idItem : ULONG;cchBufferMax : LONG;pchBuffer : PSZ) : ULONG;
  638. function WinQueryDlgItemTextLength(hwndDlg : HWND;idItem : ULONG) : LONG;
  639. function WinDefDlgProc(hwndDlg : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
  640. const
  641. DID_OK = 1;
  642. DID_CANCEL = 2;
  643. DID_ERROR = $ffff;
  644. function WinAlarm(hwndDesktop : HWND;rgfType : ULONG) : BOOL;
  645. const
  646. WA_WARNING = 0;
  647. WA_NOTE = 1;
  648. WA_ERROR = 2;
  649. WA_CWINALARMS = 3;
  650. function WinMessageBox(hwndParent : HWND;hwndOwner : HWND;pszText : PSZ;pszCaption : PSZ;idWindow : ULONG;flStyle : ULONG) : ULONG;
  651. const
  652. MB_OK = $0000;
  653. MB_OKCANCEL = $0001;
  654. MB_RETRYCANCEL = $0002;
  655. MB_ABORTRETRYIGNORE = $0003;
  656. MB_YESNO = $0004;
  657. MB_YESNOCANCEL = $0005;
  658. MB_CANCEL = $0006;
  659. MB_ENTER = $0007;
  660. MB_ENTERCANCEL = $0008;
  661. MB_NOICON = $0000;
  662. MB_CUANOTIFICATION = $0000;
  663. MB_ICONQUESTION = $0010;
  664. MB_ICONEXCLAMATION = $0020;
  665. MB_CUAWARNING = $0020;
  666. MB_ICONASTERISK = $0030;
  667. MB_ICONHAND = $0040;
  668. MB_CUACRITICAL = $0040;
  669. MB_QUERY = MB_ICONQUESTION;
  670. MB_WARNING = MB_CUAWARNING;
  671. MB_INFORMATION = MB_ICONASTERISK;
  672. MB_CRITICAL = MB_CUACRITICAL;
  673. MB_ERROR = MB_CRITICAL;
  674. MB_DEFBUTTON1 = $0000;
  675. MB_DEFBUTTON2 = $0100;
  676. MB_DEFBUTTON3 = $0200;
  677. MB_APPLMODAL = $0000;
  678. MB_SYSTEMMODAL = $1000;
  679. MB_HELP = $2000;
  680. MB_MOVEABLE = $4000;
  681. MBID_OK = 1;
  682. MBID_CANCEL = 2;
  683. MBID_ABORT = 3;
  684. MBID_RETRY = 4;
  685. MBID_IGNORE = 5;
  686. MBID_YES = 6;
  687. MBID_NO = 7;
  688. MBID_HELP = 8;
  689. MBID_ENTER = 9;
  690. MBID_ERROR = $ffff;
  691. DLGC_ENTRYFIELD = $0001;
  692. DLGC_BUTTON = $0002;
  693. DLGC_RADIOBUTTON = $0004;
  694. DLGC_STATIC = $0008;
  695. DLGC_DEFAULT = $0010;
  696. DLGC_PUSHBUTTON = $0020;
  697. DLGC_CHECKBOX = $0040;
  698. DLGC_SCROLLBAR = $0080;
  699. DLGC_MENU = $0100;
  700. DLGC_TABONCLICK = $0200;
  701. DLGC_MLE = $0400;
  702. function WinProcessDlg(hwndDlg : HWND) : ULONG;
  703. function WinSendDlgItemMsg(hwndDlg : HWND;idItem : ULONG;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;
  704. function WinMapDlgPoints(hwndDlg : HWND;prgwptl : PPOINTL;cwpt : ULONG;fCalcWindowCoords : BOOL) : BOOL;
  705. function WinEnumDlgItem(hwndDlg : HWND;hwnd : HWND;code : ULONG) : HWND;
  706. function WinSubstituteStrings(hwnd : HWND;pszSrc : PSZ;cchDstMax : LONG;pszDst : PSZ) : LONG;
  707. const
  708. EDI_FIRSTTABITEM = 0;
  709. EDI_LASTTABITEM = 1;
  710. EDI_NEXTTABITEM = 2;
  711. EDI_PREVTABITEM = 3;
  712. EDI_FIRSTGROUPITEM = 4;
  713. EDI_LASTGROUPITEM = 5;
  714. EDI_NEXTGROUPITEM = 6;
  715. EDI_PREVGROUPITEM = 7;
  716. {$PACKRECORDS 2}
  717. type
  718. DLGTITEM = record
  719. fsItemStatus : USHORT;
  720. cChildren : USHORT;
  721. cchClassName : USHORT;
  722. offClassName : USHORT;
  723. cchText : USHORT;
  724. offText : USHORT;
  725. flStyle : ULONG;
  726. x : SHORT;
  727. y : SHORT;
  728. cx : SHORT;
  729. cy : SHORT;
  730. id : USHORT;
  731. offPresParams : USHORT;
  732. offCtlData : USHORT;
  733. end;
  734. PDLGTITEM = ^DLGTITEM;
  735. DLGTEMPLATE = record
  736. cbTemplate : USHORT;
  737. _type : USHORT;
  738. codepage : USHORT;
  739. offadlgti : USHORT;
  740. fsTemplateStatus : USHORT;
  741. iItemFocus : USHORT;
  742. coffPresParams : USHORT;
  743. adlgti : array[0..0] of DLGTITEM;
  744. end;
  745. PDLGTEMPLATE = ^DLGTEMPLATE;
  746. {$PACKRECORDS NORMAL}
  747. function WinCreateDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;pdlgt : PDLGTEMPLATE;pCreateParams : PVOID) : HWND;
  748. const
  749. SS_TEXT = $0001;
  750. SS_GROUPBOX = $0002;
  751. SS_ICON = $0003;
  752. SS_BITMAP = $0004;
  753. SS_FGNDRECT = $0005;
  754. SS_HALFTONERECT = $0006;
  755. SS_BKGNDRECT = $0007;
  756. SS_FGNDFRAME = $0008;
  757. SS_HALFTONEFRAME = $0009;
  758. SS_BKGNDFRAME = $000a;
  759. SS_SYSICON = $000b;
  760. SS_AUTOSIZE = $0040;
  761. SM_SETHANDLE = $0100;
  762. SM_QUERYHANDLE = $0101;
  763. BS_PUSHBUTTON = 0;
  764. BS_CHECKBOX = 1;
  765. BS_AUTOCHECKBOX = 2;
  766. BS_RADIOBUTTON = 3;
  767. BS_AUTORADIOBUTTON = 4;
  768. BS_3STATE = 5;
  769. BS_AUTO3STATE = 6;
  770. BS_USERBUTTON = 7;
  771. BS_PRIMARYSTYLES = $000f;
  772. BS_BITMAP = $0040;
  773. BS_ICON = $0080;
  774. BS_HELP = $0100;
  775. BS_SYSCOMMAND = $0200;
  776. BS_DEFAULT = $0400;
  777. BS_NOPOINTERFOCUS = $0800;
  778. BS_NOBORDER = $1000;
  779. BS_NOCURSORSELECT = $2000;
  780. BS_AUTOSIZE = $4000;
  781. {$PACKRECORDS 2}
  782. type
  783. BTNCDATA = record
  784. cb : USHORT;
  785. fsCheckState : USHORT;
  786. fsHiliteState : USHORT;
  787. hImage : LHANDLE;
  788. end;
  789. PBTNCDATA = ^BTNCDATA;
  790. {$PACKRECORDS NORMAL}
  791. USERBUTTON = record
  792. hwnd : HWND;
  793. hps : HPS;
  794. fsState : ULONG;
  795. fsStateOld : ULONG;
  796. end;
  797. PUSERBUTTON = ^USERBUTTON;
  798. const
  799. BM_CLICK = $0120;
  800. BM_QUERYCHECKINDEX = $0121;
  801. BM_QUERYHILITE = $0122;
  802. BM_SETHILITE = $0123;
  803. BM_QUERYCHECK = $0124;
  804. BM_SETCHECK = $0125;
  805. BM_SETDEFAULT = $0126;
  806. BN_CLICKED = 1;
  807. BN_DBLCLICKED = 2;
  808. BN_PAINT = 3;
  809. BDS_HILITED = $0100;
  810. BDS_DISABLED = $0200;
  811. BDS_DEFAULT = $0400;
  812. ES_LEFT = $00000000;
  813. ES_CENTER = $00000001;
  814. ES_RIGHT = $00000002;
  815. ES_AUTOSCROLL = $00000004;
  816. ES_MARGIN = $00000008;
  817. ES_AUTOTAB = $00000010;
  818. ES_READONLY = $00000020;
  819. ES_COMMAND = $00000040;
  820. ES_UNREADABLE = $00000080;
  821. ES_AUTOSIZE = $00000200;
  822. ES_ANY = $00000000;
  823. ES_SBCS = $00001000;
  824. ES_DBCS = $00002000;
  825. ES_MIXED = $00003000;
  826. CBS_SIMPLE = $0001;
  827. CBS_DROPDOWN = $0002;
  828. CBS_DROPDOWNLIST = $0004;
  829. CBS_COMPATIBLE = $0008;
  830. CBID_LIST = $029A;
  831. CBID_EDIT = $029B;
  832. CBM_SHOWLIST = $0170;
  833. CBM_HILITE = $0171;
  834. CBM_ISLISTSHOWING = $0172;
  835. CBN_EFCHANGE = 1;
  836. CBN_EFSCROLL = 2;
  837. CBN_MEMERROR = 3;
  838. CBN_LBSELECT = 4;
  839. CBN_LBSCROLL = 5;
  840. CBN_SHOWLIST = 6;
  841. CBN_ENTER = 7;
  842. {$PACKRECORDS 2}
  843. type
  844. ENTRYFDATA = record
  845. cb : USHORT;
  846. cchEditLimit : USHORT;
  847. ichMinSel : USHORT;
  848. ichMaxSel : USHORT;
  849. end;
  850. PENTRYFDATA = ^ENTRYFDATA;
  851. {$PACKRECORDS NORMAL}
  852. const
  853. EM_QUERYCHANGED = $0140;
  854. EM_QUERYSEL = $0141;
  855. EM_SETSEL = $0142;
  856. EM_SETTEXTLIMIT = $0143;
  857. EM_CUT = $0144;
  858. EM_COPY = $0145;
  859. EM_CLEAR = $0146;
  860. EM_PASTE = $0147;
  861. EM_QUERYFIRSTCHAR = $0148;
  862. EM_SETFIRSTCHAR = $0149;
  863. EM_QUERYREADONLY = $014a;
  864. EM_SETREADONLY = $014b;
  865. EM_SETINSERTMODE = $014c;
  866. EN_SETFOCUS = $0001;
  867. EN_KILLFOCUS = $0002;
  868. EN_CHANGE = $0004;
  869. EN_SCROLL = $0008;
  870. EN_MEMERROR = $0010;
  871. EN_OVERFLOW = $0020;
  872. EN_INSERTMODETOGGLE = $0040;
  873. LS_MULTIPLESEL = $00000001;
  874. LS_OWNERDRAW = $00000002;
  875. LS_NOADJUSTPOS = $00000004;
  876. LS_HORZSCROLL = $00000008;
  877. LS_EXTENDEDSEL = $00000010;
  878. LN_SELECT = 1;
  879. LN_SETFOCUS = 2;
  880. LN_KILLFOCUS = 3;
  881. LN_SCROLL = 4;
  882. LN_ENTER = 5;
  883. LM_QUERYITEMCOUNT = $0160;
  884. LM_INSERTITEM = $0161;
  885. LM_SETTOPINDEX = $0162;
  886. LM_DELETEITEM = $0163;
  887. LM_SELECTITEM = $0164;
  888. LM_QUERYSELECTION = $0165;
  889. LM_SETITEMTEXT = $0166;
  890. LM_QUERYITEMTEXTLENGTH = $0167;
  891. LM_QUERYITEMTEXT = $0168;
  892. LM_SETITEMHANDLE = $0169;
  893. LM_QUERYITEMHANDLE = $016a;
  894. LM_SEARCHSTRING = $016b;
  895. LM_SETITEMHEIGHT = $016c;
  896. LM_QUERYTOPINDEX = $016d;
  897. LM_DELETEALL = $016e;
  898. LIT_CURSOR = (-4);
  899. LIT_ERROR = (-3);
  900. LIT_MEMERROR = (-2);
  901. LIT_NONE = (-1);
  902. LIT_FIRST = (-1);
  903. LIT_END = (-1);
  904. LIT_SORTASCENDING = (-2);
  905. LIT_SORTDESCENDING = (-3);
  906. LSS_SUBSTRING = $0001;
  907. LSS_PREFIX = $0002;
  908. LSS_CASESENSITIVE = $0004;
  909. MS_ACTIONBAR = $00000001;
  910. MS_TITLEBUTTON = $00000002;
  911. MS_VERTICALFLIP = $00000004;
  912. MS_CONDITIONALCASCADE = $00000040;
  913. function WinLoadMenu(hwndFrame : HWND;hmod : HMODULE;idMenu : ULONG) : HWND;
  914. const
  915. MM_INSERTITEM = $0180;
  916. MM_DELETEITEM = $0181;
  917. MM_QUERYITEM = $0182;
  918. MM_SETITEM = $0183;
  919. MM_QUERYITEMCOUNT = $0184;
  920. MM_STARTMENUMODE = $0185;
  921. MM_ENDMENUMODE = $0186;
  922. MM_REMOVEITEM = $0188;
  923. MM_SELECTITEM = $0189;
  924. MM_QUERYSELITEMID = $018a;
  925. MM_QUERYITEMTEXT = $018b;
  926. MM_QUERYITEMTEXTLENGTH = $018c;
  927. MM_SETITEMHANDLE = $018d;
  928. MM_SETITEMTEXT = $018e;
  929. MM_ITEMPOSITIONFROMID = $018f;
  930. MM_ITEMIDFROMPOSITION = $0190;
  931. MM_QUERYITEMATTR = $0191;
  932. MM_SETITEMATTR = $0192;
  933. MM_ISITEMVALID = $0193;
  934. MM_QUERYITEMRECT = $0194;
  935. MM_QUERYDEFAULTITEMID = $0431;
  936. MM_SETDEFAULTITEMID = $0432;
  937. function WinCreateMenu(hwndParent : HWND;lpmt : PVOID) : HWND;
  938. type
  939. OWNERITEM = record
  940. hwnd : HWND;
  941. hps : HPS;
  942. fsState : ULONG;
  943. fsAttribute : ULONG;
  944. fsStateOld : ULONG;
  945. fsAttributeOld : ULONG;
  946. rclItem : RECTL;
  947. idItem : LONG;
  948. hItem : ULONG;
  949. end;
  950. POWNERITEM = ^OWNERITEM;
  951. {$PACKRECORDS 2}
  952. MENUITEM = record
  953. iPosition : SHORT;
  954. afStyle : USHORT;
  955. afAttribute : USHORT;
  956. id : USHORT;
  957. hwndSubMenu : HWND;
  958. hItem : ULONG;
  959. end;
  960. PMENUITEM = ^MENUITEM;
  961. {$PACKRECORDS NORMAL}
  962. const
  963. MIT_END = (-1);
  964. MIT_NONE = (-1);
  965. MIT_MEMERROR = (-1);
  966. MIT_ERROR = (-1);
  967. MIT_FIRST = (-2);
  968. MIT_LAST = (-3);
  969. MID_NONE = MIT_NONE;
  970. MID_ERROR = (-1);
  971. MIS_TEXT = $0001;
  972. MIS_BITMAP = $0002;
  973. MIS_SEPARATOR = $0004;
  974. MIS_OWNERDRAW = $0008;
  975. MIS_SUBMENU = $0010;
  976. MIS_MULTMENU = $0020;
  977. MIS_SYSCOMMAND = $0040;
  978. MIS_HELP = $0080;
  979. MIS_STATIC = $0100;
  980. MIS_BUTTONSEPARATOR = $0200;
  981. MIS_BREAK = $0400;
  982. MIS_BREAKSEPARATOR = $0800;
  983. MIS_GROUP = $1000;
  984. MIS_SINGLE = $2000;
  985. MIA_NODISMISS = $0020;
  986. MIA_FRAMED = $1000;
  987. MIA_CHECKED = $2000;
  988. MIA_DISABLED = $4000;
  989. MIA_HILITED = $8000;
  990. function WinPopupMenu(hwndParent : HWND;hwndOwner : HWND;hwndMenu : HWND;x : LONG;y : LONG;idItem : LONG;fs : ULONG) : BOOL;
  991. const
  992. PU_POSITIONONITEM = $0001;
  993. PU_HCONSTRAIN = $0002;
  994. PU_VCONSTRAIN = $0004;
  995. PU_NONE = $0000;
  996. PU_MOUSEBUTTON1DOWN = $0008;
  997. PU_MOUSEBUTTON2DOWN = $0010;
  998. PU_MOUSEBUTTON3DOWN = $0018;
  999. PU_SELECTITEM = $0020;
  1000. PU_MOUSEBUTTON1 = $0040;
  1001. PU_MOUSEBUTTON2 = $0080;
  1002. PU_MOUSEBUTTON3 = $0100;
  1003. PU_KEYBOARD = $0200;
  1004. SBS_HORZ = 0;
  1005. SBS_VERT = 1;
  1006. SBS_THUMBSIZE = 2;
  1007. SBS_AUTOTRACK = 4;
  1008. SBS_AUTOSIZE = $2000;
  1009. SBM_SETSCROLLBAR = $01a0;
  1010. SBM_SETPOS = $01a1;
  1011. SBM_QUERYPOS = $01a2;
  1012. SBM_QUERYRANGE = $01a3;
  1013. SBM_SETTHUMBSIZE = $01a6;
  1014. SB_LINEUP = 1;
  1015. SB_LINEDOWN = 2;
  1016. SB_LINELEFT = 1;
  1017. SB_LINERIGHT = 2;
  1018. SB_PAGEUP = 3;
  1019. SB_PAGEDOWN = 4;
  1020. SB_PAGELEFT = 3;
  1021. SB_PAGERIGHT = 4;
  1022. SB_SLIDERTRACK = 5;
  1023. SB_SLIDERPOSITION = 6;
  1024. SB_ENDSCROLL = 7;
  1025. {$PACKRECORDS 2}
  1026. type
  1027. SBCDATA = record
  1028. cb : USHORT;
  1029. sHilite : USHORT;
  1030. posFirst : SHORT;
  1031. posLast : SHORT;
  1032. posThumb : SHORT;
  1033. cVisible : SHORT;
  1034. cTotal : SHORT;
  1035. end;
  1036. PSBCDATA = ^SBCDATA;
  1037. {$PACKRECORDS NORMAL}
  1038. {$PACKRECORDS 2}
  1039. FRAMECDATA = record
  1040. cb : USHORT;
  1041. flCreateFlags : ULONG;
  1042. hmodResources : USHORT;
  1043. idResources : USHORT;
  1044. end;
  1045. PFRAMECDATA = ^FRAMECDATA;
  1046. {$PACKRECORDS NORMAL}
  1047. const
  1048. FCF_TITLEBAR = $00000001;
  1049. FCF_SYSMENU = $00000002;
  1050. FCF_MENU = $00000004;
  1051. FCF_SIZEBORDER = $00000008;
  1052. FCF_MINBUTTON = $00000010;
  1053. FCF_MAXBUTTON = $00000020;
  1054. FCF_MINMAX = $00000030;
  1055. FCF_VERTSCROLL = $00000040;
  1056. FCF_HORZSCROLL = $00000080;
  1057. FCF_DLGBORDER = $00000100;
  1058. FCF_BORDER = $00000200;
  1059. FCF_SHELLPOSITION = $00000400;
  1060. FCF_TASKLIST = $00000800;
  1061. FCF_NOBYTEALIGN = $00001000;
  1062. FCF_NOMOVEWITHOWNER = $00002000;
  1063. FCF_ICON = $00004000;
  1064. FCF_ACCELTABLE = $00008000;
  1065. FCF_SYSMODAL = $00010000;
  1066. FCF_SCREENALIGN = $00020000;
  1067. FCF_MOUSEALIGN = $00040000;
  1068. FCF_HIDEBUTTON = $01000000;
  1069. FCF_HIDEMAX = $01000020;
  1070. FCF_DBE_APPSTAT = $80000000;
  1071. FCF_AUTOICON = $40000000;
  1072. FCF_STANDARD = $0000CC3F;
  1073. FS_ICON = $00000001;
  1074. FS_ACCELTABLE = $00000002;
  1075. FS_SHELLPOSITION = $00000004;
  1076. FS_TASKLIST = $00000008;
  1077. FS_NOBYTEALIGN = $00000010;
  1078. FS_NOMOVEWITHOWNER = $00000020;
  1079. FS_SYSMODAL = $00000040;
  1080. FS_DLGBORDER = $00000080;
  1081. FS_BORDER = $00000100;
  1082. FS_SCREENALIGN = $00000200;
  1083. FS_MOUSEALIGN = $00000400;
  1084. FS_SIZEBORDER = $00000800;
  1085. FS_AUTOICON = $00001000;
  1086. FS_DBE_APPSTAT = $00008000;
  1087. FS_STANDARD = $0000000F;
  1088. FF_FLASHWINDOW = $0001;
  1089. FF_ACTIVE = $0002;
  1090. FF_FLASHHILITE = $0004;
  1091. FF_OWNERHIDDEN = $0008;
  1092. FF_DLGDISMISSED = $0010;
  1093. FF_OWNERDISABLED = $0020;
  1094. FF_SELECTED = $0040;
  1095. FF_NOACTIVATESWP = $0080;
  1096. function WinCreateStdWindow(hwndParent : HWND;flStyle : ULONG;pflCreateFlags : PULONG;pszClientClass : PSZ;pszTitle : PSZ;styleClient : ULONG;hmod : HMODULE;idResources : ULONG;phwndClient : PHWND) : HWND;
  1097. function WinFlashWindow(hwndFrame : HWND;fFlash : BOOL) : BOOL;
  1098. const
  1099. WM_FLASHWINDOW = $0040;
  1100. WM_FORMATFRAME = $0041;
  1101. WM_UPDATEFRAME = $0042;
  1102. WM_FOCUSCHANGE = $0043;
  1103. WM_SETBORDERSIZE = $0044;
  1104. WM_TRACKFRAME = $0045;
  1105. WM_MINMAXFRAME = $0046;
  1106. WM_SETICON = $0047;
  1107. WM_QUERYICON = $0048;
  1108. WM_SETACCELTABLE = $0049;
  1109. WM_QUERYACCELTABLE = $004a;
  1110. WM_TRANSLATEACCEL = $004b;
  1111. WM_QUERYTRACKINFO = $004c;
  1112. WM_QUERYBORDERSIZE = $004d;
  1113. WM_NEXTMENU = $004e;
  1114. WM_ERASEBACKGROUND = $004f;
  1115. WM_QUERYFRAMEINFO = $0050;
  1116. WM_QUERYFOCUSCHAIN = $0051;
  1117. WM_OWNERPOSCHANGE = $0052;
  1118. WM_CALCFRAMERECT = $0053;
  1119. WM_WINDOWPOSCHANGED = $0055;
  1120. WM_ADJUSTFRAMEPOS = $0056;
  1121. WM_QUERYFRAMECTLCOUNT = $0059;
  1122. WM_QUERYHELPINFO = $005B;
  1123. WM_SETHELPINFO = $005C;
  1124. WM_ERROR = $005D;
  1125. WM_REALIZEPALETTE = $005E;
  1126. FI_FRAME = $00000001;
  1127. FI_OWNERHIDE = $00000002;
  1128. FI_ACTIVATEOK = $00000004;
  1129. FI_NOMOVEWITHOWNER = $00000008;
  1130. function WinCreateFrameControls(hwndFrame : HWND;pfcdata : PFRAMECDATA;pszTitle : PSZ) : BOOL;
  1131. function WinCalcFrameRect(hwndFrame : HWND;prcl : PRECTL;fClient : BOOL) : BOOL;
  1132. function WinGetMinPosition(hwnd : HWND;pswp : PSWP;pptl : PPOINTL) : BOOL;
  1133. function WinGetMaxPosition(hwnd : HWND;pswp : PSWP) : BOOL;
  1134. type
  1135. HSAVEWP = LHANDLE;
  1136. function WinSaveWindowPos(hsvwp : HSAVEWP;pswp : PSWP;cswp : ULONG) : BOOL;
  1137. const
  1138. FID_SYSMENU = $8002;
  1139. FID_TITLEBAR = $8003;
  1140. FID_MINMAX = $8004;
  1141. FID_MENU = $8005;
  1142. FID_VERTSCROLL = $8006;
  1143. FID_HORZSCROLL = $8007;
  1144. FID_CLIENT = $8008;
  1145. FID_DBE_APPSTAT = $8010;
  1146. FID_DBE_KBDSTAT = $8011;
  1147. FID_DBE_PECIC = $8012;
  1148. FID_DBE_KKPOPUP = $8013;
  1149. SC_SIZE = $8000;
  1150. SC_MOVE = $8001;
  1151. SC_MINIMIZE = $8002;
  1152. SC_MAXIMIZE = $8003;
  1153. SC_CLOSE = $8004;
  1154. SC_NEXT = $8005;
  1155. SC_APPMENU = $8006;
  1156. SC_SYSMENU = $8007;
  1157. SC_RESTORE = $8008;
  1158. SC_NEXTFRAME = $8009;
  1159. SC_NEXTWINDOW = $8010;
  1160. SC_TASKMANAGER = $8011;
  1161. SC_HELPKEYS = $8012;
  1162. SC_HELPINDEX = $8013;
  1163. SC_HELPEXTENDED = $8014;
  1164. SC_SWITCHPANELIDS = $8015;
  1165. SC_DBE_FIRST = $8018;
  1166. SC_DBE_LAST = $801F;
  1167. SC_BEGINDRAG = $8020;
  1168. SC_ENDDRAG = $8021;
  1169. SC_SELECT = $8022;
  1170. SC_OPEN = $8023;
  1171. SC_CONTEXTMENU = $8024;
  1172. SC_CONTEXTHELP = $8025;
  1173. SC_TEXTEDIT = $8026;
  1174. SC_BEGINSELECT = $8027;
  1175. SC_ENDSELECT = $8028;
  1176. SC_WINDOW = $8029;
  1177. SC_HIDE = $802a;
  1178. TBM_SETHILITE = $01e3;
  1179. TBM_QUERYHILITE = $01e4;
  1180. function WinCopyRect(hab : HAB;prclDst : PRECTL;prclSrc : PRECTL) : BOOL;
  1181. function WinSetRect(hab : HAB;prcl : PRECTL;xLeft : LONG;yBottom : LONG;xRight : LONG;yTop : LONG) : BOOL;
  1182. function WinIsRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;
  1183. function WinEqualRect(hab : HAB;prcl1 : PRECTL;prcl2 : PRECTL) : BOOL;
  1184. function WinSetRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;
  1185. function WinOffsetRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;
  1186. function WinInflateRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;
  1187. function WinPtInRect(hab : HAB;prcl : PRECTL;pptl : PPOINTL) : BOOL;
  1188. function WinIntersectRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
  1189. function WinUnionRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
  1190. function WinSubtractRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;
  1191. function WinMakeRect(hab : HAB;pwrc : PRECTL) : BOOL;
  1192. function WinMakePoints(hab : HAB;pwpt : PPOINTL;cwpt : ULONG) : BOOL;
  1193. function WinQuerySysValue(hwndDesktop : HWND;iSysValue : LONG) : LONG;
  1194. function WinSetSysValue(hwndDesktop : HWND;iSysValue : LONG;lValue : LONG) : BOOL;
  1195. const
  1196. SV_SWAPBUTTON = 0;
  1197. SV_DBLCLKTIME = 1;
  1198. SV_CXDBLCLK = 2;
  1199. SV_CYDBLCLK = 3;
  1200. SV_CXSIZEBORDER = 4;
  1201. SV_CYSIZEBORDER = 5;
  1202. SV_ALARM = 6;
  1203. SV_RESERVEDFIRST1 = 7;
  1204. SV_RESERVEDLAST1 = 8;
  1205. SV_CURSORRATE = 9;
  1206. SV_FIRSTSCROLLRATE = 10;
  1207. SV_SCROLLRATE = 11;
  1208. SV_NUMBEREDLISTS = 12;
  1209. SV_WARNINGFREQ = 13;
  1210. SV_NOTEFREQ = 14;
  1211. SV_ERRORFREQ = 15;
  1212. SV_WARNINGDURATION = 16;
  1213. SV_NOTEDURATION = 17;
  1214. SV_ERRORDURATION = 18;
  1215. SV_RESERVEDFIRST = 19;
  1216. SV_RESERVEDLAST = 19;
  1217. SV_CXSCREEN = 20;
  1218. SV_CYSCREEN = 21;
  1219. SV_CXVSCROLL = 22;
  1220. SV_CYHSCROLL = 23;
  1221. SV_CYVSCROLLARROW = 24;
  1222. SV_CXHSCROLLARROW = 25;
  1223. SV_CXBORDER = 26;
  1224. SV_CYBORDER = 27;
  1225. SV_CXDLGFRAME = 28;
  1226. SV_CYDLGFRAME = 29;
  1227. SV_CYTITLEBAR = 30;
  1228. SV_CYVSLIDER = 31;
  1229. SV_CXHSLIDER = 32;
  1230. SV_CXMINMAXBUTTON = 33;
  1231. SV_CYMINMAXBUTTON = 34;
  1232. SV_CYMENU = 35;
  1233. SV_CXFULLSCREEN = 36;
  1234. SV_CYFULLSCREEN = 37;
  1235. SV_CXICON = 38;
  1236. SV_CYICON = 39;
  1237. SV_CXPOINTER = 40;
  1238. SV_CYPOINTER = 41;
  1239. SV_DEBUG = 42;
  1240. SV_CMOUSEBUTTONS = 43;
  1241. SV_CPOINTERBUTTONS = 43;
  1242. SV_POINTERLEVEL = 44;
  1243. SV_CURSORLEVEL = 45;
  1244. SV_TRACKRECTLEVEL = 46;
  1245. SV_CTIMERS = 47;
  1246. SV_MOUSEPRESENT = 48;
  1247. SV_CXBYTEALIGN = 49;
  1248. SV_CXALIGN = 49;
  1249. SV_CYBYTEALIGN = 50;
  1250. SV_CYALIGN = 50;
  1251. SV_NOTRESERVED = 56;
  1252. SV_EXTRAKEYBEEP = 57;
  1253. SV_SETLIGHTS = 58;
  1254. SV_INSERTMODE = 59;
  1255. SV_MENUROLLDOWNDELAY = 64;
  1256. SV_MENUROLLUPDELAY = 65;
  1257. SV_ALTMNEMONIC = 66;
  1258. SV_TASKLISTMOUSEACCESS = 67;
  1259. SV_CXICONTEXTWIDTH = 68;
  1260. SV_CICONTEXTLINES = 69;
  1261. SV_CHORDTIME = 70;
  1262. SV_CXCHORD = 71;
  1263. SV_CYCHORD = 72;
  1264. SV_CXMOTION = 73;
  1265. SV_CYMOTION = 74;
  1266. SV_BEGINDRAG = 75;
  1267. SV_ENDDRAG = 76;
  1268. SV_SINGLESELECT = 77;
  1269. SV_OPEN = 78;
  1270. SV_CONTEXTMENU = 79;
  1271. SV_CONTEXTHELP = 80;
  1272. SV_TEXTEDIT = 81;
  1273. SV_BEGINSELECT = 82;
  1274. SV_ENDSELECT = 83;
  1275. SV_BEGINDRAGKB = 84;
  1276. SV_ENDDRAGKB = 85;
  1277. SV_SELECTKB = 86;
  1278. SV_OPENKB = 87;
  1279. SV_CONTEXTMENUKB = 88;
  1280. SV_CONTEXTHELPKB = 89;
  1281. SV_TEXTEDITKB = 90;
  1282. SV_BEGINSELECTKB = 91;
  1283. SV_ENDSELECTKB = 92;
  1284. SV_ANIMATION = 93;
  1285. SV_ANIMATIONSPEED = 94;
  1286. SV_MONOICONS = 95;
  1287. SV_KBDALTERED = 96;
  1288. SV_PRINTSCREEN = 97;
  1289. SV_CSYSVALUES = 98;
  1290. type
  1291. PARAM = record
  1292. id : ULONG;
  1293. cb : ULONG;
  1294. ab : array[0..1-1] of BYTE;
  1295. end;
  1296. NPPARAM = ^PARAM;
  1297. PPARAM = ^PARAM;
  1298. PRESPARAMS = record
  1299. cb : ULONG;
  1300. aparam : array[0..1-1] of PARAM;
  1301. end;
  1302. NPPRESPARAMS = ^PRESPARAMS;
  1303. PPRESPARAMS = ^PRESPARAMS;
  1304. function WinSetPresParam(hwnd : HWND;id : ULONG;cbParam : ULONG;pbParam : PVOID) : BOOL;
  1305. function WinQueryPresParam(hwnd : HWND;id1 : ULONG;id2 : ULONG;pulId : PULONG;cbBuf : ULONG;pbBuf : PVOID;fs : ULONG) : ULONG;
  1306. function WinRemovePresParam(hwnd : HWND;id : ULONG) : BOOL;
  1307. const
  1308. PP_FOREGROUNDCOLOR = 1;
  1309. PP_FOREGROUNDCOLORINDEX = 2;
  1310. PP_BACKGROUNDCOLOR = 3;
  1311. PP_BACKGROUNDCOLORINDEX = 4;
  1312. PP_HILITEFOREGROUNDCOLOR = 5;
  1313. PP_HILITEFOREGROUNDCOLORINDEX = 6;
  1314. PP_HILITEBACKGROUNDCOLOR = 7;
  1315. PP_HILITEBACKGROUNDCOLORINDEX = 8;
  1316. PP_DISABLEDFOREGROUNDCOLOR = 9;
  1317. PP_DISABLEDFOREGROUNDCOLORINDEX = 10;
  1318. PP_DISABLEDBACKGROUNDCOLOR = 11;
  1319. PP_DISABLEDBACKGROUNDCOLORINDEX = 12;
  1320. PP_BORDERCOLOR = 13;
  1321. PP_BORDERCOLORINDEX = 14;
  1322. PP_FONTNAMESIZE = 15;
  1323. PP_FONTHANDLE = 16;
  1324. PP_RESERVED = 17;
  1325. PP_ACTIVECOLOR = 18;
  1326. PP_ACTIVECOLORINDEX = 19;
  1327. PP_INACTIVECOLOR = 20;
  1328. PP_INACTIVECOLORINDEX = 21;
  1329. PP_ACTIVETEXTFGNDCOLOR = 22;
  1330. PP_ACTIVETEXTFGNDCOLORINDEX = 23;
  1331. PP_ACTIVETEXTBGNDCOLOR = 24;
  1332. PP_ACTIVETEXTBGNDCOLORINDEX = 25;
  1333. PP_INACTIVETEXTFGNDCOLOR = 26;
  1334. PP_INACTIVETEXTFGNDCOLORINDEX = 27;
  1335. PP_INACTIVETEXTBGNDCOLOR = 28;
  1336. PP_INACTIVETEXTBGNDCOLORINDEX = 29;
  1337. PP_SHADOW = 30;
  1338. PP_MENUFOREGROUNDCOLOR = 31;
  1339. PP_MENUFOREGROUNDCOLORINDEX = 32;
  1340. PP_MENUBACKGROUNDCOLOR = 33;
  1341. PP_MENUBACKGROUNDCOLORINDEX = 34;
  1342. PP_MENUHILITEFGNDCOLOR = 35;
  1343. PP_MENUHILITEFGNDCOLORINDEX = 36;
  1344. PP_MENUHILITEBGNDCOLOR = 37;
  1345. PP_MENUHILITEBGNDCOLORINDEX = 38;
  1346. PP_MENUDISABLEDFGNDCOLOR = 39;
  1347. PP_MENUDISABLEDFGNDCOLORINDEX = 40;
  1348. PP_MENUDISABLEDBGNDCOLOR = 41;
  1349. PP_MENUDISABLEDBGNDCOLORINDEX = 42;
  1350. PP_USER = $8000;
  1351. QPF_NOINHERIT = $0001;
  1352. QPF_ID1COLORINDEX = $0002;
  1353. QPF_ID2COLORINDEX = $0004;
  1354. QPF_PURERGBCOLOR = $0008;
  1355. QPF_VALIDFLAGS = $000F;
  1356. function WinQuerySysColor(hwndDesktop : HWND;clr : LONG;lReserved : LONG) : LONG;
  1357. function WinSetSysColors(hwndDesktop : HWND;flOptions : ULONG;flFormat : ULONG;clrFirst : LONG;cclr : ULONG;pclr : PLONG) : BOOL;
  1358. const
  1359. SYSCLR_SHADOWHILITEBGND = (-50);
  1360. SYSCLR_SHADOWHILITEFGND = (-49);
  1361. SYSCLR_SHADOWTEXT = (-48);
  1362. SYSCLR_ENTRYFIELD = (-47);
  1363. SYSCLR_MENUDISABLEDTEXT = (-46);
  1364. SYSCLR_MENUHILITE = (-45);
  1365. SYSCLR_MENUHILITEBGND = (-44);
  1366. SYSCLR_PAGEBACKGROUND = (-43);
  1367. SYSCLR_FIELDBACKGROUND = (-42);
  1368. SYSCLR_BUTTONLIGHT = (-41);
  1369. SYSCLR_BUTTONMIDDLE = (-40);
  1370. SYSCLR_BUTTONDARK = (-39);
  1371. SYSCLR_BUTTONDEFAULT = (-38);
  1372. SYSCLR_TITLEBOTTOM = (-37);
  1373. SYSCLR_SHADOW = (-36);
  1374. SYSCLR_ICONTEXT = (-35);
  1375. SYSCLR_DIALOGBACKGROUND = (-34);
  1376. SYSCLR_HILITEFOREGROUND = (-33);
  1377. SYSCLR_HILITEBACKGROUND = (-32);
  1378. SYSCLR_INACTIVETITLETEXTBGND = (-31);
  1379. SYSCLR_ACTIVETITLETEXTBGND = (-30);
  1380. SYSCLR_INACTIVETITLETEXT = (-29);
  1381. SYSCLR_ACTIVETITLETEXT = (-28);
  1382. SYSCLR_OUTPUTTEXT = (-27);
  1383. SYSCLR_WINDOWSTATICTEXT = (-26);
  1384. SYSCLR_SCROLLBAR = (-25);
  1385. SYSCLR_BACKGROUND = (-24);
  1386. SYSCLR_ACTIVETITLE = (-23);
  1387. SYSCLR_INACTIVETITLE = (-22);
  1388. SYSCLR_MENU = (-21);
  1389. SYSCLR_WINDOW = (-20);
  1390. SYSCLR_WINDOWFRAME = (-19);
  1391. SYSCLR_MENUTEXT = (-18);
  1392. SYSCLR_WINDOWTEXT = (-17);
  1393. SYSCLR_TITLETEXT = (-16);
  1394. SYSCLR_ACTIVEBORDER = (-15);
  1395. SYSCLR_INACTIVEBORDER = (-14);
  1396. SYSCLR_APPWORKSPACE = (-13);
  1397. SYSCLR_HELPBACKGROUND = (-12);
  1398. SYSCLR_HELPTEXT = (-11);
  1399. SYSCLR_HELPHILITE = (-10);
  1400. SYSCLR_CSYSCOLORS = 41;
  1401. function WinStartTimer(hab : HAB;hwnd : HWND;idTimer : ULONG;dtTimeout : ULONG) : ULONG;
  1402. function WinStopTimer(hab : HAB;hwnd : HWND;idTimer : ULONG) : BOOL;
  1403. function WinGetCurrentTime(hab : HAB) : ULONG;
  1404. const
  1405. TID_CURSOR = $ffff;
  1406. TID_SCROLL = $fffe;
  1407. TID_FLASHWINDOW = $fffd;
  1408. TID_USERMAX = $7fff;
  1409. type
  1410. HACCEL = LHANDLE;
  1411. const
  1412. AF_CHAR = $0001;
  1413. AF_VIRTUALKEY = $0002;
  1414. AF_SCANCODE = $0004;
  1415. AF_SHIFT = $0008;
  1416. AF_CONTROL = $0010;
  1417. AF_ALT = $0020;
  1418. AF_LONEKEY = $0040;
  1419. AF_SYSCOMMAND = $0100;
  1420. AF_HELP = $0200;
  1421. {$PACKRECORDS 2}
  1422. type
  1423. ACCEL = record
  1424. fs : USHORT;
  1425. key : USHORT;
  1426. cmd : USHORT;
  1427. end;
  1428. PACCEL = ^ACCEL;
  1429. ACCELTABLE = record
  1430. cAccel : USHORT;
  1431. codepage : USHORT;
  1432. aaccel : array[0..1-1] of ACCEL;
  1433. end;
  1434. PACCELTABLE = ^ACCELTABLE;
  1435. {$PACKRECORDS NORMAL}
  1436. function WinLoadAccelTable(hab : HAB;hmod : HMODULE;idAccelTable : ULONG) : HACCEL;
  1437. function WinCopyAccelTable(haccel : HACCEL;pAccelTable : PACCELTABLE;cbCopyMax : ULONG) : ULONG;
  1438. function WinCreateAccelTable(hab : HAB;pAccelTable : PACCELTABLE) : HACCEL;
  1439. function WinDestroyAccelTable(haccel : HACCEL) : BOOL;
  1440. function WinTranslateAccel(hab : HAB;hwnd : HWND;haccel : HACCEL;pqmsg : PQMSG) : BOOL;
  1441. function WinSetAccelTable(hab : HAB;haccel : HACCEL;hwndFrame : HWND) : BOOL;
  1442. function WinQueryAccelTable(hab : HAB;hwndFrame : HWND) : HACCEL;
  1443. const
  1444. EAF_DEFAULTOWNER = $0001;
  1445. EAF_UNCHANGEABLE = $0002;
  1446. EAF_REUSEICON = $0004;
  1447. type
  1448. TRACKINFO = record
  1449. cxBorder : LONG;
  1450. cyBorder : LONG;
  1451. cxGrid : LONG;
  1452. cyGrid : LONG;
  1453. cxKeyboard : LONG;
  1454. cyKeyboard : LONG;
  1455. rclTrack : RECTL;
  1456. rclBoundary : RECTL;
  1457. ptlMinTrackSize : POINTL;
  1458. ptlMaxTrackSize : POINTL;
  1459. fs : ULONG;
  1460. end;
  1461. PTRACKINFO = ^TRACKINFO;
  1462. function WinTrackRect(hwnd : HWND;hps : HPS;pti : PTRACKINFO) : BOOL;
  1463. function WinShowTrackRect(hwnd : HWND;fShow : BOOL) : BOOL;
  1464. const
  1465. TF_LEFT = $0001;
  1466. TF_TOP = $0002;
  1467. TF_RIGHT = $0004;
  1468. TF_BOTTOM = $0008;
  1469. TF_MOVE = $000F;
  1470. TF_SETPOINTERPOS = $0010;
  1471. TF_GRID = $0020;
  1472. TF_STANDARD = $0040;
  1473. TF_ALLINBOUNDARY = $0080;
  1474. TF_VALIDATETRACKRECT = $0100;
  1475. TF_PARTINBOUNDARY = $0200;
  1476. WM_RENDERFMT = $0060;
  1477. WM_RENDERALLFMTS = $0061;
  1478. WM_DESTROYCLIPBOARD = $0062;
  1479. WM_PAINTCLIPBOARD = $0063;
  1480. WM_SIZECLIPBOARD = $0064;
  1481. WM_HSCROLLCLIPBOARD = $0065;
  1482. WM_VSCROLLCLIPBOARD = $0066;
  1483. WM_DRAWCLIPBOARD = $0067;
  1484. CF_TEXT = 1;
  1485. CF_BITMAP = 2;
  1486. CF_DSPTEXT = 3;
  1487. CF_DSPBITMAP = 4;
  1488. CF_METAFILE = 5;
  1489. CF_DSPMETAFILE = 6;
  1490. CF_PALETTE = 9;
  1491. SZFMT_TEXT = '#1';
  1492. SZFMT_BITMAP = '#2';
  1493. SZFMT_DSPTEXT = '#3';
  1494. SZFMT_DSPBITMAP = '#4';
  1495. SZFMT_METAFILE = '#5';
  1496. SZFMT_DSPMETAFILE = '#6';
  1497. SZFMT_PALETTE = '#9';
  1498. SZFMT_SYLK = 'Sylk';
  1499. SZFMT_DIF = 'Dif';
  1500. SZFMT_TIFF = 'Tiff';
  1501. SZFMT_OEMTEXT = 'OemText';
  1502. SZFMT_DIB = 'Dib';
  1503. SZFMT_OWNERDISPLAY = 'OwnerDisplay';
  1504. SZFMT_LINK = 'Link';
  1505. SZFMT_METAFILEPICT = 'MetaFilePict';
  1506. SZFMT_DSPMETAFILEPICT = 'DspMetaFilePict';
  1507. SZFMT_CPTEXT = 'Codepage Text';
  1508. SZDDEFMT_RTF = 'Rich Text Format';
  1509. SZDDEFMT_PTRPICT = 'Printer_Picture';
  1510. {$PACKRECORDS 2}
  1511. type
  1512. MFP = record
  1513. sizeBounds : POINTL;
  1514. sizeMM : POINTL;
  1515. cbLength : ULONG;
  1516. mapMode : USHORT;
  1517. reserved : USHORT;
  1518. abData : array[0..1-1] of BYTE;
  1519. end;
  1520. PMFP = ^MFP;
  1521. CPTEXT = record
  1522. idCountry : USHORT;
  1523. usCodepage : USHORT;
  1524. usLangID : USHORT;
  1525. usSubLangID : USHORT;
  1526. abText : array[0..1-1] of BYTE;
  1527. end;
  1528. PCPTEXT = ^CPTEXT;
  1529. {$PACKRECORDS NORMAL}
  1530. function WinSetClipbrdOwner(hab : HAB;hwnd : HWND) : BOOL;
  1531. function WinSetClipbrdData(hab : HAB;ulData : ULONG;fmt : ULONG;rgfFmtInfo : ULONG) : BOOL;
  1532. function WinQueryClipbrdData(hab : HAB;fmt : ULONG) : ULONG;
  1533. function WinQueryClipbrdFmtInfo(hab : HAB;fmt : ULONG;prgfFmtInfo : PULONG) : BOOL;
  1534. function WinSetClipbrdViewer(hab : HAB;hwndNewClipViewer : HWND) : BOOL;
  1535. const
  1536. CFI_OWNERFREE = $0001;
  1537. CFI_OWNERDISPLAY = $0002;
  1538. CFI_POINTER = $0400;
  1539. CFI_HANDLE = $0200;
  1540. function WinEnumClipbrdFmts(hab : HAB;fmt : ULONG) : ULONG;
  1541. function WinEmptyClipbrd(hab : HAB) : BOOL;
  1542. function WinOpenClipbrd(hab : HAB) : BOOL;
  1543. function WinCloseClipbrd(hab : HAB) : BOOL;
  1544. function WinQueryClipbrdOwner(hab : HAB) : HWND;
  1545. function WinQueryClipbrdViewer(hab : HAB) : HWND;
  1546. function WinDestroyCursor(hwnd : HWND) : BOOL;
  1547. function WinShowCursor(hwnd : HWND;fShow : BOOL) : BOOL;
  1548. function WinCreateCursor(hwnd : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fs : ULONG;prclClip : PRECTL) : BOOL;
  1549. const
  1550. CURSOR_SOLID = $0000;
  1551. CURSOR_HALFTONE = $0001;
  1552. CURSOR_FRAME = $0002;
  1553. CURSOR_FLASH = $0004;
  1554. CURSOR_SETPOS = $8000;
  1555. type
  1556. CURSORINFO = record
  1557. hwnd : HWND;
  1558. x : LONG;
  1559. y : LONG;
  1560. cx : LONG;
  1561. cy : LONG;
  1562. fs : ULONG;
  1563. rclClip : RECTL;
  1564. end;
  1565. PCURSORINFO = ^CURSORINFO;
  1566. function WinQueryCursorInfo(hwndDesktop : HWND;pCursorInfo : PCURSORINFO) : BOOL;
  1567. type
  1568. HPOINTER = LHANDLE;
  1569. function WinSetPointer(hwndDesktop : HWND;hptrNew : HPOINTER) : BOOL;
  1570. function WinSetPointerOwner(hptr : HPOINTER;pid : PID;fDestroy : BOOL) : BOOL;
  1571. function WinShowPointer(hwndDesktop : HWND;fShow : BOOL) : BOOL;
  1572. function WinQuerySysPointer(hwndDesktop : HWND;iptr : LONG;fLoad : BOOL) : HPOINTER;
  1573. const
  1574. SPTR_ARROW = 1;
  1575. SPTR_TEXT = 2;
  1576. SPTR_WAIT = 3;
  1577. SPTR_SIZE = 4;
  1578. SPTR_MOVE = 5;
  1579. SPTR_SIZENWSE = 6;
  1580. SPTR_SIZENESW = 7;
  1581. SPTR_SIZEWE = 8;
  1582. SPTR_SIZENS = 9;
  1583. SPTR_APPICON = 10;
  1584. SPTR_ICONINFORMATION = 11;
  1585. SPTR_ICONQUESTION = 12;
  1586. SPTR_ICONERROR = 13;
  1587. SPTR_ICONWARNING = 14;
  1588. SPTR_CPTR = 14;
  1589. SPTR_ILLEGAL = 18;
  1590. SPTR_FILE = 19;
  1591. SPTR_FOLDER = 20;
  1592. SPTR_MULTFILE = 21;
  1593. SPTR_PROGRAM = 22;
  1594. SPTR_HANDICON = SPTR_ICONERROR;
  1595. SPTR_QUESICON = SPTR_ICONQUESTION;
  1596. SPTR_BANGICON = SPTR_ICONWARNING;
  1597. SPTR_NOTEICON = SPTR_ICONINFORMATION;
  1598. function WinLoadPointer(hwndDesktop : HWND;hmod : HMODULE;idres : ULONG) : HPOINTER;
  1599. function WinCreatePointer(hwndDesktop : HWND;hbmPointer : HBITMAP;fPointer : BOOL;xHotspot : LONG;yHotspot : LONG) : HPOINTER;
  1600. function WinSetPointerPos(hwndDesktop : HWND;x : LONG;y : LONG) : BOOL;
  1601. function WinDestroyPointer(hptr : HPOINTER) : BOOL;
  1602. function WinQueryPointer(hwndDesktop : HWND) : HPOINTER;
  1603. function WinQueryPointerPos(hwndDesktop : HWND;pptl : PPOINTL) : BOOL;
  1604. type
  1605. POINTERINFO = record
  1606. fPointer : ULONG;
  1607. xHotspot : LONG;
  1608. yHotspot : LONG;
  1609. hbmPointer : HBITMAP;
  1610. hbmColor : HBITMAP;
  1611. hbmMiniPointer : HBITMAP;
  1612. hbmMiniColor : HBITMAP;
  1613. end;
  1614. PPOINTERINFO = ^POINTERINFO;
  1615. function WinCreatePointerIndirect(hwndDesktop : HWND;pptri : PPOINTERINFO) : HPOINTER;
  1616. function WinQueryPointerInfo(hptr : HPOINTER;pPointerInfo : PPOINTERINFO) : BOOL;
  1617. function WinDrawPointer(hps : HPS;x : LONG;y : LONG;hptr : HPOINTER;fs : ULONG) : BOOL;
  1618. const
  1619. DP_NORMAL = $0000;
  1620. DP_HALFTONED = $0001;
  1621. DP_INVERTED = $0002;
  1622. function WinGetSysBitmap(hwndDesktop : HWND;ibm : ULONG) : HBITMAP;
  1623. const
  1624. SBMP_OLD_SYSMENU = 1;
  1625. SBMP_OLD_SBUPARROW = 2;
  1626. SBMP_OLD_SBDNARROW = 3;
  1627. SBMP_OLD_SBRGARROW = 4;
  1628. SBMP_OLD_SBLFARROW = 5;
  1629. SBMP_MENUCHECK = 6;
  1630. SBMP_OLD_CHECKBOXES = 7;
  1631. SBMP_BTNCORNERS = 8;
  1632. SBMP_OLD_MINBUTTON = 9;
  1633. SBMP_OLD_MAXBUTTON = 10;
  1634. SBMP_OLD_RESTOREBUTTON = 11;
  1635. SBMP_OLD_CHILDSYSMENU = 12;
  1636. SBMP_DRIVE = 15;
  1637. SBMP_FILE = 16;
  1638. SBMP_FOLDER = 17;
  1639. SBMP_TREEPLUS = 18;
  1640. SBMP_TREEMINUS = 19;
  1641. SBMP_PROGRAM = 22;
  1642. SBMP_MENUATTACHED = 23;
  1643. SBMP_SIZEBOX = 24;
  1644. SBMP_SYSMENU = 25;
  1645. SBMP_MINBUTTON = 26;
  1646. SBMP_MAXBUTTON = 27;
  1647. SBMP_RESTOREBUTTON = 28;
  1648. SBMP_CHILDSYSMENU = 29;
  1649. SBMP_SYSMENUDEP = 30;
  1650. SBMP_MINBUTTONDEP = 31;
  1651. SBMP_MAXBUTTONDEP = 32;
  1652. SBMP_RESTOREBUTTONDEP = 33;
  1653. SBMP_CHILDSYSMENUDEP = 34;
  1654. SBMP_SBUPARROW = 35;
  1655. SBMP_SBDNARROW = 36;
  1656. SBMP_SBLFARROW = 37;
  1657. SBMP_SBRGARROW = 38;
  1658. SBMP_SBUPARROWDEP = 39;
  1659. SBMP_SBDNARROWDEP = 40;
  1660. SBMP_SBLFARROWDEP = 41;
  1661. SBMP_SBRGARROWDEP = 42;
  1662. SBMP_SBUPARROWDIS = 43;
  1663. SBMP_SBDNARROWDIS = 44;
  1664. SBMP_SBLFARROWDIS = 45;
  1665. SBMP_SBRGARROWDIS = 46;
  1666. SBMP_COMBODOWN = 47;
  1667. SBMP_CHECKBOXES = 48;
  1668. function WinSetHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;
  1669. function WinReleaseHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;
  1670. function WinCallMsgFilter(hab : HAB;pqmsg : PQMSG;msgf : ULONG) : BOOL;
  1671. const
  1672. HK_SENDMSG = 0;
  1673. HK_INPUT = 1;
  1674. HK_MSGFILTER = 2;
  1675. HK_JOURNALRECORD = 3;
  1676. HK_JOURNALPLAYBACK = 4;
  1677. HK_HELP = 5;
  1678. HK_LOADER = 6;
  1679. HK_REGISTERUSERMSG = 7;
  1680. HK_MSGCONTROL = 8;
  1681. HK_PLIST_ENTRY = 9;
  1682. HK_PLIST_EXIT = 10;
  1683. HK_FINDWORD = 11;
  1684. HK_CODEPAGECHANGED = 12;
  1685. HK_WINDOWDC = 15;
  1686. HK_DESTROYWINDOW = 16;
  1687. HK_CHECKMSGFILTER = 20;
  1688. HMQ_CURRENT = 1;
  1689. MSGF_DIALOGBOX = 1;
  1690. MSGF_MESSAGEBOX = 2;
  1691. MSGF_TRACK = 8;
  1692. MSGF_DDEPOSTMSG = 3;
  1693. HLPM_FRAME = (-1);
  1694. HLPM_WINDOW = (-2);
  1695. HLPM_MENU = (-3);
  1696. PM_MODEL_1X = 0;
  1697. PM_MODEL_2X = 1;
  1698. type
  1699. SMHSTRUCT = record
  1700. mp2 : MPARAM;
  1701. mp1 : MPARAM;
  1702. msg : ULONG;
  1703. hwnd : HWND;
  1704. model : ULONG;
  1705. end;
  1706. PSMHSTRUCT = ^SMHSTRUCT;
  1707. const
  1708. LHK_DELETEPROC = 1;
  1709. LHK_DELETELIB = 2;
  1710. LHK_LOADPROC = 3;
  1711. LHK_LOADLIB = 4;
  1712. MCHK_MSGINTEREST = 1;
  1713. MCHK_CLASSMSGINTEREST = 2;
  1714. MCHK_SYNCHRONISATION = 3;
  1715. MCHK_MSGMODE = 4;
  1716. RUMHK_DATATYPE = 1;
  1717. RUMHK_MSG = 2;
  1718. function WinSetClassThunkProc(pszClassname : PSZ;pfnThunkProc : PFN) : BOOL;
  1719. function WinQueryClassThunkProc(pszClassname : PSZ) : PFN;
  1720. function WinSetWindowThunkProc(hwnd : HWND;pfnThunkProc : PFN) : BOOL;
  1721. function WinQueryWindowThunkProc(hwnd : HWND) : PFN;
  1722. function WinQueryWindowModel(hwnd : HWND) : LONG;
  1723. function WinQueryCp(hmq : HMQ) : ULONG;
  1724. function WinSetCp(hmq : HMQ;idCodePage : ULONG) : BOOL;
  1725. function WinQueryCpList(hab : HAB;ccpMax : ULONG;prgcp : PULONG) : ULONG;
  1726. function WinCpTranslateString(hab : HAB;cpSrc : ULONG;pszSrc : PSZ;cpDst : ULONG;cchDestMax : ULONG;pchDest : PSZ) : BOOL;
  1727. function WinCpTranslateChar(hab : HAB;cpSrc : ULONG;chSrc : UCHAR;cpDst : ULONG) : UCHAR;
  1728. function WinUpper(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : ULONG;
  1729. function WinUpperChar(hab : HAB;idcp : ULONG;idcc : ULONG;c : ULONG) : ULONG;
  1730. function WinNextChar(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : PSZ;
  1731. function WinPrevChar(hab : HAB;idcp : ULONG;idcc : ULONG;pszStart : PSZ;psz : PSZ) : PSZ;
  1732. function WinCompareStrings(hab : HAB;idcp : ULONG;idcc : ULONG;psz1 : PSZ;psz2 : PSZ;reserved : ULONG) : ULONG;
  1733. const
  1734. WCS_ERROR = 0;
  1735. WCS_EQ = 1;
  1736. WCS_LT = 2;
  1737. WCS_GT = 3;
  1738. type
  1739. HATOMTBL = LHANDLE;
  1740. ATOM = ULONG;
  1741. function WinCreateAtomTable(cbInitial : ULONG;cBuckets : ULONG) : HATOMTBL;
  1742. function WinDestroyAtomTable(hAtomTbl : HATOMTBL) : HATOMTBL;
  1743. function WinAddAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;
  1744. function WinFindAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;
  1745. function WinDeleteAtom(hAtomTbl : HATOMTBL;atom : ATOM) : ATOM;
  1746. function WinQueryAtomUsage(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;
  1747. function WinQueryAtomLength(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;
  1748. function WinQueryAtomName(hAtomTbl : HATOMTBL;atom : ATOM;pchBuffer : PSZ;cchBufferMax : ULONG) : ULONG;
  1749. const
  1750. WINDBG_HWND_NOT_DESTROYED = $1022;
  1751. WINDBG_HPTR_NOT_DESTROYED = $1023;
  1752. WINDBG_HACCEL_NOT_DESTROYED = $1024;
  1753. WINDBG_HENUM_NOT_DESTROYED = $1025;
  1754. WINDBG_VISRGN_SEM_BUSY = $1026;
  1755. WINDBG_USER_SEM_BUSY = $1027;
  1756. WINDBG_DC_CACHE_BUSY = $1028;
  1757. WINDBG_HOOK_STILL_INSTALLED = $1029;
  1758. WINDBG_WINDOW_STILL_LOCKED = $102a;
  1759. WINDBG_UPDATEPS_ASSERTION_FAIL = $102b;
  1760. WINDBG_SENDMSG_WITHIN_USER_SEM = $102c;
  1761. WINDBG_USER_SEM_NOT_ENTERED = $102d;
  1762. WINDBG_PROC_NOT_EXPORTED = $102e;
  1763. WINDBG_BAD_SENDMSG_HWND = $102f;
  1764. WINDBG_ABNORMAL_EXIT = $1030;
  1765. WINDBG_INTERNAL_REVISION = $1031;
  1766. WINDBG_INITSYSTEM_FAILED = $1032;
  1767. WINDBG_HATOMTBL_NOT_DESTROYED = $1033;
  1768. WINDBG_WINDOW_UNLOCK_WAIT = $1035;
  1769. type
  1770. ERRINFO = record
  1771. cbFixedErrInfo : ULONG;
  1772. idError : ERRORID;
  1773. cDetailLevel : ULONG;
  1774. offaoffszMsg : ULONG;
  1775. offBinaryData : ULONG;
  1776. end;
  1777. PERRINFO = ^ERRINFO;
  1778. function WinGetLastError(hab : HAB) : ERRORID;
  1779. function WinGetErrorInfo(hab : HAB) : PERRINFO;
  1780. function WinFreeErrorInfo(perrinfo : PERRINFO) : BOOL;
  1781. const
  1782. SZDDESYS_TOPIC = 'System';
  1783. SZDDESYS_ITEM_TOPICS = 'Topics';
  1784. SZDDESYS_ITEM_SYSITEMS = 'SysItems';
  1785. SZDDESYS_ITEM_RTNMSG = 'ReturnMessage';
  1786. SZDDESYS_ITEM_STATUS = 'Status';
  1787. SZDDESYS_ITEM_FORMATS = 'Formats';
  1788. SZDDESYS_ITEM_SECURITY = 'Security';
  1789. SZDDESYS_ITEM_ITEMFORMATS = 'ItemFormats';
  1790. SZDDESYS_ITEM_HELP = 'Help';
  1791. SZDDESYS_ITEM_PROTOCOLS = 'Protocols';
  1792. SZDDESYS_ITEM_RESTART = 'Restart';
  1793. type
  1794. CONVCONTEXT = record
  1795. cb : ULONG;
  1796. fsContext : ULONG;
  1797. idCountry : ULONG;
  1798. usCodepage : ULONG;
  1799. usLangID : ULONG;
  1800. usSubLangID : ULONG;
  1801. end;
  1802. PCONVCONTEXT = ^CONVCONTEXT;
  1803. const
  1804. DDECTXT_CASESENSITIVE = $0001;
  1805. type
  1806. DDEINIT = record
  1807. cb : ULONG;
  1808. pszAppName : PSZ;
  1809. pszTopic : PSZ;
  1810. offConvContext : ULONG;
  1811. end;
  1812. PDDEINIT = ^DDEINIT;
  1813. DDESTRUCT = record
  1814. cbData : ULONG;
  1815. fsStatus : USHORT;
  1816. usFormat : USHORT;
  1817. offszItemName : USHORT;
  1818. offabData : USHORT;
  1819. end;
  1820. PDDESTRUCT = ^DDESTRUCT;
  1821. const
  1822. DDE_FACK = $0001;
  1823. DDE_FBUSY = $0002;
  1824. DDE_FNODATA = $0004;
  1825. DDE_FACKREQ = $0008;
  1826. DDE_FRESPONSE = $0010;
  1827. DDE_NOTPROCESSED = $0020;
  1828. DDE_FRESERVED = $00C0;
  1829. DDE_FAPPSTATUS = $FF00;
  1830. DDEFMT_TEXT = $0001;
  1831. function WinDdeInitiate(hwndClient : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : BOOL;
  1832. function WinDdeRespond(hwndClient : HWND;hwndServer : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : MRESULT;
  1833. function WinDdePostMsg(hwndTo : HWND;hwndFrom : HWND;wm : ULONG;pddest : PDDESTRUCT;flOptions : ULONG) : BOOL;
  1834. const
  1835. DDEPM_RETRY = $00000001;
  1836. DDEPM_NOFREE = $00000002;
  1837. WM_DDE_FIRST = $00A0;
  1838. WM_DDE_INITIATE = $00A0;
  1839. WM_DDE_REQUEST = $00A1;
  1840. WM_DDE_ACK = $00A2;
  1841. WM_DDE_DATA = $00A3;
  1842. WM_DDE_ADVISE = $00A4;
  1843. WM_DDE_UNADVISE = $00A5;
  1844. WM_DDE_POKE = $00A6;
  1845. WM_DDE_EXECUTE = $00A7;
  1846. WM_DDE_TERMINATE = $00A8;
  1847. WM_DDE_INITIATEACK = $00A9;
  1848. WM_DDE_LAST = $00AF;
  1849. WM_QUERYCONVERTPOS = $00b0;
  1850. QCP_CONVERT = $0001;
  1851. QCP_NOCONVERT = $0000;
  1852. type
  1853. HLIB = HMODULE;
  1854. PHLIB = PHMODULE;
  1855. function WinDeleteProcedure(hab : HAB;wndproc : PFNWP) : BOOL;
  1856. function WinDeleteLibrary(hab : HAB;libhandle : HLIB) : BOOL;
  1857. function WinLoadProcedure(hab : HAB;libhandle : HLIB;procname : PSZ) : PFNWP;
  1858. function WinLoadLibrary(hab : HAB;libname : PSZ) : HLIB;
  1859. type
  1860. DESKTOP = record
  1861. cbSize : ULONG;
  1862. hbm : HBITMAP;
  1863. x : LONG;
  1864. y : LONG;
  1865. fl : ULONG;
  1866. lTileCount : LONG;
  1867. szFile : array[0..260-1] of CHAR;
  1868. end;
  1869. PDESKTOP = ^DESKTOP;
  1870. function WinSetDesktopBkgnd(hwndDesktop : HWND;pdskNew : PDESKTOP) : HBITMAP;
  1871. function WinQueryDesktopBkgnd(hwndDesktop : HWND;pdsk : PDESKTOP) : BOOL;
  1872. const
  1873. SDT_DESTROY = $0001;
  1874. SDT_NOBKGND = $0002;
  1875. SDT_TILE = $0004;
  1876. SDT_SCALE = $0008;
  1877. SDT_PATTERN = $0010;
  1878. SDT_CENTER = $0020;
  1879. SDT_RETAIN = $0040;
  1880. SDT_LOADFILE = $0080;
  1881. function WinRealizePalette(hwnd : HWND;hps : HPS;pcclr : PULONG) : LONG;
  1882. const
  1883. STR_DLLNAME = 'keyremap';
  1884. WM_DBCSFIRST = $00b0;
  1885. WM_DBCSLAST = $00cf;
  1886. function HWNDFROMMP(mp : MPARAM) : HWND;
  1887. function SHORT1FROMMP(mp : MPARAM) : USHORT;
  1888. function SHORT2FROMMP(mp : MPARAM) : USHORT;
  1889. implementation
  1890. function WinRegisterClass(hab : HAB;pszClassName : PSZ;pfnWndProc : PFNWP;flStyle : ULONG;cbWindowData : ULONG) : BOOL;[SYSTEM];
  1891. function WinDefWindowProc(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
  1892. function WinDestroyWindow(hwnd : HWND) : BOOL;[SYSTEM];
  1893. function WinShowWindow(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
  1894. function WinQueryWindowRect(hwnd : HWND;prclDest : PRECTL) : BOOL;[SYSTEM];
  1895. function WinGetPS(hwnd : HWND) : HPS;[SYSTEM];
  1896. function WinReleasePS(hps : HPS) : BOOL;[SYSTEM];
  1897. function WinEndPaint(hps : HPS) : BOOL;[SYSTEM];
  1898. function WinGetClipPS(hwnd : HWND;hwndClip : HWND;fl : ULONG) : HPS;[SYSTEM];
  1899. function WinIsWindowShowing(hwnd : HWND) : BOOL;[SYSTEM];
  1900. function WinBeginPaint(hwnd : HWND;hps : HPS;prclPaint : PRECTL) : HPS;[SYSTEM];
  1901. function WinOpenWindowDC(hwnd : HWND) : HDC;[SYSTEM];
  1902. function WinScrollWindow(hwnd : HWND;dx : LONG;dy : LONG;prclScroll : PRECTL;prclClip : PRECTL;hrgnUpdate : HRGN;prclUpdate : PRECTL;rgfsw : ULONG) : LONG;[SYSTEM];
  1903. function WinFillRect(hps : HPS;prcl : PRECTL;lColor : LONG) : BOOL;[SYSTEM];
  1904. function WinQueryVersion(hab : HAB) : ULONG;[SYSTEM];
  1905. function WinInitialize(flOptions : ULONG) : HAB;[SYSTEM];
  1906. function WinTerminate(hab : HAB) : BOOL;[SYSTEM];
  1907. function WinQueryAnchorBlock(hwnd : HWND) : HAB;[SYSTEM];
  1908. function WinCreateWindow(hwndParent : HWND;pszClass : PSZ;pszName : PSZ;flStyle : ULONG;x : LONG;y : LONG;cx : LONG;cy : LONG;hwndOwner : HWND;hwndInsertBehind : HWND;id : ULONG;pCtlData : PVOID;pPresParams : PVOID) : HWND;[SYSTEM];
  1909. function WinEnableWindow(hwnd : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
  1910. function WinIsWindowEnabled(hwnd : HWND) : BOOL;[SYSTEM];
  1911. function WinEnableWindowUpdate(hwnd : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
  1912. function WinIsWindowVisible(hwnd : HWND) : BOOL;[SYSTEM];
  1913. function WinQueryWindowText(hwnd : HWND;cchBufferMax : LONG;pchBuffer : PCH) : LONG;[SYSTEM];
  1914. function WinSetWindowText(hwnd : HWND;pszText : PSZ) : BOOL;[SYSTEM];
  1915. function WinQueryWindowTextLength(hwnd : HWND) : LONG;[SYSTEM];
  1916. function WinWindowFromID(hwndParent : HWND;id : ULONG) : HWND;[SYSTEM];
  1917. function WinIsWindow(hab : HAB;hwnd : HWND) : BOOL;[SYSTEM];
  1918. function WinQueryWindow(hwnd : HWND;cmd : LONG) : HWND;[SYSTEM];
  1919. function WinMultWindowFromIDs(hwndParent : HWND;prghwnd : PHWND;idFirst : ULONG;idLast : ULONG) : LONG;[SYSTEM];
  1920. function WinSetParent(hwnd : HWND;hwndNewParent : HWND;fRedraw : BOOL) : BOOL;[SYSTEM];
  1921. function WinIsChild(hwnd : HWND;hwndParent : HWND) : BOOL;[SYSTEM];
  1922. function WinSetOwner(hwnd : HWND;hwndNewOwner : HWND) : BOOL;[SYSTEM];
  1923. function WinQueryWindowProcess(hwnd : HWND;ppid : PPID;ptid : PTID) : BOOL;[SYSTEM];
  1924. function WinQueryObjectWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
  1925. function WinQueryDesktopWindow(hab : HAB;hdc : HDC) : HWND;[SYSTEM];
  1926. function WinSetWindowPos(hwnd : HWND;hwndInsertBehind : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fl : ULONG) : BOOL;[SYSTEM];
  1927. function WinSetMultWindowPos(hab : HAB;pswp : PSWP;cswp : ULONG) : BOOL;[SYSTEM];
  1928. function WinQueryWindowPos(hwnd : HWND;pswp : PSWP) : BOOL;[SYSTEM];
  1929. function WinUpdateWindow(hwnd : HWND) : BOOL;[SYSTEM];
  1930. function WinInvalidateRect(hwnd : HWND;pwrc : PRECTL;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
  1931. function WinInvalidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
  1932. function WinInvertRect(hps : HPS;prcl : PRECTL) : BOOL;[SYSTEM];
  1933. function WinDrawBitmap(hpsDst : HPS;hbm : HBITMAP;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore : LONG;clrBack : LONG;fl : ULONG) : BOOL;[SYSTEM];
  1934. function WinDrawText(hps : HPS;cchText : LONG;lpchText : PCH;prcl : PRECTL;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : LONG;[SYSTEM];
  1935. function WinDrawBorder(hps : HPS;prcl : PRECTL;cx : LONG;cy : LONG;clrFore : LONG;clrBack : LONG;flCmd : ULONG) : BOOL;[SYSTEM];
  1936. function WinLoadString(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;[SYSTEM];
  1937. function WinLoadMessage(hab : HAB;hmod : HMODULE;id : ULONG;cchMax : LONG;pchBuffer : PSZ) : LONG;[SYSTEM];
  1938. function WinSetActiveWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
  1939. function WinSubclassWindow(hwnd : HWND;pfnwp : PFNWP) : PFNWP;[SYSTEM];
  1940. function WinQueryClassName(hwnd : HWND;cchMax : LONG;pch : PCH) : LONG;[SYSTEM];
  1941. function WinQueryClassInfo(hab : HAB;pszClassName : PSZ;pClassInfo : PCLASSINFO) : BOOL;[SYSTEM];
  1942. function WinQueryActiveWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
  1943. function WinIsThreadActive(hab : HAB) : BOOL;[SYSTEM];
  1944. function WinQuerySysModalWindow(hwndDesktop : HWND) : HWND;[SYSTEM];
  1945. function WinSetSysModalWindow(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
  1946. function WinQueryWindowUShort(hwnd : HWND;index : LONG) : USHORT;[SYSTEM];
  1947. function WinSetWindowUShort(hwnd : HWND;index : LONG;us : USHORT) : BOOL;[SYSTEM];
  1948. function WinQueryWindowULong(hwnd : HWND;index : LONG) : ULONG;[SYSTEM];
  1949. function WinSetWindowULong(hwnd : HWND;index : LONG;ul : ULONG) : BOOL;[SYSTEM];
  1950. function WinQueryWindowPtr(hwnd : HWND;index : LONG) : PVOID;[SYSTEM];
  1951. function WinSetWindowPtr(hwnd : HWND;index : LONG;p : PVOID) : BOOL;[SYSTEM];
  1952. function WinSetWindowBits(hwnd : HWND;index : LONG;flData : ULONG;flMask : ULONG) : BOOL;[SYSTEM];
  1953. function WinBeginEnumWindows(hwnd : HWND) : HENUM;[SYSTEM];
  1954. function WinGetNextWindow(henum : HENUM) : HWND;[SYSTEM];
  1955. function WinEndEnumWindows(henum : HENUM) : BOOL;[SYSTEM];
  1956. function WinWindowFromPoint(hwnd : HWND;pptl : PPOINTL;fChildren : BOOL) : HWND;[SYSTEM];
  1957. function WinMapWindowPoints(hwndFrom : HWND;hwndTo : HWND;prgptl : PPOINTL;cwpt : LONG) : BOOL;[SYSTEM];
  1958. function WinValidateRect(hwnd : HWND;prcl : PRECTL;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
  1959. function WinValidateRegion(hwnd : HWND;hrgn : HRGN;fIncludeChildren : BOOL) : BOOL;[SYSTEM];
  1960. function WinWindowFromDC(hdc : HDC) : HWND;[SYSTEM];
  1961. function WinQueryWindowDC(hwnd : HWND) : HDC;[SYSTEM];
  1962. function WinGetScreenPS(hwndDesktop : HWND) : HPS;[SYSTEM];
  1963. function WinLockWindowUpdate(hwndDesktop : HWND;hwndLockUpdate : HWND) : BOOL;[SYSTEM];
  1964. function WinLockVisRegions(hwndDesktop : HWND;fLock : BOOL) : BOOL;[SYSTEM];
  1965. function WinQueryUpdateRect(hwnd : HWND;prcl : PRECTL) : BOOL;[SYSTEM];
  1966. function WinQueryUpdateRegion(hwnd : HWND;hrgn : HRGN) : LONG;[SYSTEM];
  1967. function WinExcludeUpdateRegion(hps : HPS;hwnd : HWND) : LONG;[SYSTEM];
  1968. function WinSendMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
  1969. function WinCreateMsgQueue(hab : HAB;cmsg : LONG) : HMQ;[SYSTEM];
  1970. function WinDestroyMsgQueue(hmq : HMQ) : BOOL;[SYSTEM];
  1971. function WinQueryQueueInfo(hmq : HMQ;pmqi : PMQINFO;cbCopy : ULONG) : BOOL;[SYSTEM];
  1972. function WinCancelShutdown(hmq : HMQ;fCancelAlways : BOOL) : BOOL;[SYSTEM];
  1973. function WinGetMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG) : BOOL;[SYSTEM];
  1974. function WinPeekMsg(hab : HAB;pqmsg : PQMSG;hwndFilter : HWND;msgFilterFirst : ULONG;msgFilterLast : ULONG;fl : ULONG) : BOOL;[SYSTEM];
  1975. function WinDispatchMsg(hab : HAB;pqmsg : PQMSG) : MRESULT;[SYSTEM];
  1976. function WinPostMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;[SYSTEM];
  1977. function WinRegisterUserMsg(hab : HAB;msgid : ULONG;datatype1 : LONG;dir1 : LONG;datatype2 : LONG;dir2 : LONG;datatyper : LONG) : BOOL;[SYSTEM];
  1978. function WinRegisterUserDatatype(hab : HAB;datatype : LONG;count : LONG;types : PLONG) : BOOL;[SYSTEM];
  1979. function WinSetMsgMode(hab : HAB;classname : PSZ;control : LONG) : BOOL;[SYSTEM];
  1980. function WinSetSynchroMode(hab : HAB;mode : LONG) : BOOL;[SYSTEM];
  1981. function WinInSendMsg(hab : HAB) : BOOL;[SYSTEM];
  1982. function WinBroadcastMsg(hwnd : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM;rgf : ULONG) : BOOL;[SYSTEM];
  1983. function WinWaitMsg(hab : HAB;msgFirst : ULONG;msgLast : ULONG) : BOOL;[SYSTEM];
  1984. function WinQueryQueueStatus(hwndDesktop : HWND) : ULONG;[SYSTEM];
  1985. function WinQueryMsgPos(hab : HAB;pptl : PPOINTL) : BOOL;[SYSTEM];
  1986. function WinQueryMsgTime(hab : HAB) : ULONG;[SYSTEM];
  1987. function WinWaitEventSem(hev : HEV;ulTimeout : ULONG) : APIRET;[SYSTEM];
  1988. function WinRequestMutexSem(hmtx : HMTX;ulTimeout : ULONG) : APIRET;[SYSTEM];
  1989. function WinWaitMuxWaitSem(hmux : HMUX;ulTimeout : ULONG;pulUser : PULONG) : APIRET;[SYSTEM];
  1990. function WinPostQueueMsg(hmq : HMQ;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : BOOL;[SYSTEM];
  1991. function WinSetMsgInterest(hwnd : HWND;msg_class : ULONG;control : LONG) : BOOL;[SYSTEM];
  1992. function WinSetClassMsgInterest(hab : HAB;pszClassName : PSZ;msg_class : ULONG;control : LONG) : BOOL;[SYSTEM];
  1993. function WinSetFocus(hwndDesktop : HWND;hwndSetFocus : HWND) : BOOL;[SYSTEM];
  1994. function WinFocusChange(hwndDesktop : HWND;hwndSetFocus : HWND;flFocusChange : ULONG) : BOOL;[SYSTEM];
  1995. function WinSetCapture(hwndDesktop : HWND;hwnd : HWND) : BOOL;[SYSTEM];
  1996. function WinQueryCapture(hwndDesktop : HWND) : HWND;[SYSTEM];
  1997. function WinQueryFocus(hwndDesktop : HWND) : HWND;[SYSTEM];
  1998. function WinGetKeyState(hwndDesktop : HWND;vkey : LONG) : LONG;[SYSTEM];
  1999. function WinGetPhysKeyState(hwndDesktop : HWND;sc : LONG) : LONG;[SYSTEM];
  2000. function WinEnablePhysInput(hwndDesktop : HWND;fEnable : BOOL) : BOOL;[SYSTEM];
  2001. function WinIsPhysInputEnabled(hwndDesktop : HWND) : BOOL;[SYSTEM];
  2002. function WinSetKeyboardStateTable(hwndDesktop : HWND;pKeyStateTable : PBYTE;fSet : BOOL) : BOOL;[SYSTEM];
  2003. function WinGetDlgMsg(hwndDlg : HWND;pqmsg : PQMSG) : BOOL;[SYSTEM];
  2004. function WinLoadDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : HWND;[SYSTEM];
  2005. function WinDlgBox(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;hmod : HMODULE;idDlg : ULONG;pCreateParams : PVOID) : ULONG;[SYSTEM];
  2006. function WinDismissDlg(hwndDlg : HWND;usResult : ULONG) : BOOL;[SYSTEM];
  2007. function WinQueryDlgItemShort(hwndDlg : HWND;idItem : ULONG;pResult : PSHORT;fSigned : BOOL) : BOOL;[SYSTEM];
  2008. function WinSetDlgItemShort(hwndDlg : HWND;idItem : ULONG;usValue : USHORT;fSigned : BOOL) : BOOL;[SYSTEM];
  2009. function WinSetDlgItemText(hwndDlg : HWND;idItem : ULONG;pszText : PSZ) : BOOL;[SYSTEM];
  2010. function WinQueryDlgItemText(hwndDlg : HWND;idItem : ULONG;cchBufferMax : LONG;pchBuffer : PSZ) : ULONG;[SYSTEM];
  2011. function WinQueryDlgItemTextLength(hwndDlg : HWND;idItem : ULONG) : LONG;[SYSTEM];
  2012. function WinDefDlgProc(hwndDlg : HWND;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
  2013. function WinAlarm(hwndDesktop : HWND;rgfType : ULONG) : BOOL;[SYSTEM];
  2014. function WinMessageBox(hwndParent : HWND;hwndOwner : HWND;pszText : PSZ;pszCaption : PSZ;idWindow : ULONG;flStyle : ULONG) : ULONG;[SYSTEM];
  2015. function WinProcessDlg(hwndDlg : HWND) : ULONG;[SYSTEM];
  2016. function WinSendDlgItemMsg(hwndDlg : HWND;idItem : ULONG;msg : ULONG;mp1 : MPARAM;mp2 : MPARAM) : MRESULT;[SYSTEM];
  2017. function WinMapDlgPoints(hwndDlg : HWND;prgwptl : PPOINTL;cwpt : ULONG;fCalcWindowCoords : BOOL) : BOOL;[SYSTEM];
  2018. function WinEnumDlgItem(hwndDlg : HWND;hwnd : HWND;code : ULONG) : HWND;[SYSTEM];
  2019. function WinSubstituteStrings(hwnd : HWND;pszSrc : PSZ;cchDstMax : LONG;pszDst : PSZ) : LONG;[SYSTEM];
  2020. function WinCreateDlg(hwndParent : HWND;hwndOwner : HWND;pfnDlgProc : PFNWP;pdlgt : PDLGTEMPLATE;pCreateParams : PVOID) : HWND;[SYSTEM];
  2021. function WinLoadMenu(hwndFrame : HWND;hmod : HMODULE;idMenu : ULONG) : HWND;[SYSTEM];
  2022. function WinCreateMenu(hwndParent : HWND;lpmt : PVOID) : HWND;[SYSTEM];
  2023. function WinPopupMenu(hwndParent : HWND;hwndOwner : HWND;hwndMenu : HWND;x : LONG;y : LONG;idItem : LONG;fs : ULONG) : BOOL;[SYSTEM];
  2024. function WinCreateStdWindow(hwndParent : HWND;flStyle : ULONG;pflCreateFlags : PULONG;pszClientClass : PSZ;pszTitle : PSZ;styleClient : ULONG;hmod : HMODULE;idResources : ULONG;phwndClient : PHWND) : HWND;[SYSTEM];
  2025. function WinFlashWindow(hwndFrame : HWND;fFlash : BOOL) : BOOL;[SYSTEM];
  2026. function WinCreateFrameControls(hwndFrame : HWND;pfcdata : PFRAMECDATA;pszTitle : PSZ) : BOOL;[SYSTEM];
  2027. function WinCalcFrameRect(hwndFrame : HWND;prcl : PRECTL;fClient : BOOL) : BOOL;[SYSTEM];
  2028. function WinGetMinPosition(hwnd : HWND;pswp : PSWP;pptl : PPOINTL) : BOOL;[SYSTEM];
  2029. function WinGetMaxPosition(hwnd : HWND;pswp : PSWP) : BOOL;[SYSTEM];
  2030. function WinSaveWindowPos(hsvwp : HSAVEWP;pswp : PSWP;cswp : ULONG) : BOOL;[SYSTEM];
  2031. function WinCopyRect(hab : HAB;prclDst : PRECTL;prclSrc : PRECTL) : BOOL;[SYSTEM];
  2032. function WinSetRect(hab : HAB;prcl : PRECTL;xLeft : LONG;yBottom : LONG;xRight : LONG;yTop : LONG) : BOOL;[SYSTEM];
  2033. function WinIsRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;[SYSTEM];
  2034. function WinEqualRect(hab : HAB;prcl1 : PRECTL;prcl2 : PRECTL) : BOOL;[SYSTEM];
  2035. function WinSetRectEmpty(hab : HAB;prcl : PRECTL) : BOOL;[SYSTEM];
  2036. function WinOffsetRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;[SYSTEM];
  2037. function WinInflateRect(hab : HAB;prcl : PRECTL;cx : LONG;cy : LONG) : BOOL;[SYSTEM];
  2038. function WinPtInRect(hab : HAB;prcl : PRECTL;pptl : PPOINTL) : BOOL;[SYSTEM];
  2039. function WinIntersectRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
  2040. function WinUnionRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
  2041. function WinSubtractRect(hab : HAB;prclDst : PRECTL;prclSrc1 : PRECTL;prclSrc2 : PRECTL) : BOOL;[SYSTEM];
  2042. function WinMakeRect(hab : HAB;pwrc : PRECTL) : BOOL;[SYSTEM];
  2043. function WinMakePoints(hab : HAB;pwpt : PPOINTL;cwpt : ULONG) : BOOL;[SYSTEM];
  2044. function WinQuerySysValue(hwndDesktop : HWND;iSysValue : LONG) : LONG;[SYSTEM];
  2045. function WinSetSysValue(hwndDesktop : HWND;iSysValue : LONG;lValue : LONG) : BOOL;[SYSTEM];
  2046. function WinSetPresParam(hwnd : HWND;id : ULONG;cbParam : ULONG;pbParam : PVOID) : BOOL;[SYSTEM];
  2047. function WinQueryPresParam(hwnd : HWND;id1 : ULONG;id2 : ULONG;pulId : PULONG;cbBuf : ULONG;pbBuf : PVOID;fs : ULONG) : ULONG;[SYSTEM];
  2048. function WinRemovePresParam(hwnd : HWND;id : ULONG) : BOOL;[SYSTEM];
  2049. function WinQuerySysColor(hwndDesktop : HWND;clr : LONG;lReserved : LONG) : LONG;[SYSTEM];
  2050. function WinSetSysColors(hwndDesktop : HWND;flOptions : ULONG;flFormat : ULONG;clrFirst : LONG;cclr : ULONG;pclr : PLONG) : BOOL;[SYSTEM];
  2051. function WinStartTimer(hab : HAB;hwnd : HWND;idTimer : ULONG;dtTimeout : ULONG) : ULONG;[SYSTEM];
  2052. function WinStopTimer(hab : HAB;hwnd : HWND;idTimer : ULONG) : BOOL;[SYSTEM];
  2053. function WinGetCurrentTime(hab : HAB) : ULONG;[SYSTEM];
  2054. function WinLoadAccelTable(hab : HAB;hmod : HMODULE;idAccelTable : ULONG) : HACCEL;[SYSTEM];
  2055. function WinCopyAccelTable(haccel : HACCEL;pAccelTable : PACCELTABLE;cbCopyMax : ULONG) : ULONG;[SYSTEM];
  2056. function WinCreateAccelTable(hab : HAB;pAccelTable : PACCELTABLE) : HACCEL;[SYSTEM];
  2057. function WinDestroyAccelTable(haccel : HACCEL) : BOOL;[SYSTEM];
  2058. function WinTranslateAccel(hab : HAB;hwnd : HWND;haccel : HACCEL;pqmsg : PQMSG) : BOOL;[SYSTEM];
  2059. function WinSetAccelTable(hab : HAB;haccel : HACCEL;hwndFrame : HWND) : BOOL;[SYSTEM];
  2060. function WinQueryAccelTable(hab : HAB;hwndFrame : HWND) : HACCEL;[SYSTEM];
  2061. function WinTrackRect(hwnd : HWND;hps : HPS;pti : PTRACKINFO) : BOOL;[SYSTEM];
  2062. function WinShowTrackRect(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
  2063. function WinSetClipbrdOwner(hab : HAB;hwnd : HWND) : BOOL;[SYSTEM];
  2064. function WinSetClipbrdData(hab : HAB;ulData : ULONG;fmt : ULONG;rgfFmtInfo : ULONG) : BOOL;[SYSTEM];
  2065. function WinQueryClipbrdData(hab : HAB;fmt : ULONG) : ULONG;[SYSTEM];
  2066. function WinQueryClipbrdFmtInfo(hab : HAB;fmt : ULONG;prgfFmtInfo : PULONG) : BOOL;[SYSTEM];
  2067. function WinSetClipbrdViewer(hab : HAB;hwndNewClipViewer : HWND) : BOOL;[SYSTEM];
  2068. function WinEnumClipbrdFmts(hab : HAB;fmt : ULONG) : ULONG;[SYSTEM];
  2069. function WinEmptyClipbrd(hab : HAB) : BOOL;[SYSTEM];
  2070. function WinOpenClipbrd(hab : HAB) : BOOL;[SYSTEM];
  2071. function WinCloseClipbrd(hab : HAB) : BOOL;[SYSTEM];
  2072. function WinQueryClipbrdOwner(hab : HAB) : HWND;[SYSTEM];
  2073. function WinQueryClipbrdViewer(hab : HAB) : HWND;[SYSTEM];
  2074. function WinDestroyCursor(hwnd : HWND) : BOOL;[SYSTEM];
  2075. function WinShowCursor(hwnd : HWND;fShow : BOOL) : BOOL;[SYSTEM];
  2076. function WinCreateCursor(hwnd : HWND;x : LONG;y : LONG;cx : LONG;cy : LONG;fs : ULONG;prclClip : PRECTL) : BOOL;[SYSTEM];
  2077. function WinQueryCursorInfo(hwndDesktop : HWND;pCursorInfo : PCURSORINFO) : BOOL;[SYSTEM];
  2078. function WinSetPointer(hwndDesktop : HWND;hptrNew : HPOINTER) : BOOL;[SYSTEM];
  2079. function WinSetPointerOwner(hptr : HPOINTER;pid : PID;fDestroy : BOOL) : BOOL;[SYSTEM];
  2080. function WinShowPointer(hwndDesktop : HWND;fShow : BOOL) : BOOL;[SYSTEM];
  2081. function WinQuerySysPointer(hwndDesktop : HWND;iptr : LONG;fLoad : BOOL) : HPOINTER;[SYSTEM];
  2082. function WinLoadPointer(hwndDesktop : HWND;hmod : HMODULE;idres : ULONG) : HPOINTER;[SYSTEM];
  2083. function WinCreatePointer(hwndDesktop : HWND;hbmPointer : HBITMAP;fPointer : BOOL;xHotspot : LONG;yHotspot : LONG) : HPOINTER;[SYSTEM];
  2084. function WinSetPointerPos(hwndDesktop : HWND;x : LONG;y : LONG) : BOOL;[SYSTEM];
  2085. function WinDestroyPointer(hptr : HPOINTER) : BOOL;[SYSTEM];
  2086. function WinQueryPointer(hwndDesktop : HWND) : HPOINTER;[SYSTEM];
  2087. function WinQueryPointerPos(hwndDesktop : HWND;pptl : PPOINTL) : BOOL;[SYSTEM];
  2088. function WinCreatePointerIndirect(hwndDesktop : HWND;pptri : PPOINTERINFO) : HPOINTER;[SYSTEM];
  2089. function WinQueryPointerInfo(hptr : HPOINTER;pPointerInfo : PPOINTERINFO) : BOOL;[SYSTEM];
  2090. function WinDrawPointer(hps : HPS;x : LONG;y : LONG;hptr : HPOINTER;fs : ULONG) : BOOL;[SYSTEM];
  2091. function WinGetSysBitmap(hwndDesktop : HWND;ibm : ULONG) : HBITMAP;[SYSTEM];
  2092. function WinSetHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;[SYSTEM];
  2093. function WinReleaseHook(hab : HAB;hmq : HMQ;iHook : LONG;pfnHook : PFN;hmod : HMODULE) : BOOL;[SYSTEM];
  2094. function WinCallMsgFilter(hab : HAB;pqmsg : PQMSG;msgf : ULONG) : BOOL;[SYSTEM];
  2095. function WinSetClassThunkProc(pszClassname : PSZ;pfnThunkProc : PFN) : BOOL;[SYSTEM];
  2096. function WinQueryClassThunkProc(pszClassname : PSZ) : PFN;[SYSTEM];
  2097. function WinSetWindowThunkProc(hwnd : HWND;pfnThunkProc : PFN) : BOOL;[SYSTEM];
  2098. function WinQueryWindowThunkProc(hwnd : HWND) : PFN;[SYSTEM];
  2099. function WinQueryWindowModel(hwnd : HWND) : LONG;[SYSTEM];
  2100. function WinQueryCp(hmq : HMQ) : ULONG;[SYSTEM];
  2101. function WinSetCp(hmq : HMQ;idCodePage : ULONG) : BOOL;[SYSTEM];
  2102. function WinQueryCpList(hab : HAB;ccpMax : ULONG;prgcp : PULONG) : ULONG;[SYSTEM];
  2103. function WinCpTranslateString(hab : HAB;cpSrc : ULONG;pszSrc : PSZ;cpDst : ULONG;cchDestMax : ULONG;pchDest : PSZ) : BOOL;[SYSTEM];
  2104. function WinCpTranslateChar(hab : HAB;cpSrc : ULONG;chSrc : UCHAR;cpDst : ULONG) : UCHAR;[SYSTEM];
  2105. function WinUpper(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : ULONG;[SYSTEM];
  2106. function WinUpperChar(hab : HAB;idcp : ULONG;idcc : ULONG;c : ULONG) : ULONG;[SYSTEM];
  2107. function WinNextChar(hab : HAB;idcp : ULONG;idcc : ULONG;psz : PSZ) : PSZ;[SYSTEM];
  2108. function WinPrevChar(hab : HAB;idcp : ULONG;idcc : ULONG;pszStart : PSZ;psz : PSZ) : PSZ;[SYSTEM];
  2109. function WinCompareStrings(hab : HAB;idcp : ULONG;idcc : ULONG;psz1 : PSZ;psz2 : PSZ;reserved : ULONG) : ULONG;[SYSTEM];
  2110. function WinCreateAtomTable(cbInitial : ULONG;cBuckets : ULONG) : HATOMTBL;[SYSTEM];
  2111. function WinDestroyAtomTable(hAtomTbl : HATOMTBL) : HATOMTBL;[SYSTEM];
  2112. function WinAddAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;[SYSTEM];
  2113. function WinFindAtom(hAtomTbl : HATOMTBL;pszAtomName : PSZ) : ATOM;[SYSTEM];
  2114. function WinDeleteAtom(hAtomTbl : HATOMTBL;atom : ATOM) : ATOM;[SYSTEM];
  2115. function WinQueryAtomUsage(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;[SYSTEM];
  2116. function WinQueryAtomLength(hAtomTbl : HATOMTBL;atom : ATOM) : ULONG;[SYSTEM];
  2117. function WinQueryAtomName(hAtomTbl : HATOMTBL;atom : ATOM;pchBuffer : PSZ;cchBufferMax : ULONG) : ULONG;[SYSTEM];
  2118. function WinGetLastError(hab : HAB) : ERRORID;[SYSTEM];
  2119. function WinGetErrorInfo(hab : HAB) : PERRINFO;[SYSTEM];
  2120. function WinFreeErrorInfo(perrinfo : PERRINFO) : BOOL;[SYSTEM];
  2121. function WinDdeInitiate(hwndClient : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : BOOL;[SYSTEM];
  2122. function WinDdeRespond(hwndClient : HWND;hwndServer : HWND;pszAppName : PSZ;pszTopicName : PSZ;pcctxt : PCONVCONTEXT) : MRESULT;[SYSTEM];
  2123. function WinDdePostMsg(hwndTo : HWND;hwndFrom : HWND;wm : ULONG;pddest : PDDESTRUCT;flOptions : ULONG) : BOOL;[SYSTEM];
  2124. function WinDeleteProcedure(hab : HAB;wndproc : PFNWP) : BOOL;[SYSTEM];
  2125. function WinDeleteLibrary(hab : HAB;libhandle : HLIB) : BOOL;[SYSTEM];
  2126. function WinLoadProcedure(hab : HAB;libhandle : HLIB;procname : PSZ) : PFNWP;[SYSTEM];
  2127. function WinLoadLibrary(hab : HAB;libname : PSZ) : HLIB;[SYSTEM];
  2128. function WinSetDesktopBkgnd(hwndDesktop : HWND;pdskNew : PDESKTOP) : HBITMAP;[SYSTEM];
  2129. function WinQueryDesktopBkgnd(hwndDesktop : HWND;pdsk : PDESKTOP) : BOOL;[SYSTEM];
  2130. function WinRealizePalette(hwnd : HWND;hps : HPS;pcclr : PULONG) : LONG;[SYSTEM];
  2131. function HWNDFROMMP(mp : MPARAM) : HWND;
  2132. begin
  2133. HWNDFROMMP:=HWND(mp);
  2134. end;
  2135. function SHORT1FROMMP(mp : MPARAM) : USHORT;
  2136. begin
  2137. SHORT1FROMMP:=lo(ULONG(mp));
  2138. end;
  2139. function SHORT2FROMMP(mp : MPARAM) : USHORT;
  2140. begin
  2141. SHORT2FROMMP:=hi(ULONG(mp));
  2142. end;
  2143. end.