FAPI.DEF 84 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138
  1. (*# call(reg_saved => (si, di, ds, st1, st2),
  2. reg_param => (),
  3. near_call => off,
  4. ds_eq_ss => off) *)
  5. (*# name(prefix => none) *)
  6. (*# module(implementation=>off, init_code => off) *)
  7. (*# data(near_ptr => off) *)
  8. DEFINITION MODULE FAPI;
  9. (*
  10. *
  11. * $Header: D:/logfiles/masters/fapi.jpv 1.0 17 Mar 1991 18:23:16 coleb $
  12. *
  13. *)
  14. (*/NOMODINIT*)
  15. (**************************************************************************\
  16. *
  17. * OS/2 Common Definitions
  18. *
  19. \***************************************************************************)
  20. IMPORT SYSTEM;
  21. TYPE
  22. SHANDLE = CARDINAL;
  23. TYPE
  24. LHANDLE = SYSTEM.ADDRESS;
  25. TYPE
  26. UCHAR = SYSTEM.BYTE;
  27. (*uch *)
  28. TYPE
  29. USHORT = CARDINAL;
  30. (*us *)
  31. TYPE
  32. ULONG = LONGINT;
  33. (*ul *)
  34. TYPE
  35. UINT = CARDINAL;
  36. (*ui *)
  37. TYPE
  38. BYTE = SYSTEM.BYTE;
  39. (*b *)
  40. (*define NULL pointer value *)
  41. (*Echo the format of the ifdefs that stdio.h uses *)
  42. CONST NULL = SYSTEM.ADDRESS(VAL(LONGINT, 0));
  43. TYPE
  44. HFILE = SHANDLE;
  45. (*hf *)
  46. TYPE
  47. PHFILE = POINTER TO HFILE;
  48. TYPE
  49. PSZ = POINTER TO SYSTEM.BYTE;
  50. TYPE
  51. NPSZ = POINTER TO SYSTEM.BYTE;
  52. TYPE
  53. PCH = SYSTEM.ADDRESS;
  54. TYPE
  55. NPCH = POINTER TO SYSTEM.BYTE;
  56. TYPE
  57. PFN = PROCEDURE();
  58. TYPE
  59. NPFN = PROCEDURE();
  60. TYPE
  61. PPFN = POINTER TO PFN;
  62. TYPE
  63. PBYTE = POINTER TO BYTE;
  64. TYPE
  65. NPBYTE = POINTER TO BYTE;
  66. TYPE
  67. PCHAR = POINTER TO CHAR;
  68. TYPE
  69. PPCHAR = POINTER TO PCHAR;
  70. TYPE
  71. PSHORT = POINTER TO INTEGER;
  72. TYPE
  73. PLONG = POINTER TO LONGINT;
  74. TYPE
  75. PINT = POINTER TO INTEGER;
  76. TYPE
  77. PUCHAR = POINTER TO UCHAR;
  78. TYPE
  79. PUSHORT = POINTER TO USHORT;
  80. TYPE
  81. PULONG = POINTER TO ULONG;
  82. TYPE
  83. PUINT = POINTER TO UINT;
  84. TYPE
  85. PVOID = SYSTEM.ADDRESS;
  86. TYPE
  87. BOOL = BOOLEAN;
  88. (*f *)
  89. TYPE
  90. PBOOL = POINTER TO BOOL;
  91. TYPE
  92. SEL = CARDINAL;
  93. (*sel *)
  94. TYPE
  95. PSEL = POINTER TO SEL;
  96. (** Common Error definitions ****)
  97. TYPE
  98. ERRORID = ULONG;
  99. (*errid *)
  100. TYPE
  101. PERRORID = POINTER TO ERRORID;
  102. (*Severity codes *)
  103. CONST SEVERITY_NOERROR = 0000H;
  104. CONST SEVERITY_WARNING = 0004H;
  105. CONST SEVERITY_ERROR = 0008H;
  106. CONST SEVERITY_SEVERE = 000CH;
  107. CONST SEVERITY_UNRECOVERABLE = 0010H;
  108. (*Base component error values *)
  109. CONST WINERR_BASE = 1000H;
  110. (*Window Manager *)
  111. CONST GPIERR_BASE = 2000H;
  112. (*Graphics Presentation Interface *)
  113. CONST DEVERR_BASE = 3000H;
  114. (*Device Manager *)
  115. CONST SPLERR_BASE = 4000H;
  116. (*Spooler *)
  117. (** Common types used across components *)
  118. (** Common DOS types *)
  119. TYPE
  120. HMODULE = USHORT;
  121. (*hmod *)
  122. TYPE
  123. PHMODULE = POINTER TO HMODULE;
  124. TYPE
  125. PID = USHORT;
  126. (*pid *)
  127. TYPE
  128. PPID = POINTER TO PID;
  129. TYPE
  130. TID = USHORT;
  131. (*tid *)
  132. TYPE
  133. PTID = POINTER TO TID;
  134. TYPE
  135. HSEM = SYSTEM.ADDRESS;
  136. (*hsem *)
  137. TYPE
  138. PHSEM = POINTER TO HSEM;
  139. (** Common SUP types *)
  140. TYPE
  141. HAB = LHANDLE;
  142. (*hab *)
  143. TYPE
  144. PHAB = POINTER TO HAB;
  145. (** Common GPI/DEV types *)
  146. TYPE
  147. HPS = LHANDLE;
  148. (*hps *)
  149. TYPE
  150. PHPS = POINTER TO HPS;
  151. TYPE
  152. HDC = LHANDLE;
  153. (*hdc *)
  154. TYPE
  155. PHDC = POINTER TO HDC;
  156. TYPE
  157. HRGN = LHANDLE;
  158. (*hrgn *)
  159. TYPE
  160. PHRGN = POINTER TO HRGN;
  161. TYPE
  162. HBITMAP = LHANDLE;
  163. (*hbm *)
  164. TYPE
  165. PHBITMAP = POINTER TO HBITMAP;
  166. TYPE
  167. HMF = LHANDLE;
  168. (*hmf *)
  169. TYPE
  170. PHMF = POINTER TO HMF;
  171. TYPE
  172. COLOR = LONGINT;
  173. (*clr *)
  174. TYPE
  175. PCOLOR = POINTER TO COLOR;
  176. TYPE _POINTL = RECORD(*ptl *)
  177. x: LONGINT;
  178. y: LONGINT;
  179. END;
  180. TYPE POINTL = _POINTL;
  181. TYPE
  182. PPOINTL = POINTER TO POINTL;
  183. TYPE
  184. NPPOINTL = POINTER TO POINTL;
  185. TYPE _POINTS = RECORD(*pts *)
  186. x: INTEGER;
  187. y: INTEGER;
  188. END;
  189. TYPE POINTS = _POINTS;
  190. TYPE
  191. PPOINTS = POINTER TO POINTS;
  192. TYPE _RECTL = RECORD(*rcl *)
  193. xLeft: LONGINT;
  194. yBottom: LONGINT;
  195. xRight: LONGINT;
  196. yTop: LONGINT;
  197. END;
  198. TYPE RECTL = _RECTL;
  199. TYPE
  200. PRECTL = POINTER TO RECTL;
  201. TYPE
  202. NPRECTL = POINTER TO RECTL;
  203. TYPE
  204. STR8 = ARRAY [0 .. ((8) - 1)] OF CHAR;
  205. (*str8 *)
  206. TYPE
  207. PSTR8 = POINTER TO STR8;
  208. (** common DEV/SPL types *)
  209. (*structure for Device Driver data *)
  210. TYPE _DRIVDATA = RECORD(*driv *)
  211. cb: LONGINT;
  212. lVersion: LONGINT;
  213. szDeviceName: ARRAY [0 .. ((32) - 1)] OF CHAR;
  214. abGeneralData: ARRAY [0 .. ((1) - 1)] OF CHAR;
  215. END;
  216. TYPE DRIVDATA = _DRIVDATA;
  217. TYPE
  218. PDRIVDATA = POINTER TO DRIVDATA;
  219. (*array indices for array parameter for DevOpenDC, SplQmOpen or SplQpOpen *)
  220. CONST ADDRESS = 0;
  221. CONST DRIVER_NAME = 1;
  222. CONST DRIVER_DATA = 2;
  223. CONST DATA_TYPE = 3;
  224. CONST COMMENT = 4;
  225. CONST PROC_NAME = 5;
  226. CONST PROC_PARAMS = 6;
  227. CONST SPL_PARAMS = 7;
  228. CONST NETWORK_PARAMS = 8;
  229. (*structure definition as an alternative of the array parameter *)
  230. TYPE _DEVOPENSTRUC = RECORD(*dop *)
  231. pszLogAddress: PSZ;
  232. pszDriverName: PSZ;
  233. pdriv: PDRIVDATA;
  234. pszDataType: PSZ;
  235. pszComment: PSZ;
  236. pszQueueProcName: PSZ;
  237. pszQueueProcParams: PSZ;
  238. pszSpoolerParams: PSZ;
  239. pszNetworkParams: PSZ;
  240. END;
  241. TYPE DEVOPENSTRUC = _DEVOPENSTRUC;
  242. TYPE
  243. PDEVOPENSTRUC = POINTER TO DEVOPENSTRUC;
  244. (** common AVIO/GPI types *)
  245. (*values of fsSelection field of FATTRS structure *)
  246. CONST FATTR_SEL_ITALIC = 0001H;
  247. CONST FATTR_SEL_UNDERSCORE = 0002H;
  248. CONST FATTR_SEL_OUTLINE = 0008H;
  249. (*Hollow Outline Font *)
  250. CONST FATTR_SEL_STRIKEOUT = 0010H;
  251. CONST FATTR_SEL_BOLD = 0020H;
  252. (*values of fsType field of FATTRS structure *)
  253. CONST FATTR_TYPE_KERNING = 0004H;
  254. CONST FATTR_TYPE_MBCS = 0008H;
  255. CONST FATTR_TYPE_DBCS = 0010H;
  256. CONST FATTR_TYPE_ANTIALIASED = 0020H;
  257. (*values of fsFontUse field of FATTRS structure *)
  258. CONST FATTR_FONTUSE_NOMIX = 0002H;
  259. CONST FATTR_FONTUSE_OUTLINE = 0004H;
  260. CONST FATTR_FONTUSE_TRANSFORMABLE = 0008H;
  261. (*size for fields in the font structures *)
  262. CONST FACESIZE = 32;
  263. (*font struct for Vio/GpiCreateLogFont *)
  264. TYPE _FATTRS = RECORD(*fat *)
  265. usRecordLength: USHORT;
  266. fsSelection: USHORT;
  267. lMatch: LONGINT;
  268. szFacename: ARRAY [0 .. ((FACESIZE) - 1)] OF CHAR;
  269. idRegistry: USHORT;
  270. usCodePage: USHORT;
  271. lMaxBaselineExt: LONGINT;
  272. lAveCharWidth: LONGINT;
  273. fsType: USHORT;
  274. fsFontUse: USHORT;
  275. END;
  276. TYPE FATTRS = _FATTRS;
  277. TYPE
  278. PFATTRS = POINTER TO FATTRS;
  279. (*values of fsType field of FONTMETRICS structure *)
  280. CONST FM_TYPE_FIXED = 0001H;
  281. CONST FM_TYPE_LICENSED = 0002H;
  282. CONST FM_TYPE_KERNING = 0004H;
  283. CONST FM_TYPE_DBCS = 0010H;
  284. CONST FM_TYPE_MBCS = 0018H;
  285. CONST FM_TYPE_64K = 8000H;
  286. (*values of fsDefn field of FONTMETRICS structure *)
  287. CONST FM_DEFN_OUTLINE = 0001H;
  288. CONST FM_DEFN_GENERIC = 8000H;
  289. (*values of fsSelection field of FONTMETRICS structure *)
  290. CONST FM_SEL_ITALIC = 0001H;
  291. CONST FM_SEL_UNDERSCORE = 0002H;
  292. CONST FM_SEL_NEGATIVE = 0004H;
  293. CONST FM_SEL_OUTLINE = 0008H;
  294. (*Hollow Outline Font *)
  295. CONST FM_SEL_STRIKEOUT = 0010H;
  296. CONST FM_SEL_BOLD = 0020H;
  297. (*values of fsCapabilities field of FONTMETRICS structure *)
  298. CONST FM_CAP_NOMIX = 0001H;
  299. (*font metrics returned by GpiQueryFonts and others *)
  300. TYPE _FONTMETRICS = RECORD(*fm *)
  301. szFamilyname: ARRAY [0 .. ((FACESIZE) - 1)] OF CHAR;
  302. szFacename: ARRAY [0 .. ((FACESIZE) - 1)] OF CHAR;
  303. idRegistry: USHORT;
  304. usCodePage: USHORT;
  305. lEmHeight: LONGINT;
  306. lXHeight: LONGINT;
  307. lMaxAscender: LONGINT;
  308. lMaxDescender: LONGINT;
  309. lLowerCaseAscent: LONGINT;
  310. lLowerCaseDescent: LONGINT;
  311. lInternalLeading: LONGINT;
  312. lExternalLeading: LONGINT;
  313. lAveCharWidth: LONGINT;
  314. lMaxCharInc: LONGINT;
  315. lEmInc: LONGINT;
  316. lMaxBaselineExt: LONGINT;
  317. sCharSlope: INTEGER;
  318. sInlineDir: INTEGER;
  319. sCharRot: INTEGER;
  320. usWeightClass: USHORT;
  321. usWidthClass: USHORT;
  322. sXDeviceRes: INTEGER;
  323. sYDeviceRes: INTEGER;
  324. sFirstChar: INTEGER;
  325. sLastChar: INTEGER;
  326. sDefaultChar: INTEGER;
  327. sBreakChar: INTEGER;
  328. sNominalPointSize: INTEGER;
  329. sMinimumPointSize: INTEGER;
  330. sMaximumPointSize: INTEGER;
  331. fsType: USHORT;
  332. fsDefn: USHORT;
  333. fsSelection: USHORT;
  334. fsCapabilities: USHORT;
  335. lSubscriptXSize: LONGINT;
  336. lSubscriptYSize: LONGINT;
  337. lSubscriptXOffset: LONGINT;
  338. lSubscriptYOffset: LONGINT;
  339. lSuperscriptXSize: LONGINT;
  340. lSuperscriptYSize: LONGINT;
  341. lSuperscriptXOffset: LONGINT;
  342. lSuperscriptYOffset: LONGINT;
  343. lUnderscoreSize: LONGINT;
  344. lUnderscorePosition: LONGINT;
  345. lStrikeoutSize: LONGINT;
  346. lStrikeoutPosition: LONGINT;
  347. sKerningPairs: INTEGER;
  348. sFamilyClass: INTEGER;
  349. lMatch: LONGINT;
  350. END;
  351. TYPE FONTMETRICS = _FONTMETRICS;
  352. TYPE
  353. PFONTMETRICS = POINTER TO FONTMETRICS;
  354. (** Common WIN types *)
  355. TYPE
  356. HWND = LHANDLE;
  357. (*hwnd *)
  358. TYPE
  359. PHWND = POINTER TO HWND;
  360. TYPE _WRECT = RECORD(*wrc *)
  361. xLeft: INTEGER;
  362. dummy1: INTEGER;
  363. yBottom: INTEGER;
  364. dummy2: INTEGER;
  365. xRight: INTEGER;
  366. dummy3: INTEGER;
  367. yTop: INTEGER;
  368. dummy4: INTEGER;
  369. END;
  370. TYPE WRECT = _WRECT;
  371. TYPE
  372. PWRECT = POINTER TO WRECT;
  373. TYPE
  374. NPWRECT = POINTER TO WRECT;
  375. TYPE _WPOINT = RECORD(*wpt *)
  376. x: INTEGER;
  377. dummy1: INTEGER;
  378. y: INTEGER;
  379. dummy2: INTEGER;
  380. END;
  381. TYPE WPOINT = _WPOINT;
  382. TYPE
  383. PWPOINT = POINTER TO WPOINT;
  384. TYPE
  385. NPWPOINT = POINTER TO WPOINT;
  386. (** General services *)
  387. PROCEDURE DOSBEEP (
  388. usFrequency: USHORT;
  389. usDuration: USHORT): USHORT;
  390. (** Process and Thread support *)
  391. PROCEDURE DOSEXIT (
  392. fTerminate: USHORT;
  393. usExitCode: USHORT);
  394. (*DosExit fTerminate *)
  395. CONST EXIT_THREAD = 0;
  396. CONST EXIT_PROCESS = 1;
  397. TYPE _PIDINFO = RECORD(*pidi *)
  398. pid: PID;
  399. tid: TID;
  400. pidParent: PID;
  401. END;
  402. TYPE PIDINFO = _PIDINFO;
  403. TYPE
  404. PPIDINFO = POINTER TO PIDINFO;
  405. PROCEDURE DOSSLEEP (
  406. ulTime: ULONG): USHORT;
  407. (*codeTerminate values (also passed to ExitList routines) *)
  408. CONST TC_EXIT = 0;
  409. CONST TC_HARDERROR = 1;
  410. CONST TC_TRAP = 2;
  411. CONST TC_KILLPROCESS = 3;
  412. TYPE _RESULTCODES = RECORD
  413. codeTerminate: USHORT;
  414. codeResult: USHORT;
  415. END;
  416. TYPE RESULTCODES = _RESULTCODES;
  417. TYPE PRESULTCODES = POINTER TO RESULTCODES;
  418. PROCEDURE DOSEXECPGM (
  419. pchFailName: PCHAR;
  420. cbFailName: INTEGER;
  421. fExecFlags: USHORT;
  422. pszArgs: PSZ;
  423. pszEnv: PSZ;
  424. prescResults: PRESULTCODES;
  425. pszPgmName: PSZ): USHORT;
  426. (*DosExecPgm fExecFlags *)
  427. CONST EXEC_SYNC = 0;
  428. CONST EXEC_ASYNC = 1;
  429. CONST EXEC_ASYNCRESULT = 2;
  430. CONST EXEC_TRACE = 3;
  431. CONST EXEC_BACKGROUND = 4;
  432. PROCEDURE DOSGETPID (
  433. ppidInfo: PPIDINFO): USHORT;
  434. (** InfoSeg support *)
  435. (*Global Information Segment *)
  436. TYPE _GINFOSEG = RECORD(*gis *)
  437. time: ULONG;
  438. msecs: ULONG;
  439. hour: UCHAR;
  440. minutes: UCHAR;
  441. seconds: UCHAR;
  442. hundredths: UCHAR;
  443. timezone: USHORT;
  444. cusecTimerInterval: USHORT;
  445. day: UCHAR;
  446. month: UCHAR;
  447. year: USHORT;
  448. weekday: UCHAR;
  449. uchMajorVersion: UCHAR;
  450. uchMinorVersion: UCHAR;
  451. chRevisionLetter: UCHAR;
  452. sgCurrent: UCHAR;
  453. sgMax: UCHAR;
  454. cHugeShift: UCHAR;
  455. fProtectModeOnly: UCHAR;
  456. pidForeground: USHORT;
  457. fDynamicSched: UCHAR;
  458. csecMaxWait: UCHAR;
  459. cmsecMinSlice: USHORT;
  460. cmsecMaxSlice: USHORT;
  461. bootdrive: USHORT;
  462. amecRAS: ARRAY [0 .. ((32) - 1)] OF UCHAR;
  463. csgWindowableVioMax: UCHAR;
  464. csgPMMax: UCHAR;
  465. END;
  466. TYPE GINFOSEG = _GINFOSEG;
  467. TYPE
  468. PGINFOSEG = POINTER TO GINFOSEG;
  469. (*Local Information Segment *)
  470. TYPE _LINFOSEG = RECORD(*lis *)
  471. pidCurrent: PID;
  472. pidParent: PID;
  473. prtyCurrent: USHORT;
  474. tidCurrent: TID;
  475. sgCurrent: USHORT;
  476. rfProcStatus: UCHAR;
  477. dummy1: UCHAR;
  478. fForeground: BOOL;
  479. typeProcess: UCHAR;
  480. dummy2: UCHAR;
  481. selEnvironment: SEL;
  482. offCmdLine: USHORT;
  483. cbDataSegment: USHORT;
  484. cbStack: USHORT;
  485. cbHeap: USHORT;
  486. hmod: HMODULE;
  487. selDS: SEL;
  488. END;
  489. TYPE LINFOSEG = _LINFOSEG;
  490. TYPE
  491. PLINFOSEG = POINTER TO LINFOSEG;
  492. (*Process Type codes (local information segment typeProcess field) *)
  493. CONST PT_FULLSCREEN = 0;
  494. (*Full screen application *)
  495. CONST PT_REALMODE = 1;
  496. (*Real mode process *)
  497. CONST PT_WINDOWABLEVIO = 2;
  498. (*VIO windowable application *)
  499. CONST PT_PM = 3;
  500. (*Presentation Manager application *)
  501. CONST PT_DETACHED = 4;
  502. (*Detached application *)
  503. (*Process Status Flag definitions (local info seg rfProcStatus field) *)
  504. CONST PS_EXITLIST = 1;
  505. (*Thread is in exitlist routine *)
  506. (*
  507. * CCHMAXPATH is the maximum fully qualified path name length including
  508. * the drive letter, colon, backslashes and terminating NULL.
  509. *)
  510. CONST CCHMAXPATH = 260;
  511. (*
  512. * CCHMAXPATHCOMP is the maximum individual path component name length
  513. * including a terminating NULL.
  514. *)
  515. CONST CCHMAXPATHCOMP = 256;
  516. (** File manager *)
  517. (*DosChgFilePtr() file position codes *)
  518. CONST FILE_BEGIN = 0000H;
  519. (*relative to beginning of file *)
  520. CONST FILE_CURRENT = 0001H;
  521. (*relative to current fptr position*)
  522. CONST FILE_END = 0002H;
  523. (*relative to end of file *)
  524. (*DosFindFirst/Next Directory handle types *)
  525. CONST HDIR_SYSTEM = 0001H;
  526. (*Use system handle (1) *)
  527. CONST HDIR_CREATE = 0FFFFH;
  528. (*Allocate a new, unused handle *)
  529. (*Append to existing file, don't replace*)
  530. (*DosOpen/DosQFHandState/DosQueryFileInfo et al file attributes; also*)
  531. (*known as Dos File Mode bits... *)
  532. CONST FILE_NORMAL = 0000H;
  533. CONST FILE_READONLY = 0001H;
  534. CONST FILE_HIDDEN = 0002H;
  535. CONST FILE_SYSTEM = 0004H;
  536. CONST FILE_DIRECTORY = 0010H;
  537. CONST FILE_ARCHIVED = 0020H;
  538. (*DosOpen() actions *)
  539. CONST FILE_EXISTED = 0001H;
  540. CONST FILE_CREATED = 0002H;
  541. CONST FILE_TRUNCATED = 0003H;
  542. (*DosOpen() open flags *)
  543. CONST FILE_OPEN = 0001H;
  544. CONST FILE_TRUNCATE = 0002H;
  545. CONST FILE_CREATE = 0010H;
  546. (*applies if file already exists *)
  547. CONST OPEN_ACTION_FAIL_IF_EXISTS = 0000H;
  548. (*---- ---- ---- 0000 *)
  549. CONST OPEN_ACTION_OPEN_IF_EXISTS = 0001H;
  550. (*---- ---- ---- 0001 *)
  551. CONST OPEN_ACTION_REPLACE_IF_EXISTS = 0002H;
  552. (*---- ---- ---- 0010 *)
  553. (*applies if file does not exist *)
  554. CONST OPEN_ACTION_FAIL_IF_NEW = 0000H;
  555. (*---- ---- 0000 ---- *)
  556. CONST OPEN_ACTION_CREATE_IF_NEW = 0010H;
  557. (*---- ---- 0001 ---- *)
  558. (*DosOpen/DosSetFHandState flags *)
  559. CONST OPEN_ACCESS_READONLY = 0000H;
  560. (*---- ---- ---- -000 *)
  561. CONST OPEN_ACCESS_WRITEONLY = 0001H;
  562. (*---- ---- ---- -001 *)
  563. CONST OPEN_ACCESS_READWRITE = 0002H;
  564. (*---- ---- ---- -010 *)
  565. CONST OPEN_SHARE_DENYREADWRITE = 0010H;
  566. (*---- ---- -001 ---- *)
  567. CONST OPEN_SHARE_DENYWRITE = 0020H;
  568. (*---- ---- -010 ---- *)
  569. CONST OPEN_SHARE_DENYREAD = 0030H;
  570. (*---- ---- -011 ---- *)
  571. CONST OPEN_SHARE_DENYNONE = 0040H;
  572. (*---- ---- -100 ---- *)
  573. CONST OPEN_FLAGS_NOINHERIT = 0080H;
  574. (*---- ---- 1--- ---- *)
  575. CONST OPEN_FLAGS_NO_LOCALITY = 0000H;
  576. (*---- -000 ---- ---- *)
  577. CONST OPEN_FLAGS_SEQUENTIAL = 0100H;
  578. (*---- -001 ---- ---- *)
  579. CONST OPEN_FLAGS_RANDOM = 0200H;
  580. (*---- -010 ---- ---- *)
  581. CONST OPEN_FLAGS_RANDOMSEQUENTIAL = 0300H;
  582. (*---- -011 ---- ---- *)
  583. CONST OPEN_FLAGS_NO_CACHE = 1000H;
  584. (*---1 ---- ---- ---- *)
  585. CONST OPEN_FLAGS_FAIL_ON_ERROR = 2000H;
  586. (*--1- ---- ---- ---- *)
  587. CONST OPEN_FLAGS_WRITE_THROUGH = 4000H;
  588. (*-1-- ---- ---- ---- *)
  589. CONST OPEN_FLAGS_DASD = 8000H;
  590. (*1--- ---- ---- ---- *)
  591. CONST SEARCH_PATH = 0000H;
  592. CONST SEARCH_CUR_DIRECTORY = 0001H;
  593. CONST SEARCH_ENVIRONMENT = 0002H;
  594. CONST SEARCH_IGNORENETERRS = 0004H;
  595. (*
  596. * DosFileIO
  597. *)
  598. (*File IO command words *)
  599. CONST FIO_LOCK = 0;
  600. (*Lock Files *)
  601. CONST FIO_UNLOCK = 1;
  602. (*Unlock Files *)
  603. CONST FIO_SEEK = 2;
  604. (*Seek (set file ptr) *)
  605. CONST FIO_READ = 3;
  606. (*File Read *)
  607. CONST FIO_WRITE = 4;
  608. (*File Write *)
  609. (*Lock Sharing Modes *)
  610. CONST FIO_NOSHARE = 0;
  611. (*None *)
  612. CONST FIO_SHAREREAD = 1;
  613. (*Read-Only *)
  614. TYPE _FIOLOCKCMD = RECORD(*FLC FileLockCmd prefix *)
  615. usCmd: USHORT;(*Cmd = FIO_LOCK *)
  616. cLockCnt: USHORT;(*Lock records that follow *)
  617. cTimeOut: ULONG;(*in Msec *)
  618. END;
  619. TYPE FIOLOCKCMD = _FIOLOCKCMD;
  620. TYPE
  621. PFIOLOCKCMD = POINTER TO FIOLOCKCMD;
  622. TYPE _FIOLOCKREC = RECORD(*FLR FileLockRecord *)
  623. fShare: USHORT;(*FIO_NOSHARE or FIO_SHAREREAD *)
  624. cbStart: ULONG;(*Starting offset for lock region *)
  625. cbLength: ULONG;(*Length of lock region *)
  626. END;
  627. TYPE FIOLOCKREC = _FIOLOCKREC;
  628. TYPE
  629. PFIOLOCKREC = POINTER TO FIOLOCKREC;
  630. TYPE _FIOUNLOCKCMD = RECORD(*FUC FileUnlockCmd prefix *)
  631. usCmd: USHORT;(*Cmd = FIO_UNLOCK *)
  632. cUnlockCnt: USHORT;(*Unlock records that follow *)
  633. END;
  634. TYPE FIOUNLOCKCMD = _FIOUNLOCKCMD;
  635. TYPE
  636. PFIOUNLOCKCMD = POINTER TO FIOUNLOCKCMD;
  637. TYPE _FIOUNLOCKREC = RECORD(*FUR FileUnlockRecord *)
  638. cbStart: ULONG;(*Starting offset for unlock region *)
  639. cbLength: ULONG;(*Length of unlock region *)
  640. END;
  641. TYPE FIOUNLOCKREC = _FIOUNLOCKREC;
  642. TYPE
  643. PFIOUNLOCKREC = POINTER TO FIOUNLOCKREC;
  644. TYPE _FIOSEEKCMD = RECORD(*FSC Seek command structure *)
  645. usCmd: USHORT;(*Cmd = FIO_SEEK *)
  646. fsMethod: USHORT;(*One of&gml FPM_BEGINNING, FPM_CURRENT, *)
  647. (*or FPM_END *)
  648. cbDistance: ULONG;(*Byte offset for seek *)
  649. cbNewPosition: ULONG;(*Bytes from start of file after seek *)
  650. END;
  651. TYPE FIOSEEKCMD = _FIOSEEKCMD;
  652. TYPE
  653. PFIOSEEKCMD = POINTER TO FIOSEEKCMD;
  654. TYPE _FIOREADWRITE = RECORD(*FRWC Read&Write command structure *)
  655. usCmd: USHORT;(*Cmd = FIO_READ or FIO_WRITE *)
  656. pbBuffer: PVOID;(*Pointer to data buffer *)
  657. cbBufferLen: USHORT;(*Bytes in buffer or max size *)
  658. cbActualLen: USHORT;(*Bytes actually read/written *)
  659. END;
  660. TYPE FIOREADWRITE = _FIOREADWRITE;
  661. TYPE
  662. PFIOREADWRITE = POINTER TO FIOREADWRITE;
  663. (**
  664. * EA Info Levels & Find First/Next
  665. * API's: DosFindFirst, DosQueryFileInfo, DosQueryPathInfo, DosSetFileInfo
  666. *)
  667. (*File info levels : All listed API's *)
  668. CONST FIL_STANDARD = 1;
  669. (*Info level 1, standard file info *)
  670. CONST FIL_QUERYEASIZE = 2;
  671. (*Level 2, return Full EA size *)
  672. CONST FIL_QUERYEASFROMLIST = 3;
  673. (*Level 3, return requested EA's *)
  674. (*File info levels: Dos...PathInfo only *)
  675. CONST FIL_QUERYFULLNAME = 5;
  676. (*Level 5, return fully qualified *)
  677. (* name of file *)
  678. CONST FIL_NAMEISVALID = 6;
  679. (*Level 6, check validity of *)
  680. (*file/path name for this FSD *)
  681. (*DosFindNotifyFirst() *)
  682. CONST FNOTIL_STANDARD = 1;
  683. (*Find-Notify Info level 1&gml Return *)
  684. (*standard directory change info *)
  685. (*DosQueryFSAttach() *)
  686. (*Information level types (defines method of query) *)
  687. CONST FSAIL_QUERYNAME = 1;
  688. (*Return data for a Drive or Device *)
  689. CONST FSAIL_DEVNUMBER = 2;
  690. (*Return data for Ordinal Device # *)
  691. CONST FSAIL_DRVNUMBER = 3;
  692. (*Return data for Ordinal Drive # *)
  693. (*Item types (from data structure item "iType") *)
  694. CONST FSAT_CHARDEV = 1;
  695. (*Resident character device *)
  696. CONST FSAT_PSEUDODEV = 2;
  697. (*Pusedu-character device *)
  698. CONST FSAT_LOCALDRV = 3;
  699. (*Local drive *)
  700. CONST FSAT_REMOTEDRV = 4;
  701. (*Remote drive attached to FSD *)
  702. (*Data structure for QFSAttach *)
  703. TYPE _FSQBUFFER = RECORD(*fsqbf *)
  704. iType: USHORT;(*Item type *)
  705. cbName: USHORT;(*Length of item name, sans NULL *)
  706. szName: ARRAY [0 .. ((1) - 1)] OF UCHAR;(*ASCIIZ item name *)
  707. cbFSDName: USHORT;(*Length of FSD name, sans NULL *)
  708. szFSDName: ARRAY [0 .. ((1) - 1)] OF UCHAR;(*ASCIIZ FSD name *)
  709. cbFSAData: USHORT;(*Length of FSD Attach data returned *)
  710. rgFSAData: ARRAY [0 .. ((1) - 1)] OF UCHAR;(*FSD Attach data from FSD *)
  711. END;
  712. TYPE FSQBUFFER = _FSQBUFFER;
  713. TYPE
  714. PFSQBUFFER = POINTER TO FSQBUFFER;
  715. (*
  716. * File System Drive Information&gml DosQFSInfo DosSetFSInfo
  717. *)
  718. (*FS Drive Info Levels *)
  719. CONST FSIL_ALLOC = 1;
  720. (*Drive allocation info (Query only) *)
  721. CONST FSIL_VOLSER = 2;
  722. (*Drive Volume/Serial information *)
  723. (*HANDTYPE values *)
  724. CONST HANDTYPE_FILE = 0000H;
  725. CONST HANDTYPE_DEVICE = 0001H;
  726. CONST HANDTYPE_PIPE = 0002H;
  727. CONST HANDTYPE_NETWORK = 8000H;
  728. (*DosQHandType() *)
  729. (*Handle classes (low 8 bits of Handle Type) *)
  730. CONST FHT_DISKFILE = 0000H;
  731. (*Disk file handle *)
  732. CONST FHT_CHRDEV = 0001H;
  733. (*Character device handle *)
  734. CONST FHT_PIPE = 0002H;
  735. (*Pipe handle *)
  736. (*Handle bits (high 8 bits of Handle Type) *)
  737. CONST FHB_DSKREMOTE = 8000H;
  738. (*Remote disk *)
  739. CONST FHB_CHRDEVREMOTE = 8001H;
  740. (*Remote character device *)
  741. CONST FHB_PIPEREMOTE = 8002H;
  742. (*Remote pipe *)
  743. (*File time and date types *)
  744. TYPE FTIME = CARDINAL;
  745. TYPE FDATE = CARDINAL;
  746. TYPE
  747. PFDATE = POINTER TO FDATE;
  748. TYPE _FILEFINDBUF = RECORD(*findbuf *)
  749. fdateCreation: FDATE;
  750. ftimeCreation: FTIME;
  751. fdateLastAccess: FDATE;
  752. ftimeLastAccess: FTIME;
  753. fdateLastWrite: FDATE;
  754. ftimeLastWrite: FTIME;
  755. cbFile: ULONG;
  756. cbFileAlloc: ULONG;
  757. attrFile: USHORT;
  758. cchName: UCHAR;
  759. achName: ARRAY [0 .. ((CCHMAXPATHCOMP) - 1)] OF CHAR;
  760. END;
  761. TYPE FILEFINDBUF = _FILEFINDBUF;
  762. TYPE
  763. PFILEFINDBUF = POINTER TO FILEFINDBUF;
  764. TYPE _FILEFINDBUF2 = RECORD(*findbuf2 *)
  765. fdateCreation: FDATE;
  766. ftimeCreation: FTIME;
  767. fdateLastAccess: FDATE;
  768. ftimeLastAccess: FTIME;
  769. fdateLastWrite: FDATE;
  770. ftimeLastWrite: FTIME;
  771. cbFile: ULONG;
  772. cbFileAlloc: ULONG;
  773. attrFile: USHORT;
  774. cbList: ULONG;
  775. cchName: UCHAR;
  776. achName: ARRAY [0 .. ((CCHMAXPATHCOMP) - 1)] OF CHAR;
  777. END;
  778. TYPE FILEFINDBUF2 = _FILEFINDBUF2;
  779. TYPE
  780. PFILEFINDBUF2 = POINTER TO FILEFINDBUF2;
  781. (*extended attribute structures *)
  782. TYPE _GEA = RECORD(*gea *)
  783. cbName: BYTE;(*name length not including NULL *)
  784. szName: ARRAY [0 .. ((1) - 1)] OF CHAR;(*attribute name *)
  785. END;
  786. TYPE GEA = _GEA;
  787. TYPE
  788. PGEA = POINTER TO GEA;
  789. TYPE _GEALIST = RECORD(*geal *)
  790. cbList: ULONG;(*total bytes of structure inc full list *)
  791. list: ARRAY [0 .. ((1) - 1)] OF GEA;(*variable length GEA structures *)
  792. END;
  793. TYPE GEALIST = _GEALIST;
  794. TYPE
  795. PGEALIST = POINTER TO GEALIST;
  796. TYPE _FEA = RECORD(*fea *)
  797. fEA: BYTE;(*flags *)
  798. cbName: BYTE;(*name length not including NULL *)
  799. cbValue: USHORT;(*value length *)
  800. END;
  801. TYPE FEA = _FEA;
  802. TYPE
  803. PFEA = POINTER TO FEA;
  804. (*flags for _FEA.fEA *)
  805. CONST FEA_NEEDEA = 80H;
  806. (*need EA bit *)
  807. TYPE _FEALIST = RECORD(*feal *)
  808. cbList: ULONG;(*total bytes of structure inc full list *)
  809. list: ARRAY [0 .. ((1) - 1)] OF FEA;(*variable length FEA structures *)
  810. END;
  811. TYPE FEALIST = _FEALIST;
  812. TYPE
  813. PFEALIST = POINTER TO FEALIST;
  814. TYPE _EAOP = RECORD(*eaop *)
  815. fpGEAList: PGEALIST;(*general EA list *)
  816. fpFEAList: PFEALIST;(*full EA list *)
  817. oError: ULONG;
  818. END;
  819. TYPE EAOP = _EAOP;
  820. TYPE
  821. PEAOP = POINTER TO EAOP;
  822. (*
  823. * Equates for EA types
  824. *
  825. * Values 0xFFFE thru 0x8000 are reserved.
  826. * Values 0x0000 thru 0x7fff are user definable.
  827. * Value 0xFFFC is not used
  828. *)
  829. CONST EAT_BINARY = 0FFFEH;
  830. (*length preceeded binary *)
  831. CONST EAT_ASCII = 0FFFDH;
  832. (*length preceeded ASCII *)
  833. CONST EAT_BITMAP = 0FFFBH;
  834. (*length preceeded bitmap *)
  835. CONST EAT_METAFILE = 0FFFAH;
  836. (*length preceeded metafile *)
  837. CONST EAT_ICON = 0FFF9H;
  838. (*length preceeded icon *)
  839. CONST EAT_EA = 0FFEEH;
  840. (*length preceeded ASCII extended attribute *)
  841. (*name of associated data (#include)*)
  842. CONST EAT_MVMT = 0FFDFH;
  843. (*multi-valued, multi-typed field *)
  844. CONST EAT_MVST = 0FFDEH;
  845. (*multi-valued, single-typed field *)
  846. CONST EAT_ASN1 = 0FFDDH;
  847. (*ASN.1 field *)
  848. PROCEDURE DOSOPEN (
  849. pszFname: PSZ;
  850. phfOpen: PHFILE;
  851. pusAction: PUSHORT;
  852. ulFSize: ULONG;
  853. usAttr: USHORT;
  854. fsOpenFlags: USHORT;
  855. fsOpenMode: USHORT;
  856. ulReserved: ULONG): USHORT;
  857. PROCEDURE DOSCLOSE (
  858. hf: HFILE): USHORT;
  859. PROCEDURE DOSREAD (
  860. hf: HFILE;
  861. pBuf: PVOID;
  862. cbBuf: USHORT;
  863. pcbBytesRead: PUSHORT): USHORT;
  864. PROCEDURE DOSWRITE (
  865. hf: HFILE;
  866. bBuf: PVOID;
  867. cbBuf: USHORT;
  868. pcbBytesWritten: PUSHORT): USHORT;
  869. (*File time and date types *)
  870. TYPE _FILESTATUS = RECORD(*fsts *)
  871. fdateCreation: FDATE;
  872. ftimeCreation: FTIME;
  873. fdateLastAccess: FDATE;
  874. ftimeLastAccess: FTIME;
  875. fdateLastWrite: FDATE;
  876. ftimeLastWrite: FTIME;
  877. cbFile: ULONG;
  878. cbFileAlloc: ULONG;
  879. attrFile: USHORT;
  880. END;
  881. TYPE FILESTATUS = _FILESTATUS;
  882. TYPE
  883. PFILESTATUS = POINTER TO FILESTATUS;
  884. TYPE _FILESTATUS2 = RECORD(*fsts2 *)
  885. fdateCreation: FDATE;
  886. ftimeCreation: FTIME;
  887. fdateLastAccess: FDATE;
  888. ftimeLastAccess: FTIME;
  889. fdateLastWrite: FDATE;
  890. ftimeLastWrite: FTIME;
  891. cbFile: ULONG;
  892. cbFileAlloc: ULONG;
  893. attrFile: USHORT;
  894. cbList: ULONG;
  895. END;
  896. TYPE FILESTATUS2 = _FILESTATUS2;
  897. TYPE
  898. PFILESTATUS2 = POINTER TO FILESTATUS2;
  899. TYPE _FSALLOCATE = RECORD(*fsalloc *)
  900. ulReserved: ULONG;
  901. cSectorUnit: ULONG;
  902. cUnit: ULONG;
  903. cUnitAvail: ULONG;
  904. cbSector: USHORT;
  905. END;
  906. TYPE FSALLOCATE = _FSALLOCATE;
  907. TYPE
  908. PFSALLOCATE = POINTER TO FSALLOCATE;
  909. TYPE _VOLUMELABEL = RECORD(*vol *)
  910. cch: BYTE;
  911. szVolLabel: ARRAY [0 .. ((12) - 1)] OF CHAR;
  912. END;
  913. TYPE VOLUMELABEL = _VOLUMELABEL;
  914. TYPE
  915. PVOLUMELABEL = POINTER TO VOLUMELABEL;
  916. TYPE _FSINFO = RECORD(*fsinf *)
  917. ulVSN: ULONG;
  918. vol: VOLUMELABEL;
  919. END;
  920. TYPE FSINFO = _FSINFO;
  921. TYPE
  922. PFSINFO = POINTER TO FSINFO;
  923. TYPE _FILELOCK = RECORD(*flock *)
  924. lOffset: LONGINT;
  925. lRange: LONGINT;
  926. END;
  927. TYPE FILELOCK = _FILELOCK;
  928. TYPE
  929. PFILELOCK = POINTER TO FILELOCK;
  930. TYPE
  931. HDIR = SHANDLE;
  932. (*hdir *)
  933. TYPE
  934. PHDIR = POINTER TO HDIR;
  935. PROCEDURE DOSDELETE (
  936. pszFName: PSZ;
  937. ulReserverd: ULONG): USHORT;
  938. PROCEDURE DOSDUPHANDLE (
  939. hfOld: HFILE;
  940. phfNew: PHFILE): USHORT;
  941. PROCEDURE DOSQFHANDSTATE (
  942. hf: HFILE;
  943. pfsOpenMode: PUSHORT): USHORT;
  944. PROCEDURE DOSSETFHANDSTATE (
  945. hf: HFILE;
  946. fsState: USHORT): USHORT;
  947. PROCEDURE DOSQHANDTYPE (
  948. hf: HFILE;
  949. pfsType: PUSHORT;
  950. pusDevAttr: PUSHORT): USHORT;
  951. PROCEDURE DOSFINDFIRST (
  952. pszFSpec: PSZ;
  953. phdir: PHDIR;
  954. usAttr: USHORT;
  955. pffb: PFILEFINDBUF;
  956. cbBuf: USHORT;
  957. pcSearch: PUSHORT;
  958. ulReserved: ULONG): USHORT;
  959. PROCEDURE DOSFINDNEXT (
  960. hdir: HDIR;
  961. pffb: PFILEFINDBUF;
  962. cbBuf: USHORT;
  963. pcSearch: PUSHORT): USHORT;
  964. PROCEDURE DOSFINDCLOSE (
  965. hdir: HDIR): USHORT;
  966. PROCEDURE DOSNEWSIZE (
  967. hf: HFILE;
  968. ulNewSize: ULONG): USHORT;
  969. PROCEDURE DOSBUFRESET (
  970. hf: HFILE): USHORT;
  971. PROCEDURE DOSCHGFILEPTR (
  972. hf: HFILE;
  973. lOffset: LONGINT;
  974. fsMethod: USHORT;
  975. pulNewOffset: PULONG): USHORT;
  976. PROCEDURE DOSFILELOCKS (
  977. hf: HFILE;
  978. pUnlock: PLONG;
  979. pLock: PLONG): USHORT;
  980. PROCEDURE DOSMOVE (
  981. pszOld: PSZ;
  982. pszNew: PSZ;
  983. ulReserved: ULONG): USHORT;
  984. PROCEDURE DOSMKDIR (
  985. pszDirName: PSZ;
  986. usReserved: ULONG): USHORT;
  987. PROCEDURE DOSRMDIR (
  988. pszDir: PSZ;
  989. ulReserved: ULONG): USHORT;
  990. PROCEDURE DOSSELECTDISK (
  991. usDrvNum: USHORT): USHORT;
  992. PROCEDURE DOSQCURDISK (
  993. pusDrvNum: PUSHORT;
  994. pulLogDrvMap: PULONG): USHORT;
  995. PROCEDURE DOSCHDIR (
  996. pszDir: PSZ;
  997. ulReserved: ULONG): USHORT;
  998. PROCEDURE DOSQCURDIR (
  999. usDrvNum: USHORT;
  1000. pszPathBuf: PBYTE;
  1001. pcbPathBuf: PUSHORT): USHORT;
  1002. PROCEDURE DOSQFSINFO (
  1003. usDrvNum: USHORT;
  1004. usInfoLevel: USHORT;
  1005. pbInfo: PBYTE;
  1006. cbInfo: USHORT): USHORT;
  1007. PROCEDURE DOSSETFSINFO (
  1008. usDrvNum: USHORT;
  1009. usInfoLevel: USHORT;
  1010. pBuf: PBYTE;
  1011. cbBuf: USHORT): USHORT;
  1012. PROCEDURE DOSQVERIFY (
  1013. pfVerifyOn: PBOOL): USHORT;
  1014. PROCEDURE DOSSETVERIFY (
  1015. fVerify: USHORT): USHORT;
  1016. PROCEDURE DOSQFILEINFO (
  1017. hf: HFILE;
  1018. usInfoLevel: USHORT;
  1019. pInfoBuf: PVOID;
  1020. cbInfoBuf: USHORT): USHORT;
  1021. PROCEDURE DOSSETFILEINFO (
  1022. hf: HFILE;
  1023. usInfoLevel: USHORT;
  1024. pInfoBuf: PBYTE;
  1025. cbInfoBuf: USHORT): USHORT;
  1026. PROCEDURE DOSQFILEMODE (
  1027. pszFName: PSZ;
  1028. pusAttr: PUSHORT;
  1029. ulReserved: ULONG): USHORT;
  1030. PROCEDURE DOSSETFILEMODE (
  1031. pszFName: PSZ;
  1032. usAttr: USHORT;
  1033. ulReserved: ULONG): USHORT;
  1034. (*constants for DosEnumAttribute() *)
  1035. CONST ENUMEA_REFTYPE_FHANDLE = 0;
  1036. CONST ENUMEA_REFTYPE_PATH = 1;
  1037. CONST ENUMEA_LEVEL_NO_VALUE = VAL(LONGINT, 1);
  1038. PROCEDURE DOSENUMATTRIBUTE (): USHORT;
  1039. (*ENUMEA_LEVEL_NO_VALUE info returned from DosEnumAttribute *)
  1040. TYPE _DENA1 = RECORD(*dena *)
  1041. reserved: UCHAR;(*0 *)
  1042. cbName: UCHAR;(*length of name exculding NULL *)
  1043. cbValue: USHORT;(*length of value *)
  1044. szName: ARRAY [0 .. ((1) - 1)] OF UCHAR;(*variable length asciiz name *)
  1045. END;
  1046. TYPE DENA1 = _DENA1;
  1047. TYPE
  1048. PDENA1 = POINTER TO DENA1;
  1049. (** Memory management *)
  1050. PROCEDURE DOSALLOCSEG (
  1051. cbSize: USHORT;
  1052. pSel: PSEL;
  1053. fsAlloc: USHORT): USHORT;
  1054. PROCEDURE DOSREALLOCSEG (
  1055. cbNewSize: USHORT;
  1056. sel: SEL): USHORT;
  1057. PROCEDURE DOSFREESEG (
  1058. sel: SEL): USHORT;
  1059. PROCEDURE DOSSIZESEG (
  1060. sel: SEL;
  1061. pcbSize: PULONG): USHORT;
  1062. (*Segment attribute flags (used with DosAllocSeg) *)
  1063. CONST SEG_NONSHARED = 0000H;
  1064. CONST SEG_GIVEABLE = 0001H;
  1065. CONST SEG_GETTABLE = 0002H;
  1066. CONST SEG_DISCARDABLE = 0004H;
  1067. CONST SEG_SIZEABLE = 0008H;
  1068. PROCEDURE DOSALLOCHUGE (
  1069. cSegs: USHORT;
  1070. cbPartialSeg: USHORT;
  1071. psel: PSEL;
  1072. cMaxSegs: USHORT;
  1073. fsAlloc: USHORT): USHORT;
  1074. PROCEDURE DOSREALLOCHUGE (
  1075. cSegs: USHORT;
  1076. cbPartialSeg: USHORT;
  1077. sel: SEL): USHORT;
  1078. PROCEDURE DOSGETHUGESHIFT (
  1079. pusShiftCount: PUSHORT): USHORT;
  1080. PROCEDURE DOSCREATECSALIAS (
  1081. selDS: SEL;
  1082. pselCS: PSEL): USHORT;
  1083. PROCEDURE DOSSUBALLOC (
  1084. sel: SEL;
  1085. pusOffset: PUSHORT;
  1086. cb: USHORT): USHORT;
  1087. PROCEDURE DOSSUBFREE (
  1088. sel: SEL;
  1089. offBlock: USHORT;
  1090. cb: USHORT): USHORT;
  1091. PROCEDURE DOSSUBSET (
  1092. sel: SEL;
  1093. fFlags: USHORT;
  1094. cbNew: USHORT): USHORT;
  1095. (** Time support *)
  1096. TYPE _DATETIME = RECORD(*date *)
  1097. hours: UCHAR;
  1098. minutes: UCHAR;
  1099. seconds: UCHAR;
  1100. hundredths: UCHAR;
  1101. day: UCHAR;
  1102. month: UCHAR;
  1103. year: USHORT;
  1104. timezone: INTEGER;
  1105. weekday: UCHAR;
  1106. END;
  1107. TYPE DATETIME = _DATETIME;
  1108. TYPE
  1109. PDATETIME = POINTER TO DATETIME;
  1110. PROCEDURE DOSGETDATETIME (
  1111. pdatetime: PDATETIME): USHORT;
  1112. PROCEDURE DOSSETDATETIME (
  1113. pdatetime: PDATETIME): USHORT;
  1114. (** Resource support *)
  1115. (*Predefined resource types *)
  1116. CONST RT_POINTER = 1;
  1117. (*mouse pointer shape *)
  1118. CONST RT_BITMAP = 2;
  1119. (*bitmap *)
  1120. CONST RT_MENU = 3;
  1121. (*menu template *)
  1122. CONST RT_DIALOG = 4;
  1123. (*dialog template *)
  1124. CONST RT_STRING = 5;
  1125. (*string tables *)
  1126. CONST RT_FONTDIR = 6;
  1127. (*font directory *)
  1128. CONST RT_FONT = 7;
  1129. (*font *)
  1130. CONST RT_ACCELTABLE = 8;
  1131. (*accelerator tables *)
  1132. CONST RT_RCDATA = 9;
  1133. (*binary data *)
  1134. CONST RT_MESSAGE = 10;
  1135. (*error mesage tables *)
  1136. CONST RT_DLGINCLUDE = 11;
  1137. (*dialog include file name *)
  1138. CONST RT_VKEYTBL = 12;
  1139. (*key to vkey tables *)
  1140. CONST RT_KEYTBL = 13;
  1141. (*key to UGL tables *)
  1142. CONST RT_CHARTBL = 14;
  1143. CONST RT_DISPLAYINFO = 15;
  1144. (*screen display information *)
  1145. CONST RT_FKASHORT = 16;
  1146. (*function key area short form *)
  1147. CONST RT_FKALONG = 17;
  1148. (*function key area long form *)
  1149. CONST RT_HELPTABLE = 18;
  1150. CONST RT_HELPSUBTABLE = 19;
  1151. CONST RT_FDDIR = 20;
  1152. CONST RT_FD = 21;
  1153. CONST RT_MAX = 22;
  1154. (*1st unused Resource Type *)
  1155. (** NLS Support *)
  1156. TYPE _COUNTRYCODE = RECORD(*ctryc *)
  1157. country: USHORT;
  1158. codepage: USHORT;
  1159. END;
  1160. TYPE COUNTRYCODE = _COUNTRYCODE;
  1161. TYPE
  1162. PCOUNTRYCODE = POINTER TO COUNTRYCODE;
  1163. (*fsDateFmt *)
  1164. CONST DATEFMT_MM_DD_YY = 0000H;
  1165. CONST DATEFMT_DD_MM_YY = 0001H;
  1166. CONST DATEFMT_YY_MM_DD = 0002H;
  1167. (*fsCurrencyFmt *)
  1168. CONST CURRENCY_FOLLOW = 0001H;
  1169. CONST CURRENCY_SPACE = 0002H;
  1170. CONST CURRENCY_DECIMAL = 0004H;
  1171. TYPE _COUNTRYINFO = RECORD(*ctryi *)
  1172. country: USHORT;
  1173. codepage: USHORT;
  1174. fsDateFmt: USHORT;
  1175. szCurrency: ARRAY [0 .. ((5) - 1)] OF CHAR;
  1176. szThousandsSeparator: ARRAY [0 .. ((2) - 1)] OF CHAR;
  1177. szDecimal: ARRAY [0 .. ((2) - 1)] OF CHAR;
  1178. szDateSeparator: ARRAY [0 .. ((2) - 1)] OF CHAR;
  1179. szTimeSeparator: ARRAY [0 .. ((2) - 1)] OF CHAR;
  1180. fsCurrencyFmt: UCHAR;
  1181. cDecimalPlace: UCHAR;
  1182. fsTimeFmt: UCHAR;
  1183. abReserved1: ARRAY [0 .. ((2) - 1)] OF USHORT;
  1184. szDataSeparator: ARRAY [0 .. ((2) - 1)] OF CHAR;
  1185. abReserved2: ARRAY [0 .. ((5) - 1)] OF USHORT;
  1186. END;
  1187. TYPE COUNTRYINFO = _COUNTRYINFO;
  1188. TYPE
  1189. PCOUNTRYINFO = POINTER TO COUNTRYINFO;
  1190. PROCEDURE DOSGETCTRYINFO (
  1191. cbBuf: USHORT;
  1192. pctryc: PCOUNTRYCODE;
  1193. pctryi: PCOUNTRYINFO;
  1194. pcbCtryInfo: PUSHORT): USHORT;
  1195. PROCEDURE DOSGETDBCSEV (
  1196. cbBuf: USHORT;
  1197. pctryc: PCOUNTRYCODE;
  1198. pchBuf: PCHAR): USHORT;
  1199. PROCEDURE DOSCASEMAP (
  1200. usLen: USHORT;
  1201. pctryc: PCOUNTRYCODE;
  1202. pchStr: PCHAR): USHORT;
  1203. PROCEDURE DOSGETCOLLATE (
  1204. cbBuf: USHORT;
  1205. pctryc: PCOUNTRYCODE;
  1206. pchBuf: PCHAR;
  1207. pcbTable: PUSHORT): USHORT;
  1208. PROCEDURE DOSGETCP (
  1209. cbBuf: USHORT;
  1210. pBuf: PUSHORT;
  1211. pcbCodePgLst: PUSHORT): USHORT;
  1212. PROCEDURE DOSSETCP (
  1213. usCodePage: USHORT;
  1214. usReserved: USHORT): USHORT;
  1215. (** Signal support *)
  1216. (*Signal Numbers for DosSetSigHandler *)
  1217. CONST SIG_CTRLC = 1;
  1218. (*Control C *)
  1219. (* (UNDEFINED) 2 reserved for future use *)
  1220. CONST SIG_KILLPROCESS = 3;
  1221. (*Program Termination *)
  1222. CONST SIG_CTRLBREAK = 4;
  1223. (*Control Break *)
  1224. CONST SIG_PFLG_A = 5;
  1225. (*Process Flag A *)
  1226. CONST SIG_PFLG_B = 6;
  1227. (*Process Flag B *)
  1228. CONST SIG_PFLG_C = 7;
  1229. (*Process Flag C *)
  1230. CONST SIG_CSIGNALS = 8;
  1231. (*number of signals plus one *)
  1232. (*Signal actions *)
  1233. CONST SIGA_KILL = 0;
  1234. CONST SIGA_IGNORE = 1;
  1235. CONST SIGA_ACCEPT = 2;
  1236. CONST SIGA_ERROR = 3;
  1237. CONST SIGA_ACKNOWLEDGE = 4;
  1238. (*DosHoldSignal constants *)
  1239. CONST HLDSIG_ENABLE = 0;
  1240. CONST HLDSIG_DISABLE = 1;
  1241. TYPE
  1242. PFNSIGHANDLER = PROCEDURE();
  1243. PPFNSIGHANDLER = POINTER TO PFNSIGHANDLER;
  1244. PROCEDURE DOSSETSIGHANDLER (
  1245. pfnSigHandler: PFNSIGHANDLER;
  1246. ppfnPrev: PPFNSIGHANDLER;
  1247. pfAction: PUSHORT;
  1248. fAction: USHORT;
  1249. usSigNum: USHORT): USHORT;
  1250. PROCEDURE DOSHOLDSIGNAL (
  1251. fDisable: USHORT): USHORT;
  1252. (*DosQSysInfo index *)
  1253. CONST Q_MAX_PATH_LENGTH = 0;
  1254. (*index for query max path length *)
  1255. (*DosError() error-handling types *)
  1256. CONST HARDERROR_ENABLE = 0001H;
  1257. CONST HARDERROR_DISABLE = 0000H;
  1258. CONST EXCEPTION_ENABLE = 0000H;
  1259. CONST EXCEPTION_DISABLE = 0002H;
  1260. (*DosSetVec vectors *)
  1261. CONST VECTOR_DIVIDE_BY_ZERO = 0000H;
  1262. CONST VECTOR_OVERFLOW = 0004H;
  1263. CONST VECTOR_OUTOFBOUNDS = 0005H;
  1264. CONST VECTOR_INVALIDOPCODE = 0006H;
  1265. CONST VECTOR_NO_EXTENSION = 0007H;
  1266. CONST VECTOR_EXTENSION_ERROR = 0010H;
  1267. (*DosGetMachineMode() machine modes *)
  1268. CONST MODE_REAL = 0000H;
  1269. CONST MODE_PROTECTED = 0001H;
  1270. PROCEDURE DOSERROR (
  1271. fEnable: USHORT): USHORT;
  1272. PROCEDURE DOSSETVEC (
  1273. usVecNum: USHORT;
  1274. pfnFun: PFN;
  1275. ppfnPrev: PPFN): USHORT;
  1276. PROCEDURE DOSERRCLASS (
  1277. usErrCode: USHORT;
  1278. pusClass: PUSHORT;
  1279. pfsAction: PUSHORT;
  1280. pusLocus: PUSHORT): USHORT;
  1281. PROCEDURE DOSINSMESSAGE (
  1282. ppchVTable: PPCHAR;
  1283. usVCount: USHORT;
  1284. pszMsg: PSZ;
  1285. cbMsg: USHORT;
  1286. pchBuf: PCHAR;
  1287. cbBuf: USHORT;
  1288. pcbMsg: PUSHORT): USHORT;
  1289. PROCEDURE DOSPUTMESSAGE (
  1290. hf: HFILE;
  1291. cbMsg: USHORT;
  1292. pchMsg: PCHAR): USHORT;
  1293. PROCEDURE DOSGETENV (
  1294. pselEnv: PUSHORT;
  1295. pOffsetCmd: PUSHORT): USHORT;
  1296. PROCEDURE DOSGETVERSION (
  1297. pVer: PUSHORT);
  1298. PROCEDURE DOSGETMACHINEMODE (
  1299. pMachMode: PBYTE): USHORT;
  1300. (** Session manager support *)
  1301. TYPE
  1302. HKBD = SHANDLE;
  1303. TYPE
  1304. PHKBD = POINTER TO HKBD;
  1305. CONST KR_KBDCHARIN = 00000001H;
  1306. CONST KR_KBDPEEK = 00000002H;
  1307. CONST KR_KBDFLUSHBUFFER = 00000004H;
  1308. CONST KR_KBDGETSTATUS = 00000008H;
  1309. CONST KR_KBDSETSTATUS = 00000010H;
  1310. CONST KR_KBDSTRINGIN = 00000020H;
  1311. CONST KR_KBDOPEN = 00000040H;
  1312. CONST KR_KBDCLOSE = 00000080H;
  1313. CONST KR_KBDGETFOCUS = 00000100H;
  1314. CONST KR_KBDFREEFOCUS = 00000200H;
  1315. CONST KR_KBDGETCP = 00000400H;
  1316. CONST KR_KBDSETCP = 00000800H;
  1317. CONST KR_KBDXLATE = 00001000H;
  1318. CONST KR_KBDSETCUSTXT = 00002000H;
  1319. CONST IO_WAIT = 0;
  1320. CONST IO_NOWAIT = 1;
  1321. (*KBDKEYINFO structure, for KbdCharIn and KbdPeek *)
  1322. TYPE _KBDKEYINFO = RECORD(*kbci *)
  1323. chChar: UCHAR;
  1324. chScan: UCHAR;
  1325. fbStatus: UCHAR;
  1326. bNlsShift: UCHAR;
  1327. fsState: USHORT;
  1328. time: ULONG;
  1329. END;
  1330. TYPE KBDKEYINFO = _KBDKEYINFO;
  1331. TYPE
  1332. PKBDKEYINFO = POINTER TO KBDKEYINFO;
  1333. PROCEDURE KBDCHARIN (
  1334. pkbci: PKBDKEYINFO;
  1335. fWait: USHORT;
  1336. hkbd: HKBD): USHORT;
  1337. PROCEDURE KBDPEEK (
  1338. pkbci: PKBDKEYINFO;
  1339. hkbd: HKBD): USHORT;
  1340. (*structure for KbdStringIn() *)
  1341. TYPE _STRINGINBUF = RECORD(*kbsi *)
  1342. cb: USHORT;
  1343. cchIn: USHORT;
  1344. END;
  1345. TYPE STRINGINBUF = _STRINGINBUF;
  1346. TYPE
  1347. PSTRINGINBUF = POINTER TO STRINGINBUF;
  1348. PROCEDURE KBDSTRINGIN (
  1349. pch: PCH;
  1350. pchIn: PSTRINGINBUF;
  1351. fsWait: USHORT;
  1352. hkbd: HKBD): USHORT;
  1353. PROCEDURE KBDFLUSHBUFFER (
  1354. hkbd: HKBD): USHORT;
  1355. (*KBDINFO.fsMask *)
  1356. CONST KEYBOARD_ECHO_ON = 0001H;
  1357. CONST KEYBOARD_ECHO_OFF = 0002H;
  1358. CONST KEYBOARD_BINARY_MODE = 0004H;
  1359. CONST KEYBOARD_ASCII_MODE = 0008H;
  1360. CONST KEYBOARD_MODIFY_STATE = 0010H;
  1361. CONST KEYBOARD_MODIFY_INTERIM = 0020H;
  1362. CONST KEYBOARD_MODIFY_TURNAROUND = 0040H;
  1363. CONST KEYBOARD_2B_TURNAROUND = 0080H;
  1364. CONST KEYBOARD_SHIFT_REPORT = 0100H;
  1365. (*KBDINFO.fsState/KBDKEYINFO.fsState/KBDTRANS.fsState *)
  1366. CONST RIGHTSHIFT = 0001H;
  1367. CONST LEFTSHIFT = 0002H;
  1368. CONST CONTROL = 0004H;
  1369. CONST ALT = 0008H;
  1370. CONST SCROLLLOCK_ON = 0010H;
  1371. CONST NUMLOCK_ON = 0020H;
  1372. CONST CAPSLOCK_ON = 0040H;
  1373. CONST INSERT_ON = 0080H;
  1374. CONST LEFTCONTROL = 0100H;
  1375. CONST LEFTALT = 0200H;
  1376. CONST RIGHTCONTROL = 0400H;
  1377. CONST RIGHTALT = 0800H;
  1378. CONST SCROLLLOCK = 1000H;
  1379. CONST NUMLOCK = 2000H;
  1380. CONST CAPSLOCK = 4000H;
  1381. CONST SYSREQ = 8000H;
  1382. (*KBDINFO structure, for KbdSet/GetStatus *)
  1383. TYPE _KBDINFO = RECORD(*kbst *)
  1384. cb: USHORT;
  1385. fsMask: USHORT;
  1386. chTurnAround: USHORT;
  1387. fsInterim: USHORT;
  1388. fsState: USHORT;
  1389. END;
  1390. TYPE KBDINFO = _KBDINFO;
  1391. TYPE
  1392. PKBDINFO = POINTER TO KBDINFO;
  1393. PROCEDURE KBDSETSTATUS (
  1394. pkbdinfo: PKBDINFO;
  1395. hkbd: HKBD): USHORT;
  1396. PROCEDURE KBDGETSTATUS (
  1397. pkbdinfo: PKBDINFO;
  1398. hdbd: HKBD): USHORT;
  1399. (*KBDTRANS.fbStatus *)
  1400. CONST SHIFT_KEY_IN = 01H;
  1401. CONST CONVERSION_REQUEST = 20H;
  1402. CONST FINAL_CHAR_IN = 40H;
  1403. CONST INTERIM_CHAR_IN = 80H;
  1404. CONST KEYBOARD_AT_COMPATABLE = 0001H;
  1405. CONST KEYBOARD_ENHANCED_101 = 0AB41H;
  1406. CONST KEYBOARD_ENHANCED_102 = 0AB41H;
  1407. CONST KEYBOARD_ENHANCED_122 = 0AB85H;
  1408. CONST KEYBOARD_SPACESAVER = 0AB54H;
  1409. TYPE
  1410. HVIO = SHANDLE;
  1411. TYPE
  1412. PHVIO = POINTER TO HVIO;
  1413. (*first parameter registration constants *)
  1414. CONST VR_VIOGETCURPOS = 00000001H;
  1415. CONST VR_VIOGETCURTYPE = 00000002H;
  1416. CONST VR_VIOGETMODE = 00000004H;
  1417. CONST VR_VIOGETBUF = 00000008H;
  1418. CONST VR_VIOGETPHYSBUF = 00000010H;
  1419. CONST VR_VIOSETCURPOS = 00000020H;
  1420. CONST VR_VIOSETCURTYPE = 00000040H;
  1421. CONST VR_VIOSETMODE = 00000080H;
  1422. CONST VR_VIOSHOWBUF = 00000100H;
  1423. CONST VR_VIOREADCHARSTR = 00000200H;
  1424. CONST VR_VIOREADCELLSTR = 00000400H;
  1425. CONST VR_VIOWRTNCHAR = 00000800H;
  1426. CONST VR_VIOWRTNATTR = 00001000H;
  1427. CONST VR_VIOWRTNCELL = 00002000H;
  1428. CONST VR_VIOWRTTTY = 00004000H;
  1429. CONST VR_VIOWRTCHARSTR = 00008000H;
  1430. CONST VR_VIOWRTCHARSTRATT = 00010000H;
  1431. CONST VR_VIOWRTCELLSTR = 00020000H;
  1432. CONST VR_VIOSCROLLUP = 00040000H;
  1433. CONST VR_VIOSCROLLDN = 00080000H;
  1434. CONST VR_VIOSCROLLLF = 00100000H;
  1435. CONST VR_VIOSCROLLRT = 00200000H;
  1436. CONST VR_VIOSETANSI = 00400000H;
  1437. CONST VR_VIOGETANSI = 00800000H;
  1438. CONST VR_VIOPRTSC = 01000000H;
  1439. CONST VR_VIOSCRLOCK = 02000000H;
  1440. CONST VR_VIOSCRUNLOCK = 04000000H;
  1441. CONST VR_VIOSAVREDRAWWAIT = 08000000H;
  1442. CONST VR_VIOSAVREDRAWUNDO = 10000000H;
  1443. CONST VR_VIOPOPUP = 20000000H;
  1444. CONST VR_VIOENDPOPUP = 40000000H;
  1445. CONST VR_VIOPRTSCTOGGLE = 80000000H;
  1446. (*second parameter registration constants *)
  1447. CONST VR_VIOMODEWAIT = 00000001H;
  1448. CONST VR_VIOMODEUNDO = 00000002H;
  1449. CONST VR_VIOGETFONT = 00000004H;
  1450. CONST VR_VIOGETCONFIG = 00000008H;
  1451. CONST VR_VIOSETCP = 00000010H;
  1452. CONST VR_VIOGETCP = 00000020H;
  1453. CONST VR_VIOSETFONT = 00000040H;
  1454. CONST VR_VIOGETSTATE = 00000080H;
  1455. CONST VR_VIOSETSTATE = 00000100H;
  1456. PROCEDURE VIOGETCURPOS (
  1457. pusRow: PUSHORT;
  1458. pusColumn: PUSHORT;
  1459. hvio: HVIO): USHORT;
  1460. PROCEDURE VIOSETCURPOS (
  1461. usRow: USHORT;
  1462. usColumn: USHORT;
  1463. hvio: HVIO): USHORT;
  1464. (*structure for VioSet/GetCurType() *)
  1465. TYPE _VIOCURSORINFO = RECORD(*vioci *)
  1466. yStart: USHORT;
  1467. cEnd: USHORT;
  1468. cx: USHORT;
  1469. attr: USHORT;
  1470. END;
  1471. TYPE VIOCURSORINFO = _VIOCURSORINFO;
  1472. TYPE
  1473. PVIOCURSORINFO = POINTER TO VIOCURSORINFO;
  1474. PROCEDURE VIOGETCURTYPE (
  1475. pvioCursorInfo: PVIOCURSORINFO;
  1476. hvio: HVIO): USHORT;
  1477. PROCEDURE VIOSETCURTYPE (
  1478. pvioCursorInfo: PVIOCURSORINFO;
  1479. hvio: HVIO): USHORT;
  1480. (*VIOMODEINFO.color constants *)
  1481. CONST COLORS_2 = 0001H;
  1482. CONST COLORS_4 = 0002H;
  1483. CONST COLORS_16 = 0004H;
  1484. (*structure for VioSet/GetMode() *)
  1485. TYPE _VIOMODEINFO = RECORD(*viomi *)
  1486. cb: USHORT;
  1487. fbType: UCHAR;
  1488. color: UCHAR;
  1489. col: USHORT;
  1490. row: USHORT;
  1491. hres: USHORT;
  1492. vres: USHORT;
  1493. fmt_ID: UCHAR;
  1494. attrib: UCHAR;
  1495. buf_addr: ULONG;
  1496. buf_length: ULONG;
  1497. full_length: ULONG;
  1498. partial_length: ULONG;
  1499. ext_data_addr: PCH;
  1500. END;
  1501. TYPE VIOMODEINFO = _VIOMODEINFO;
  1502. TYPE
  1503. PVIOMODEINFO = POINTER TO VIOMODEINFO;
  1504. CONST VGMT_OTHER = 01H;
  1505. CONST VGMT_GRAPHICS = 02H;
  1506. CONST VGMT_DISABLEBURST = 04H;
  1507. PROCEDURE VIOGETMODE (
  1508. pvioModeInfo: PVIOMODEINFO;
  1509. hvio: HVIO): USHORT;
  1510. PROCEDURE VIOSETMODE (
  1511. pvioModeInfo: PVIOMODEINFO;
  1512. hvio: HVIO): USHORT;
  1513. (*structure for VioGetPhysBuf() *)
  1514. TYPE _VIOPHYSBUF = RECORD(*viopb *)
  1515. pBuf: PBYTE;
  1516. cb: ULONG;
  1517. asel: ARRAY [0 .. ((1) - 1)] OF SEL;
  1518. END;
  1519. TYPE VIOPHYSBUF = _VIOPHYSBUF;
  1520. TYPE
  1521. PVIOPHYSBUF = POINTER TO VIOPHYSBUF;
  1522. PROCEDURE VIOGETPHYSBUF (
  1523. pvioPhysBuf: PVIOPHYSBUF;
  1524. usReserved: USHORT): USHORT;
  1525. PROCEDURE VIOREADCELLSTR (
  1526. pchCellStr: PCH;
  1527. pcb: PUSHORT;
  1528. usRow: USHORT;
  1529. usColumn: USHORT;
  1530. hvio: HVIO): USHORT;
  1531. PROCEDURE VIOREADCHARSTR (
  1532. pchCellStr: PCH;
  1533. pcb: PUSHORT;
  1534. usRow: USHORT;
  1535. usColumn: USHORT;
  1536. hvio: HVIO): USHORT;
  1537. PROCEDURE VIOWRTCELLSTR (
  1538. pchCellStr: PCH;
  1539. cb: USHORT;
  1540. usRow: USHORT;
  1541. usColumn: USHORT;
  1542. hvio: HVIO): USHORT;
  1543. PROCEDURE VIOWRTCHARSTR (
  1544. pchStr: PCH;
  1545. cb: USHORT;
  1546. usRow: USHORT;
  1547. usColumn: USHORT;
  1548. hvio: HVIO): USHORT;
  1549. PROCEDURE VIOSCROLLDN (
  1550. usTopRow: USHORT;
  1551. usLeftCol: USHORT;
  1552. usBotRow: USHORT;
  1553. usRightCol: USHORT;
  1554. cbLines: USHORT;
  1555. pCell: PBYTE;
  1556. hvio: HVIO): USHORT;
  1557. PROCEDURE VIOSCROLLUP (
  1558. usTopRow: USHORT;
  1559. usLeftCol: USHORT;
  1560. usBotRow: USHORT;
  1561. usRightCol: USHORT;
  1562. cbLines: USHORT;
  1563. pCell: PBYTE;
  1564. hvio: HVIO): USHORT;
  1565. PROCEDURE VIOSCROLLLF (
  1566. usTopRow: USHORT;
  1567. usLeftCol: USHORT;
  1568. usBotRow: USHORT;
  1569. usRightCol: USHORT;
  1570. cbCol: USHORT;
  1571. pCell: PBYTE;
  1572. hvio: HVIO): USHORT;
  1573. PROCEDURE VIOSCROLLRT (
  1574. usTopRow: USHORT;
  1575. usLeftCol: USHORT;
  1576. usBotRow: USHORT;
  1577. usRightCol: USHORT;
  1578. cbCol: USHORT;
  1579. pCell: PBYTE;
  1580. hvio: HVIO): USHORT;
  1581. PROCEDURE VIOWRTNATTR (
  1582. pAttr: PBYTE;
  1583. cb: USHORT;
  1584. usRow: USHORT;
  1585. usColumn: USHORT;
  1586. hvio: HVIO): USHORT;
  1587. PROCEDURE VIOWRTNCELL (
  1588. pCell: PBYTE;
  1589. cb: USHORT;
  1590. usRow: USHORT;
  1591. usColumn: USHORT;
  1592. hvio: HVIO): USHORT;
  1593. PROCEDURE VIOWRTNCHAR (
  1594. pchChar: PCH;
  1595. cb: USHORT;
  1596. usRow: USHORT;
  1597. usColumn: USHORT;
  1598. hvio: HVIO): USHORT;
  1599. PROCEDURE VIOWRTTTY (
  1600. pch: PCH;
  1601. cb: USHORT;
  1602. hvio: HVIO): USHORT;
  1603. PROCEDURE VIOWRTCHARSTRATT (
  1604. pch: PCH;
  1605. cb: USHORT;
  1606. usRow: USHORT;
  1607. usColumn: USHORT;
  1608. pAttr: PBYTE;
  1609. hvio: HVIO): USHORT;
  1610. CONST ANSI_ON = 1;
  1611. CONST ANSI_OFF = 0;
  1612. CONST VSRWI_SAVEANDREDRAW = 0;
  1613. CONST VSRWI_REDRAW = 1;
  1614. CONST VSRWN_SAVE = 0;
  1615. CONST VSRWN_REDRAW = 1;
  1616. CONST UNDOI_GETOWNER = 0;
  1617. CONST UNDOI_RELEASEOWNER = 1;
  1618. CONST UNDOK_ERRORCODE = 0;
  1619. CONST UNDOK_TERMINATE = 1;
  1620. CONST VMWR_POPUP = 0;
  1621. CONST VMWN_POPUP = 0;
  1622. CONST LOCKIO_NOWAIT = 0;
  1623. CONST LOCKIO_WAIT = 1;
  1624. CONST LOCK_SUCCESS = 0;
  1625. CONST LOCK_FAIL = 1;
  1626. PROCEDURE VIOSCRLOCK (
  1627. fWait: USHORT;
  1628. pfNotLocked: PUCHAR;
  1629. hvio: HVIO): USHORT;
  1630. PROCEDURE VIOSCRUNLOCK (
  1631. hvio: HVIO): USHORT;
  1632. CONST VP_NOWAIT = 0000H;
  1633. CONST VP_WAIT = 0001H;
  1634. CONST VP_OPAQUE = 0000H;
  1635. CONST VP_TRANSPARENT = 0002H;
  1636. (*structure for VioGetConfig() *)
  1637. (*VIOCONFIGINFO.adapter constants *)
  1638. CONST DISPLAY_MONOCHROME = 0000H;
  1639. CONST DISPLAY_CGA = 0001H;
  1640. CONST DISPLAY_EGA = 0002H;
  1641. CONST DISPLAY_VGA = 0003H;
  1642. CONST DISPLAY_8514A = 0007H;
  1643. (*VIOCONFIGINFO.display constants *)
  1644. CONST MONITOR_MONOCHROME = 0000H;
  1645. CONST MONITOR_COLOR = 0001H;
  1646. CONST MONITOR_ENHANCED = 0002H;
  1647. CONST MONITOR_8503 = 0003H;
  1648. CONST MONITOR_851X_COLOR = 0004H;
  1649. CONST MONITOR_8514 = 0009H;
  1650. TYPE _VIOCONFIGINFO = RECORD(*vioin *)
  1651. cb: USHORT;
  1652. adapter: USHORT;
  1653. display: USHORT;
  1654. cbMemory: ULONG;
  1655. Configuration: USHORT;
  1656. VDHVersion: USHORT;
  1657. Flags: USHORT;
  1658. HWBufferSize: ULONG;
  1659. FullSaveSize: ULONG;
  1660. PartSaveSize: ULONG;
  1661. EMAdaptersOFF: USHORT;
  1662. EMDisplaysOFF: USHORT;
  1663. END;
  1664. TYPE VIOCONFIGINFO = _VIOCONFIGINFO;
  1665. TYPE
  1666. PVIOCONFIGINFO = POINTER TO VIOCONFIGINFO;
  1667. PROCEDURE VIOGETCONFIG (
  1668. usConfigId: USHORT;
  1669. pvioin: PVIOCONFIGINFO;
  1670. hvio: HVIO): USHORT;
  1671. (*structure for VioGet/SetFont() *)
  1672. TYPE _VIOFONTINFO = RECORD(*viofi *)
  1673. cb: USHORT;
  1674. type: USHORT;
  1675. cxCell: USHORT;
  1676. cyCell: USHORT;
  1677. pbData: PVOID;
  1678. cbData: USHORT;
  1679. END;
  1680. TYPE VIOFONTINFO = _VIOFONTINFO;
  1681. TYPE
  1682. PVIOFONTINFO = POINTER TO VIOFONTINFO;
  1683. CONST VGFI_GETCURFONT = 0;
  1684. CONST VGFI_GETROMFONT = 1;
  1685. PROCEDURE VIOGETFONT (
  1686. pviofi: PVIOFONTINFO;
  1687. hvio: HVIO): USHORT;
  1688. PROCEDURE VIOSETFONT (
  1689. pviofi: PVIOFONTINFO;
  1690. hvio: HVIO): USHORT;
  1691. TYPE _VIOPALSTATE = RECORD(*viopal *)
  1692. cb: USHORT;
  1693. type: USHORT;
  1694. iFirst: USHORT;
  1695. acolor: ARRAY [0 .. ((1) - 1)] OF USHORT;
  1696. END;
  1697. TYPE VIOPALSTATE = _VIOPALSTATE;
  1698. TYPE
  1699. PVIOPALSTATE = POINTER TO VIOPALSTATE;
  1700. TYPE _VIOOVERSCAN = RECORD(*vioos *)
  1701. cb: USHORT;
  1702. type: USHORT;
  1703. color: USHORT;
  1704. END;
  1705. TYPE VIOOVERSCAN = _VIOOVERSCAN;
  1706. TYPE
  1707. PVIOOVERSCAN = POINTER TO VIOOVERSCAN;
  1708. TYPE _VIOINTENSITY = RECORD(*vioint *)
  1709. cb: USHORT;
  1710. type: USHORT;
  1711. fs: USHORT;
  1712. END;
  1713. TYPE VIOINTENSITY = _VIOINTENSITY;
  1714. TYPE
  1715. PVIOINTENSITY = POINTER TO VIOINTENSITY;
  1716. TYPE _VIOCOLORREG = RECORD(*viocreg *)
  1717. cb: USHORT;
  1718. type: USHORT;
  1719. firstcolorreg: USHORT;
  1720. numcolorregs: USHORT;
  1721. colorregaddr: PCH;
  1722. END;
  1723. TYPE VIOCOLORREG = _VIOCOLORREG;
  1724. TYPE
  1725. PVIOCOLORREG = POINTER TO VIOCOLORREG;
  1726. TYPE _VIOSETULINELOC = RECORD(*viouline *)
  1727. cb: USHORT;
  1728. type: USHORT;
  1729. scanline: USHORT;
  1730. END;
  1731. TYPE VIOSETULINELOC = _VIOSETULINELOC;
  1732. TYPE
  1733. PVIOSETULINELOC = POINTER TO VIOSETULINELOC;
  1734. TYPE _VIOSETTARGET = RECORD(*viosett *)
  1735. cb: USHORT;
  1736. type: USHORT;
  1737. defaultalgorithm: USHORT;
  1738. END;
  1739. TYPE VIOSETTARGET = _VIOSETTARGET;
  1740. TYPE
  1741. PVIOSETTARGET = POINTER TO VIOSETTARGET;
  1742. PROCEDURE VIOGETSTATE (
  1743. pState: PVOID;
  1744. hvio: HVIO): USHORT;
  1745. PROCEDURE VIOSETSTATE (
  1746. pState: PVOID;
  1747. hvio: HVIO): USHORT;
  1748. (** Device support *)
  1749. (*************************************************************************\
  1750. *
  1751. * OS/2 Structures and constants for use with DosDevIOCtl
  1752. *
  1753. \**************************************************************************)
  1754. (*Input and Output Control Categories *)
  1755. CONST IOCTL_ASYNC = 0001H;
  1756. CONST IOCTL_SCR_AND_PTRDRAW = 0003H;
  1757. CONST IOCTL_KEYBOARD = 0004H;
  1758. CONST IOCTL_PRINTER = 0005H;
  1759. CONST IOCTL_LIGHTPEN = 0006H;
  1760. CONST IOCTL_POINTINGDEVICE = 0007H;
  1761. CONST IOCTL_DISK = 0008H;
  1762. CONST IOCTL_PHYSICALDISK = 0009H;
  1763. CONST IOCTL_MONITOR = 000AH;
  1764. CONST IOCTL_GENERAL = 000BH;
  1765. (*Serial-Device Control *)
  1766. CONST ASYNC_SETBAUDRATE = 0041H;
  1767. CONST ASYNC_SETLINECTRL = 0042H;
  1768. CONST ASYNC_TRANSMITIMM = 0044H;
  1769. CONST ASYNC_SETBREAKOFF = 0045H;
  1770. CONST ASYNC_SETMODEMCTRL = 0046H;
  1771. CONST ASYNC_SETBREAKON = 004BH;
  1772. CONST ASYNC_STOPTRANSMIT = 0047H;
  1773. CONST ASYNC_STARTTRANSMIT = 0048H;
  1774. CONST ASYNC_SETDCBINFO = 0053H;
  1775. CONST ASYNC_GETBAUDRATE = 0061H;
  1776. CONST ASYNC_GETLINECTRL = 0062H;
  1777. CONST ASYNC_GETCOMMSTATUS = 0064H;
  1778. CONST ASYNC_GETLINESTATUS = 0065H;
  1779. CONST ASYNC_GETMODEMOUTPUT = 0066H;
  1780. CONST ASYNC_GETMODEMINPUT = 0067H;
  1781. CONST ASYNC_GETINQUECOUNT = 0068H;
  1782. CONST ASYNC_GETOUTQUECOUNT = 0069H;
  1783. CONST ASYNC_GETCOMMERROR = 006DH;
  1784. CONST ASYNC_GETCOMMEVENT = 0072H;
  1785. CONST ASYNC_GETDCBINFO = 0073H;
  1786. (*Screen/Pointer-Draw Control *)
  1787. CONST SCR_ALLOCLDT = 0070H;
  1788. CONST SCR_DEALLOCLDT = 0071H;
  1789. CONST PTR_GETPTRDRAWADDRESS = 0072H;
  1790. CONST SCR_ALLOCLDTOFF = 0075H;
  1791. (*Keyboard Control *)
  1792. CONST KBD_SETTRANSTABLE = 0050H;
  1793. CONST KBD_SETINPUTMODE = 0051H;
  1794. CONST KBD_SETINTERIMFLAG = 0052H;
  1795. CONST KBD_SETSHIFTSTATE = 0053H;
  1796. CONST KBD_SETTYPAMATICRATE = 0054H;
  1797. CONST KBD_SETFGNDSCREENGRP = 0055H;
  1798. CONST KBD_SETSESMGRHOTKEY = 0056H;
  1799. CONST KBD_SETFOCUS = 0057H;
  1800. CONST KBD_SETKCB = 0058H;
  1801. CONST KBD_SETNLS = 005CH;
  1802. CONST KBD_CREATE = 005DH;
  1803. CONST KBD_DESTROY = 005EH;
  1804. CONST KBD_GETINPUTMODE = 0071H;
  1805. CONST KBD_GETINTERIMFLAG = 0072H;
  1806. CONST KBD_GETSHIFTSTATE = 0073H;
  1807. CONST KBD_READCHAR = 0074H;
  1808. CONST KBD_PEEKCHAR = 0075H;
  1809. CONST KBD_GETSESMGRHOTKEY = 0076H;
  1810. CONST KBD_GETKEYBDTYPE = 0077H;
  1811. CONST KBD_GETCODEPAGEID = 0078H;
  1812. CONST KBD_XLATESCAN = 0079H;
  1813. (*Printer Control *)
  1814. CONST PRT_SETFRAMECTL = 0042H;
  1815. CONST PRT_SETINFINITERETRY = 0044H;
  1816. CONST PRT_INITPRINTER = 0046H;
  1817. CONST PRT_ACTIVATEFONT = 0048H;
  1818. CONST PRT_GETFRAMECTL = 0062H;
  1819. CONST PRT_GETINFINITERETRY = 0064H;
  1820. CONST PRT_GETPRINTERSTATUS = 0066H;
  1821. CONST PRT_QUERYACTIVEFONT = 0069H;
  1822. CONST PRT_VERIFYFONT = 006AH;
  1823. (*Disk/Diskette Control *)
  1824. CONST DSK_LOCKDRIVE = 0000H;
  1825. CONST DSK_UNLOCKDRIVE = 0001H;
  1826. CONST DSK_REDETERMINEMEDIA = 0002H;
  1827. CONST DSK_SETLOGICALMAP = 0003H;
  1828. CONST DSK_BLOCKREMOVABLE = 0020H;
  1829. CONST DSK_GETLOGICALMAP = 0021H;
  1830. CONST DSK_SETDEVICEPARAMS = 0043H;
  1831. CONST DSK_WRITETRACK = 0044H;
  1832. CONST DSK_FORMATVERIFY = 0045H;
  1833. CONST DSK_GETDEVICEPARAMS = 0063H;
  1834. CONST DSK_READTRACK = 0064H;
  1835. CONST DSK_VERIFYTRACK = 0065H;
  1836. (*Physical-Disk Control *)
  1837. CONST PDSK_LOCKPHYSDRIVE = 0000H;
  1838. CONST PDSK_UNLOCKPHYSDRIVE = 0001H;
  1839. CONST PDSK_WRITEPHYSTRACK = 0044H;
  1840. CONST PDSK_GETPHYSDEVICEPARAMS = 0063H;
  1841. CONST PDSK_READPHYSTRACK = 0064H;
  1842. CONST PDSK_VERIFYPHYSTRACK = 0065H;
  1843. (*Character-Monitor Control *)
  1844. CONST MON_REGISTERMONITOR = 0040H;
  1845. (*General Device Control *)
  1846. CONST DEV_FLUSHINPUT = 0001H;
  1847. CONST DEV_FLUSHOUTPUT = 0002H;
  1848. CONST DEV_QUERYMONSUPPORT = 0060H;
  1849. (*ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
  1850. * ASYNC_SETMODEMCTRL
  1851. *)
  1852. CONST RX_QUE_OVERRUN = 0001H;
  1853. CONST RX_HARDWARE_OVERRUN = 0002H;
  1854. CONST PARITY_ERROR = 0004H;
  1855. CONST FRAMING_ERROR = 0008H;
  1856. (*ASYNC_GETCOMMEVENT *)
  1857. CONST CHAR_RECEIVED = 0001H;
  1858. CONST LAST_CHAR_SENT = 0004H;
  1859. CONST CTS_CHANGED = 0008H;
  1860. CONST DSR_CHANGED = 0010H;
  1861. CONST DCD_CHANGED = 0020H;
  1862. CONST BREAK_DETECTED = 0040H;
  1863. CONST ERROR_OCCURRED = 0080H;
  1864. CONST RI_DETECTED = 0100H;
  1865. (*ASYNC_GETCOMMSTATUS *)
  1866. CONST TX_WAITING_FOR_CTS = 0001H;
  1867. CONST TX_WAITING_FOR_DSR = 0002H;
  1868. CONST TX_WAITING_FOR_DCD = 0004H;
  1869. CONST TX_WAITING_FOR_XON = 0008H;
  1870. CONST TX_WAITING_TO_SEND_XON = 0010H;
  1871. CONST TX_WAITING_WHILE_BREAK_ON = 0020H;
  1872. CONST TX_WAITING_TO_SEND_IMM = 0040H;
  1873. CONST RX_WAITING_FOR_DSR = 0080H;
  1874. (*ASYNC_GETLINESTATUS *)
  1875. CONST WRITE_REQUEST_QUEUED = 0001H;
  1876. CONST DATA_IN_TX_QUE = 0002H;
  1877. CONST HARDWARE_TRANSMITTING = 0004H;
  1878. CONST CHAR_READY_TO_SEND_IMM = 0008H;
  1879. CONST WAITING_TO_SEND_XON = 0010H;
  1880. CONST WAITING_TO_SEND_XOFF = 0020H;
  1881. (*ASYNC_GETMODEMINPUT *)
  1882. CONST CTS_ON = 10H;
  1883. CONST DSR_ON = 20H;
  1884. CONST RI_ON = 40H;
  1885. CONST DCD_ON = 80H;
  1886. (*DSK_SETDEVICEPARAMS *)
  1887. CONST BUILD_BPB_FROM_MEDIUM = 00H;
  1888. CONST REPLACE_BPB_FOR_DEVICE = 01H;
  1889. CONST REPLACE_BPB_FOR_MEDIUM = 02H;
  1890. (*KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*)
  1891. CONST ASCII_MODE = 00H;
  1892. CONST BINARY_MODE = 80H;
  1893. (*KBD_GETINTERIMFLAG *)
  1894. CONST INTERIM_CHAR = 80H;
  1895. (*KBD_GETSESMGRHOTKEY *)
  1896. CONST HOTKEY_MAX_COUNT = 0000H;
  1897. CONST HOTKEY_CURRENT_COUNT = 0001H;
  1898. (*KBD_PEEKCHAR *)
  1899. CONST KBD_DATA_RECEIVED = 0001H;
  1900. CONST KBD_DATA_BINARY = 8000H;
  1901. (*KBD_READCHAR *)
  1902. CONST KBD_READ_WAIT = 0000H;
  1903. CONST KBD_READ_NOWAIT = 8000H;
  1904. (*KBD_SETINPUTMODE *)
  1905. CONST SHIFT_REPORT_MODE = 01H;
  1906. (*PRT_GETPRINTERSTATUS *)
  1907. CONST PRINTER_TIMEOUT = 0001H;
  1908. CONST PRINTER_IO_ERROR = 0008H;
  1909. CONST PRINTER_SELECTED = 0010H;
  1910. CONST PRINTER_OUT_OF_PAPER = 0020H;
  1911. CONST PRINTER_ACKNOWLEDGED = 0040H;
  1912. CONST PRINTER_NOT_BUSY = 0080H;
  1913. (*fbCtlHndShake *)
  1914. CONST MODE_DTR_CONTROL = 01H;
  1915. CONST MODE_DTR_HANDSHAKE = 02H;
  1916. CONST MODE_CTS_HANDSHAKE = 08H;
  1917. CONST MODE_DSR_HANDSHAKE = 10H;
  1918. CONST MODE_DCD_HANDSHAKE = 20H;
  1919. CONST MODE_DSR_SENSITIVITY = 40H;
  1920. (*fbFlowReplace *)
  1921. CONST MODE_AUTO_TRANSMIT = 01H;
  1922. CONST MODE_AUTO_RECEIVE = 02H;
  1923. CONST MODE_ERROR_CHAR = 04H;
  1924. CONST MODE_NULL_STRIPPING = 08H;
  1925. CONST MODE_BREAK_CHAR = 10H;
  1926. CONST MODE_RTS_CONTROL = 40H;
  1927. CONST MODE_RTS_HANDSHAKE = 80H;
  1928. CONST MODE_TRANSMIT_TOGGLE = 0C0H;
  1929. (*fbTimeout *)
  1930. CONST MODE_NO_WRITE_TIMEOUT = 01H;
  1931. CONST MODE_READ_TIMEOUT = 02H;
  1932. CONST MODE_WAIT_READ_TIMEOUT = 04H;
  1933. CONST MODE_NOWAIT_READ_TIMEOUT = 06H;
  1934. TYPE _DCBINFO = RECORD(*dcbinf *)
  1935. usWriteTimeout: USHORT;
  1936. usReadTimeout: USHORT;
  1937. fbCtlHndShake: BYTE;
  1938. fbFlowReplace: BYTE;
  1939. fbTimeout: BYTE;
  1940. bErrorReplacementChar: BYTE;
  1941. bBreakReplacementChar: BYTE;
  1942. bXONChar: BYTE;
  1943. bXOFFChar: BYTE;
  1944. END;
  1945. TYPE DCBINFO = _DCBINFO;
  1946. TYPE
  1947. PDCBINFO = POINTER TO DCBINFO;
  1948. CONST DEVTYPE_48TPI = 0000H;
  1949. CONST DEVTYPE_96TPI = 0001H;
  1950. CONST DEVTYPE_35 = 0002H;
  1951. CONST DEVTYPE_8SD = 0003H;
  1952. CONST DEVTYPE_8DD = 0004H;
  1953. CONST DEVTYPE_FIXED = 0005H;
  1954. CONST DEVTYPE_TAPE = 0006H;
  1955. CONST DEVTYPE_UNKNOWN = 0007H;
  1956. TYPE _BIOSPARAMETERBLOCK = RECORD(*bspblk *)
  1957. usBytesPerSector: USHORT;
  1958. bSectorsPerCluster: BYTE;
  1959. usReservedSectors: USHORT;
  1960. cFATs: BYTE;
  1961. cRootEntries: USHORT;
  1962. cSectors: USHORT;
  1963. bMedia: BYTE;
  1964. usSectorsPerFAT: USHORT;
  1965. usSectorsPerTrack: USHORT;
  1966. cHeads: USHORT;
  1967. cHiddenSectors: ULONG;
  1968. cLargeSectors: ULONG;
  1969. abReserved: ARRAY [0 .. ((6) - 1)] OF BYTE;
  1970. cCylinders: USHORT;
  1971. bDeviceType: BYTE;
  1972. fsDeviceAttr: USHORT;
  1973. END;
  1974. TYPE BIOSPARAMETERBLOCK = _BIOSPARAMETERBLOCK;
  1975. TYPE
  1976. PBIOSPARAMETERBLOCK = POINTER TO BIOSPARAMETERBLOCK;
  1977. TYPE _SCREENGROUP = RECORD(*scrgrp *)
  1978. idScreenGrp: USHORT;
  1979. fTerminate: USHORT;
  1980. END;
  1981. TYPE SCREENGROUP = _SCREENGROUP;
  1982. TYPE
  1983. PSCREENGROUP = POINTER TO SCREENGROUP;
  1984. TYPE _FRAME = RECORD(*frm *)
  1985. bCharsPerLine: BYTE;
  1986. bLinesPerInch: BYTE;
  1987. END;
  1988. TYPE FRAME = _FRAME;
  1989. TYPE
  1990. PFRAME = POINTER TO FRAME;
  1991. TYPE _KBDTYPE = RECORD(*kbdtyp *)
  1992. usType: USHORT;
  1993. reserved1: USHORT;
  1994. reserved2: USHORT;
  1995. END;
  1996. TYPE KBDTYPE = _KBDTYPE;
  1997. TYPE
  1998. PKBDTYPE = POINTER TO KBDTYPE;
  1999. TYPE _LINECONTROL = RECORD(*lnctl *)
  2000. bDataBits: BYTE;
  2001. bParity: BYTE;
  2002. bStopBits: BYTE;
  2003. fTransBreak: BYTE;
  2004. END;
  2005. TYPE LINECONTROL = _LINECONTROL;
  2006. TYPE
  2007. PLINECONTROL = POINTER TO LINECONTROL;
  2008. (*MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT *)
  2009. CONST DTR_ON = 01H;
  2010. CONST RTS_ON = 02H;
  2011. (*MODEMSTATUS.fbModemOff *)
  2012. CONST DTR_OFF = 0FEH;
  2013. CONST RTS_OFF = 0FDH;
  2014. TYPE _MODEMSTATUS = RECORD(*mdmst *)
  2015. fbModemOn: BYTE;
  2016. fbModemOff: BYTE;
  2017. END;
  2018. TYPE MODEMSTATUS = _MODEMSTATUS;
  2019. TYPE
  2020. PMODEMSTATUS = POINTER TO MODEMSTATUS;
  2021. TYPE _RXQUEUE = RECORD(*rxq *)
  2022. cch: USHORT;
  2023. cb: USHORT;
  2024. END;
  2025. TYPE RXQUEUE = _RXQUEUE;
  2026. TYPE
  2027. PRXQUEUE = POINTER TO RXQUEUE;
  2028. TYPE _DEVICEPARAMETERBLOCK = RECORD(*dvpblck *)
  2029. reserved1: USHORT;
  2030. cCylinders: USHORT;
  2031. cHeads: USHORT;
  2032. cSectorsPerTrack: USHORT;
  2033. reserved2: USHORT;
  2034. reserved3: USHORT;
  2035. reserved4: USHORT;
  2036. reserved5: USHORT;
  2037. END;
  2038. TYPE DEVICEPARAMETERBLOCK = _DEVICEPARAMETERBLOCK;
  2039. TYPE
  2040. PDEVICEPARAMETERBLOCK = POINTER TO DEVICEPARAMETERBLOCK;
  2041. TYPE _PTRDRAWFUNCTION = RECORD(*ptrdfnc *)
  2042. usReturnCode: USHORT;
  2043. pfnDraw: PFN;
  2044. pchDataSeg: PCH;
  2045. END;
  2046. TYPE PTRDRAWFUNCTION = _PTRDRAWFUNCTION;
  2047. TYPE
  2048. PPTRDRAWFUNCTION = POINTER TO PTRDRAWFUNCTION;
  2049. TYPE _PTRDRAWADDRESS = RECORD(*ptrdaddr *)
  2050. reserved: USHORT;
  2051. ptrdfnc: PTRDRAWFUNCTION;
  2052. END;
  2053. TYPE PTRDRAWADDRESS = _PTRDRAWADDRESS;
  2054. TYPE
  2055. PPTRDRAWADDRESS = POINTER TO PTRDRAWADDRESS;
  2056. TYPE _SHIFTSTATE = RECORD(*shftst *)
  2057. fsState: USHORT;
  2058. fNLS: BYTE;
  2059. END;
  2060. TYPE SHIFTSTATE = _SHIFTSTATE;
  2061. TYPE
  2062. PSHIFTSTATE = POINTER TO SHIFTSTATE;
  2063. TYPE _HOTKEY = RECORD(*htky *)
  2064. fsHotKey: USHORT;
  2065. uchScancodeMake: UCHAR;
  2066. uchScancodeBreak: UCHAR;
  2067. idHotKey: USHORT;
  2068. END;
  2069. TYPE HOTKEY = _HOTKEY;
  2070. TYPE
  2071. PHOTKEY = POINTER TO HOTKEY;
  2072. TYPE _MONITORPOSITION = RECORD(*mnpos *)
  2073. fPosition: USHORT;
  2074. index: USHORT;
  2075. pbInBuf: ULONG;
  2076. offOutBuf: USHORT;
  2077. END;
  2078. TYPE MONITORPOSITION = _MONITORPOSITION;
  2079. TYPE
  2080. PMONITORPOSITION = POINTER TO MONITORPOSITION;
  2081. TYPE _RATEDELAY = RECORD(*rtdly *)
  2082. usDelay: USHORT;
  2083. usRate: USHORT;
  2084. END;
  2085. TYPE RATEDELAY = _RATEDELAY;
  2086. TYPE
  2087. PRATEDELAY = POINTER TO RATEDELAY;
  2088. TYPE _CODEPAGEINFO = RECORD(*cpi *)
  2089. pbTransTable: PBYTE;
  2090. idCodePage: USHORT;
  2091. idTable: USHORT;
  2092. END;
  2093. TYPE CODEPAGEINFO = _CODEPAGEINFO;
  2094. TYPE
  2095. PCODEPAGEINFO = SYSTEM.ADDRESS;
  2096. TYPE _CPID = RECORD(*cpid *)
  2097. idCodePage: USHORT;
  2098. Reserved: USHORT;
  2099. END;
  2100. TYPE CPID = _CPID;
  2101. TYPE
  2102. PCPID = SYSTEM.ADDRESS;
  2103. TYPE _LDTADDRINFO = RECORD(*ldtaddr *)
  2104. pulPhysAddr: PULONG;
  2105. cb: USHORT;
  2106. END;
  2107. TYPE LDTADDRINFO = _LDTADDRINFO;
  2108. TYPE
  2109. PLDTADDRINFO = SYSTEM.ADDRESS;
  2110. TYPE _PTRDRAWDATA = RECORD(*ptrdd *)
  2111. cb: USHORT;
  2112. usConfig: USHORT;
  2113. usFlag: USHORT;
  2114. END;
  2115. TYPE PTRDRAWDATA = _PTRDRAWDATA;
  2116. TYPE
  2117. PPTRDRAWDATA = SYSTEM.ADDRESS;
  2118. (*DosPhysicalDisk() physical disk information *)
  2119. CONST INFO_COUNT_PARTITIONABLE_DISKS = 0001H;
  2120. CONST INFO_GETIOCTLHANDLE = 0002H;
  2121. CONST INFO_FREEIOCTLHANDLE = 0003H;
  2122. (*DosDevConfig information requests *)
  2123. CONST DEVINFO_PRINTER = 0000H;
  2124. CONST DEVINFO_RS232 = 0001H;
  2125. CONST DEVINFO_FLOPPY = 0002H;
  2126. CONST DEVINFO_COPROCESSOR = 0003H;
  2127. CONST DEVINFO_SUBMODEL = 0004H;
  2128. CONST DEVINFO_MODEL = 0005H;
  2129. CONST DEVINFO_ADAPTER = 0006H;
  2130. PROCEDURE DOSDEVCONFIG (
  2131. pDevInfo: PVOID;
  2132. usItem: USHORT;
  2133. usReserved: USHORT): USHORT;
  2134. PROCEDURE DOSDEVIOCTL (
  2135. pData: PVOID;
  2136. pParms: PVOID;
  2137. usFun: USHORT;
  2138. usCategory: USHORT;
  2139. hDev: HFILE): USHORT;
  2140. CONST NO_ERROR = 0;
  2141. CONST ERROR_INVALID_FUNCTION = 1;
  2142. CONST ERROR_FILE_NOT_FOUND = 2;
  2143. CONST ERROR_PATH_NOT_FOUND = 3;
  2144. CONST ERROR_TOO_MANY_OPEN_FILES = 4;
  2145. CONST ERROR_ACCESS_DENIED = 5;
  2146. CONST ERROR_INVALID_HANDLE = 6;
  2147. CONST ERROR_ARENA_TRASHED = 7;
  2148. CONST ERROR_NOT_ENOUGH_MEMORY = 8;
  2149. CONST ERROR_INVALID_BLOCK = 9;
  2150. CONST ERROR_BAD_ENVIRONMENT = 10;
  2151. CONST ERROR_BAD_FORMAT = 11;
  2152. CONST ERROR_INVALID_ACCESS = 12;
  2153. CONST ERROR_INVALID_DATA = 13;
  2154. (*14 is reserved *)
  2155. CONST ERROR_INVALID_DRIVE = 15;
  2156. CONST ERROR_CURRENT_DIRECTORY = 16;
  2157. CONST ERROR_NOT_SAME_DEVICE = 17;
  2158. CONST ERROR_NO_MORE_FILES = 18;
  2159. CONST ERROR_WRITE_PROTECT = 19;
  2160. CONST ERROR_BAD_UNIT = 20;
  2161. CONST ERROR_NOT_READY = 21;
  2162. CONST ERROR_BAD_COMMAND = 22;
  2163. CONST ERROR_CRC = 23;
  2164. CONST ERROR_BAD_LENGTH = 24;
  2165. CONST ERROR_SEEK = 25;
  2166. CONST ERROR_NOT_DOS_DISK = 26;
  2167. CONST ERROR_SECTOR_NOT_FOUND = 27;
  2168. CONST ERROR_OUT_OF_PAPER = 28;
  2169. CONST ERROR_WRITE_FAULT = 29;
  2170. CONST ERROR_READ_FAULT = 30;
  2171. CONST ERROR_GEN_FAILURE = 31;
  2172. CONST ERROR_SHARING_VIOLATION = 32;
  2173. CONST ERROR_LOCK_VIOLATION = 33;
  2174. CONST ERROR_WRONG_DISK = 34;
  2175. CONST ERROR_FCB_UNAVAILABLE = 35;
  2176. CONST ERROR_SHARING_BUFFER_EXCEEDED = 36;
  2177. CONST ERROR_NOT_SUPPORTED = 50;
  2178. CONST ERROR_REM_NOT_LIST = 51;
  2179. (*Remote computer not listening *)
  2180. CONST ERROR_DUP_NAME = 52;
  2181. (*Duplicate name on network *)
  2182. CONST ERROR_BAD_NETPATH = 53;
  2183. (*Network path not found *)
  2184. CONST ERROR_NETWORK_BUSY = 54;
  2185. (*Network busy *)
  2186. CONST ERROR_DEV_NOT_EXIST = 55;
  2187. (*Network device no longer exists *)
  2188. CONST ERROR_TOO_MANY_CMDS = 56;
  2189. (*Net BIOS command limit exceeded *)
  2190. CONST ERROR_ADAP_HDW_ERR = 57;
  2191. (*Network adapter hardware error *)
  2192. CONST ERROR_BAD_NET_RESP = 58;
  2193. (*Incorrect response from network *)
  2194. CONST ERROR_UNEXP_NET_ERR = 59;
  2195. (*Unexpected network error *)
  2196. CONST ERROR_BAD_REM_ADAP = 60;
  2197. (*Incompatible remote adapter *)
  2198. CONST ERROR_PRINTQ_FULL = 61;
  2199. (*Print queue full *)
  2200. CONST ERROR_NO_SPOOL_SPACE = 62;
  2201. (*Not enough space for print file *)
  2202. CONST ERROR_PRINT_CANCELLED = 63;
  2203. (*Print file was cancelled *)
  2204. CONST ERROR_NETNAME_DELETED = 64;
  2205. (*Network name was deleted *)
  2206. CONST ERROR_NETWORK_ACCESS_DENIED = 65;
  2207. (*Access denied *)
  2208. CONST ERROR_BAD_DEV_TYPE = 66;
  2209. (*Network device type incorrect *)
  2210. CONST ERROR_BAD_NET_NAME = 67;
  2211. (*Network name not found *)
  2212. CONST ERROR_TOO_MANY_NAMES = 68;
  2213. (*Network name limit exceeded *)
  2214. CONST ERROR_TOO_MANY_SESS = 69;
  2215. (*Net BIOS session limit exceeded *)
  2216. CONST ERROR_SHARING_PAUSED = 70;
  2217. (*Sharing temporarily paused *)
  2218. CONST ERROR_REQ_NOT_ACCEP = 71;
  2219. (*Network request not accepted *)
  2220. CONST ERROR_REDIR_PAUSED = 72;
  2221. (*Print|disk redirection is paused*)
  2222. CONST ERROR_FILE_EXISTS = 80;
  2223. CONST ERROR_DUP_FCB = 81;
  2224. CONST ERROR_CANNOT_MAKE = 82;
  2225. CONST ERROR_FAIL_I24 = 83;
  2226. CONST ERROR_OUT_OF_STRUCTURES = 84;
  2227. CONST ERROR_ALREADY_ASSIGNED = 85;
  2228. CONST ERROR_INVALID_PASSWORD = 86;
  2229. CONST ERROR_INVALID_PARAMETER = 87;
  2230. CONST ERROR_NET_WRITE_FAULT = 88;
  2231. CONST ERROR_NO_PROC_SLOTS = 89;
  2232. (*no process slots available *)
  2233. CONST ERROR_NOT_FROZEN = 90;
  2234. CONST ERR_TSTOVFL = 91;
  2235. (*timer service table overflow *)
  2236. CONST ERR_TSTDUP = 92;
  2237. (*timer service table duplicate *)
  2238. CONST ERROR_NO_ITEMS = 93;
  2239. (*no items to operate upon *)
  2240. CONST ERROR_INTERRUPT = 95;
  2241. (*interrupted system call *)
  2242. CONST ERROR_DEVICE_IN_USE = 99;
  2243. (*Device in use by another thread *)
  2244. CONST ERROR_TOO_MANY_SEMAPHORES = 100;
  2245. CONST ERROR_EXCL_SEM_ALREADY_OWNED = 101;
  2246. CONST ERROR_SEM_IS_SET = 102;
  2247. CONST ERROR_TOO_MANY_SEM_REQUESTS = 103;
  2248. CONST ERROR_INVALID_AT_INTERRUPT_TIME = 104;
  2249. CONST ERROR_SEM_OWNER_DIED = 105;
  2250. (*waitsem found owner died *)
  2251. CONST ERROR_SEM_USER_LIMIT = 106;
  2252. (*too many procs have this sem *)
  2253. CONST ERROR_DISK_CHANGE = 107;
  2254. CONST ERROR_DRIVE_LOCKED = 108;
  2255. (*drive locked by another process*)
  2256. CONST ERROR_BROKEN_PIPE = 109;
  2257. (*write on pipe with no reader *)
  2258. CONST ERROR_OPEN_FAILED = 110;
  2259. (*open/created failed due to *)
  2260. (*explicit fail command *)
  2261. CONST ERROR_BUFFER_OVERFLOW = 111;
  2262. (*buffer passed to system call *)
  2263. (*is too small to hold return *)
  2264. (*data. *)
  2265. CONST ERROR_DISK_FULL = 112;
  2266. (*not enough space on the disk *)
  2267. (*(DOSNEWSIZE/w_NewSize) *)
  2268. CONST ERROR_NO_MORE_SEARCH_HANDLES = 113;
  2269. (*can't allocate another search *)
  2270. (*structure and handle. *)
  2271. (*(DOSFINDFIRST/w_FindFirst) *)
  2272. CONST ERROR_INVALID_TARGET_HANDLE = 114;
  2273. (*Target handle in DOSDUPHANDLE *)
  2274. (*is invalid *)
  2275. CONST ERROR_PROTECTION_VIOLATION = 115;
  2276. (*Bad user virtual address *)
  2277. CONST ERROR_VIOKBD_REQUEST = 116;
  2278. CONST ERROR_INVALID_CATEGORY = 117;
  2279. (*Category for DEVIOCTL in not *)
  2280. (*defined *)
  2281. CONST ERROR_INVALID_VERIFY_SWITCH = 118;
  2282. (*invalid value passed for *)
  2283. (*verify flag *)
  2284. CONST ERROR_BAD_DRIVER_LEVEL = 119;
  2285. (*DosDevIOCTL looks for a level *)
  2286. (*four driver. If the driver *)
  2287. (*is not level four we return *)
  2288. (*this code *)
  2289. CONST ERROR_CALL_NOT_IMPLEMENTED = 120;
  2290. (*returned from stub api calls. *)
  2291. (*This call will disappear when *)
  2292. (*all the api's are implemented. *)
  2293. CONST ERROR_SEM_TIMEOUT = 121;
  2294. (*Time out happened from the *)
  2295. (*semaphore api functions. *)
  2296. CONST ERROR_INSUFFICIENT_BUFFER = 122;
  2297. (*Some calls require the *)
  2298. (*application to pass in a buffer *)
  2299. (*filled with data. This error is *)
  2300. (*returned if the data buffer is too *)
  2301. (*small. For example: DosSetFileInfo *)
  2302. (*requires 4 bytes of data. If a *)
  2303. (*two byte buffer is passed in then *)
  2304. (* this error is returned. *)
  2305. (* error_buffer_overflow is used when *)
  2306. (* the output buffer is not big enough.*)
  2307. CONST ERROR_INVALID_NAME = 123;
  2308. (*illegal character or malformed *)
  2309. (*file system name *)
  2310. CONST ERROR_INVALID_LEVEL = 124;
  2311. (*unimplemented level for info *)
  2312. (*retrieval or setting *)
  2313. CONST ERROR_NO_VOLUME_LABEL = 125;
  2314. (*no volume label found with *)
  2315. (*DosQFSInfo command *)
  2316. CONST ERROR_MOD_NOT_FOUND = 126;
  2317. (*w_getprocaddr,w_getmodhandle *)
  2318. CONST ERROR_PROC_NOT_FOUND = 127;
  2319. (*w_getprocaddr *)
  2320. CONST ERROR_WAIT_NO_CHILDREN = 128;
  2321. (*CWait finds to children *)
  2322. CONST ERROR_CHILD_NOT_COMPLETE = 129;
  2323. (*CWait children not dead yet *)
  2324. CONST ERROR_DIRECT_ACCESS_HANDLE = 130;
  2325. (*handle operation is invalid *)
  2326. (*for direct disk access *)
  2327. (*handles *)
  2328. CONST ERROR_NEGATIVE_SEEK = 131;
  2329. (*application tried to seek *)
  2330. (*with negitive offset *)
  2331. CONST ERROR_SEEK_ON_DEVICE = 132;
  2332. (*application tried to seek *)
  2333. (*on device or pipe *)
  2334. CONST ERROR_IS_JOIN_TARGET = 133;
  2335. CONST ERROR_IS_JOINED = 134;
  2336. CONST ERROR_IS_SUBSTED = 135;
  2337. CONST ERROR_NOT_JOINED = 136;
  2338. CONST ERROR_NOT_SUBSTED = 137;
  2339. CONST ERROR_JOIN_TO_JOIN = 138;
  2340. CONST ERROR_SUBST_TO_SUBST = 139;
  2341. CONST ERROR_JOIN_TO_SUBST = 140;
  2342. CONST ERROR_SUBST_TO_JOIN = 141;
  2343. CONST ERROR_BUSY_DRIVE = 142;
  2344. CONST ERROR_SAME_DRIVE = 143;
  2345. CONST ERROR_DIR_NOT_ROOT = 144;
  2346. CONST ERROR_DIR_NOT_EMPTY = 145;
  2347. CONST ERROR_IS_SUBST_PATH = 146;
  2348. CONST ERROR_IS_JOIN_PATH = 147;
  2349. CONST ERROR_PATH_BUSY = 148;
  2350. CONST ERROR_IS_SUBST_TARGET = 149;
  2351. CONST ERROR_SYSTEM_TRACE = 150;
  2352. (*system trace error *)
  2353. CONST ERROR_INVALID_EVENT_COUNT = 151;
  2354. (*DosMuxSemWait errors *)
  2355. CONST ERROR_TOO_MANY_MUXWAITERS = 152;
  2356. CONST ERROR_INVALID_LIST_FORMAT = 153;
  2357. CONST ERROR_LABEL_TOO_LONG = 154;
  2358. CONST ERROR_TOO_MANY_TCBS = 155;
  2359. CONST ERROR_SIGNAL_REFUSED = 156;
  2360. CONST ERROR_DISCARDED = 157;
  2361. CONST ERROR_NOT_LOCKED = 158;
  2362. CONST ERROR_BAD_THREADID_ADDR = 159;
  2363. CONST ERROR_BAD_ARGUMENTS = 160;
  2364. CONST ERROR_BAD_PATHNAME = 161;
  2365. CONST ERROR_SIGNAL_PENDING = 162;
  2366. CONST ERROR_UNCERTAIN_MEDIA = 163;
  2367. CONST ERROR_MAX_THRDS_REACHED = 164;
  2368. CONST ERROR_MONITORS_NOT_SUPPORTED = 165;
  2369. CONST ERROR_UNC_DRIVER_NOT_INSTALLED = 166;
  2370. (* The following error codes refer to demand loading segments *)
  2371. CONST ERROR_LOCK_FAILED = 167;
  2372. CONST ERROR_SWAPIO_FAILED = 168;
  2373. CONST ERROR_SWAPIN_FAILED = 169;
  2374. CONST ERROR_BUSY = 170;
  2375. CONST ERROR_INVALID_SEGMENT_NUMBER = 180;
  2376. CONST ERROR_INVALID_CALLGATE = 181;
  2377. CONST ERROR_INVALID_ORDINAL = 182;
  2378. CONST ERROR_ALREADY_EXISTS = 183;
  2379. CONST ERROR_NO_CHILD_PROCESS = 184;
  2380. CONST ERROR_CHILD_ALIVE_NOWAIT = 185;
  2381. CONST ERROR_INVALID_FLAG_NUMBER = 186;
  2382. CONST ERROR_SEM_NOT_FOUND = 187;
  2383. (*following error codes make loader error messages distinct *)
  2384. CONST ERROR_INVALID_STARTING_CODESEG = 188;
  2385. CONST ERROR_INVALID_STACKSEG = 189;
  2386. CONST ERROR_INVALID_MODULETYPE = 190;
  2387. CONST ERROR_INVALID_EXE_SIGNATURE = 191;
  2388. CONST ERROR_EXE_MARKED_INVALID = 192;
  2389. CONST ERROR_BAD_EXE_FORMAT = 193;
  2390. CONST ERROR_ITERATED_DATA_EXCEEDS_64K = 194;
  2391. CONST ERROR_INVALID_MINALLOCSIZE = 195;
  2392. CONST ERROR_DYNLINK_FROM_INVALID_RING = 196;
  2393. CONST ERROR_IOPL_NOT_ENABLED = 197;
  2394. CONST ERROR_INVALID_SEGDPL = 198;
  2395. CONST ERROR_AUTODATASEG_EXCEEDS_64k = 199;
  2396. CONST ERROR_RING2SEG_MUST_BE_MOVABLE = 200;
  2397. CONST ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201;
  2398. CONST ERROR_INFLOOP_IN_RELOC_CHAIN = 202;
  2399. CONST ERROR_ENVVAR_NOT_FOUND = 203;
  2400. CONST ERROR_NOT_CURRENT_CTRY = 204;
  2401. CONST ERROR_NO_SIGNAL_SENT = 205;
  2402. CONST ERROR_FILENAME_EXCED_RANGE = 206;
  2403. (*if filename > 8.3 *)
  2404. CONST ERROR_RING2_STACK_IN_USE = 207;
  2405. (*for FAPI *)
  2406. CONST ERROR_META_EXPANSION_TOO_LONG = 208;
  2407. (*if "*a" > 8.3 *)
  2408. CONST ERROR_INVALID_SIGNAL_NUMBER = 209;
  2409. CONST ERROR_THREAD_1_INACTIVE = 210;
  2410. CONST ERROR_INFO_NOT_AVAIL = 211;
  2411. CONST ERROR_LOCKED = 212;
  2412. CONST ERROR_BAD_DYNALINK = 213;
  2413. CONST ERROR_TOO_MANY_MODULES = 214;
  2414. CONST ERROR_NESTING_NOT_ALLOWED = 215;
  2415. CONST ERROR_CANNOT_SHRINK = 216;
  2416. (*attempt to shrink ring 2 stack *)
  2417. CONST ERROR_ZOMBIE_PROCESS = 217;
  2418. CONST ERROR_STACK_IN_HIGH_MEMORY = 218;
  2419. CONST ERROR_INVALID_EXITROUTINE_RING = 219;
  2420. CONST ERROR_GETBUF_FAILED = 220;
  2421. CONST ERROR_FLUSHBUF_FAILED = 221;
  2422. CONST ERROR_TRANSFER_TOO_LONG = 222;
  2423. CONST ERROR_NO_CHILDREN = 228;
  2424. CONST ERROR_INVALID_SCREEN_GROUP = 229;
  2425. (*
  2426. * Error codes 230 - 249 are reserved
  2427. *)
  2428. CONST ERROR_BAD_PIPE = 230;
  2429. (*Non-existant pipe or bad operation *)
  2430. CONST ERROR_PIPE_BUSY = 231;
  2431. (*Pipe is busy *)
  2432. CONST ERROR_NO_DATA = 232;
  2433. (*No data on non-blocking read *)
  2434. CONST ERROR_PIPE_NOT_CONNECTED = 233;
  2435. (*Pipe was disconnected by server*)
  2436. CONST ERROR_MORE_DATA = 234;
  2437. (*More data is available *)
  2438. CONST ERROR_VC_DISCONNECTED = 240;
  2439. CONST ERROR_CIRCULARITY_REQUESTED = 250;
  2440. (*When renaming a dir which *)
  2441. (*would cause a circularity *)
  2442. CONST ERROR_DIRECTORY_IN_CDS = 251;
  2443. (*When renaming a dir *)
  2444. (*which is "in use" *)
  2445. CONST ERROR_INVALID_FSD_NAME = 252;
  2446. (*when trying to access *)
  2447. (*nonexistent FSD *)
  2448. CONST ERROR_INVALID_PATH = 253;
  2449. (*bad pseudo device *)
  2450. CONST ERROR_INVALID_EA_NAME = 254;
  2451. (*Illegal chars in name *)
  2452. CONST ERROR_EA_LIST_INCONSISTENT = 255;
  2453. (*Size or some field bad *)
  2454. CONST ERROR_EA_LIST_TOO_LONG = 256;
  2455. (*FEAlist > 64K-1 bytes *)
  2456. CONST ERROR_NO_META_MATCH = 257;
  2457. (*string doesn't match expression*)
  2458. CONST ERROR_FINDNOTIFY_TIMEOUT = 258;
  2459. (*FindNotify request timeout *)
  2460. CONST ERROR_NO_MORE_ITEMS = 259;
  2461. (*QFSAttach ordinal query *)
  2462. CONST ERROR_SEARCH_STRUC_REUSED = 260;
  2463. (*3xbox findfirst/next search structure reused *)
  2464. CONST ERROR_CHAR_NOT_FOUND = 261;
  2465. (*can not find character *)
  2466. CONST ERROR_TOO_MUCH_STACK = 262;
  2467. (*Stack request exceeds sys limit*)
  2468. CONST ERROR_INVALID_ATTR = 263;
  2469. (*invalid FS_ATTRIBUTE *)
  2470. CONST ERROR_INVALID_STARTING_RING = 264;
  2471. CONST ERROR_INVALID_DLL_INIT_RING = 265;
  2472. CONST ERROR_CANNOT_COPY = 266;
  2473. (*doscopy *)
  2474. CONST ERROR_DIRECTORY = 267;
  2475. (*doscopy *)
  2476. CONST ERROR_OPLOCKED_FILE = 268;
  2477. CONST ERROR_OPLOCK_THREAD_EXISTS = 269;
  2478. (*error codes for DosFindNotify *)
  2479. CONST ERROR_VOLUME_CHANGED = 270;
  2480. CONST ERROR_FINDNOTIFY_HANDLE_IN_USE = 271;
  2481. CONST ERROR_FINDNOTIFY_HANDLE_CLOSED = 272;
  2482. CONST ERROR_NOTIFY_OBJECT_REMOVED = 273;
  2483. (*Error to indicate that ShutDown already done *)
  2484. CONST ERROR_ALREADY_SHUTDOWN = 274;
  2485. (*error code for DOSFINDFIRST2/NEXT *)
  2486. CONST ERROR_EAS_DIDNT_FIT = 275;
  2487. (*error codes for EA file format change *)
  2488. CONST ERROR_EA_FILE_CORRUPT = 276;
  2489. CONST ERROR_EA_TABLE_FULL = 277;
  2490. CONST ERROR_INVALID_EA_HANDLE = 278;
  2491. CONST ERROR_NO_CLUSTER = 279;
  2492. CONST ERROR_CREATE_EA_FILE = 280;
  2493. CONST ERROR_CANNOT_OPEN_EA_FILE = 281;
  2494. CONST ERROR_INVALID_PROCID = 303;
  2495. CONST ERROR_INVALID_PDELTA = 304;
  2496. CONST ERROR_NOT_DESCENDANT = 305;
  2497. CONST ERROR_NOT_SESSION_MANAGER = 306;
  2498. CONST ERROR_INVALID_PCLASS = 307;
  2499. CONST ERROR_INVALID_SCOPE = 308;
  2500. CONST ERROR_INVALID_THREADID = 309;
  2501. CONST ERROR_DOSSUB_SHRINK = 310;
  2502. CONST ERROR_DOSSUB_NOMEM = 311;
  2503. CONST ERROR_DOSSUB_OVERLAP = 312;
  2504. CONST ERROR_DOSSUB_BADSIZE = 313;
  2505. CONST ERROR_DOSSUB_BADFLAG = 314;
  2506. CONST ERROR_DOSSUB_BADSELECTOR = 315;
  2507. CONST ERROR_MR_MSG_TOO_LONG = 316;
  2508. CONST ERROR_MR_MID_NOT_FOUND = 317;
  2509. CONST ERROR_MR_UN_ACC_MSGF = 318;
  2510. CONST ERROR_MR_INV_MSGF_FORMAT = 319;
  2511. CONST ERROR_MR_INV_IVCOUNT = 320;
  2512. CONST ERROR_MR_UN_PERFORM = 321;
  2513. CONST ERROR_TS_WAKEUP = 322;
  2514. CONST ERROR_TS_SEMHANDLE = 323;
  2515. CONST ERROR_TS_NOTIMER = 324;
  2516. CONST ERROR_TS_HANDLE = 326;
  2517. CONST ERROR_TS_DATETIME = 327;
  2518. CONST ERROR_SYS_INTERNAL = 328;
  2519. CONST ERROR_QUE_CURRENT_NAME = 329;
  2520. CONST ERROR_QUE_PROC_NOT_OWNED = 330;
  2521. CONST ERROR_QUE_PROC_OWNED = 331;
  2522. CONST ERROR_QUE_DUPLICATE = 332;
  2523. CONST ERROR_QUE_ELEMENT_NOT_EXIST = 333;
  2524. CONST ERROR_QUE_NO_MEMORY = 334;
  2525. CONST ERROR_QUE_INVALID_NAME = 335;
  2526. CONST ERROR_QUE_INVALID_PRIORITY = 336;
  2527. CONST ERROR_QUE_INVALID_HANDLE = 337;
  2528. CONST ERROR_QUE_LINK_NOT_FOUND = 338;
  2529. CONST ERROR_QUE_MEMORY_ERROR = 339;
  2530. CONST ERROR_QUE_PREV_AT_END = 340;
  2531. CONST ERROR_QUE_PROC_NO_ACCESS = 341;
  2532. CONST ERROR_QUE_EMPTY = 342;
  2533. CONST ERROR_QUE_NAME_NOT_EXIST = 343;
  2534. CONST ERROR_QUE_NOT_INITIALIZED = 344;
  2535. CONST ERROR_QUE_UNABLE_TO_ACCESS = 345;
  2536. CONST ERROR_QUE_UNABLE_TO_ADD = 346;
  2537. CONST ERROR_QUE_UNABLE_TO_INIT = 347;
  2538. CONST ERROR_VIO_INVALID_MASK = 349;
  2539. CONST ERROR_VIO_PTR = 350;
  2540. CONST ERROR_VIO_APTR = 351;
  2541. CONST ERROR_VIO_RPTR = 352;
  2542. CONST ERROR_VIO_CPTR = 353;
  2543. CONST ERROR_VIO_LPTR = 354;
  2544. CONST ERROR_VIO_MODE = 355;
  2545. CONST ERROR_VIO_WIDTH = 356;
  2546. CONST ERROR_VIO_ATTR = 357;
  2547. CONST ERROR_VIO_ROW = 358;
  2548. CONST ERROR_VIO_COL = 359;
  2549. CONST ERROR_VIO_TOPROW = 360;
  2550. CONST ERROR_VIO_BOTROW = 361;
  2551. CONST ERROR_VIO_RIGHTCOL = 362;
  2552. CONST ERROR_VIO_LEFTCOL = 363;
  2553. CONST ERROR_SCS_CALL = 364;
  2554. CONST ERROR_SCS_VALUE = 365;
  2555. CONST ERROR_VIO_WAIT_FLAG = 366;
  2556. CONST ERROR_VIO_UNLOCK = 367;
  2557. CONST ERROR_SGS_NOT_SESSION_MGR = 368;
  2558. CONST ERROR_SMG_INVALID_SGID = 369;
  2559. CONST ERROR_SMG_INVALID_SESSION_ID = 369;
  2560. CONST ERROR_SMG_NOSG = 370;
  2561. CONST ERROR_SMG_NO_SESSIONS = 370;
  2562. CONST ERROR_SMG_GRP_NOT_FOUND = 371;
  2563. CONST ERROR_SMG_SESSION_NOT_FOUND = 371;
  2564. CONST ERROR_SMG_SET_TITLE = 372;
  2565. CONST ERROR_KBD_PARAMETER = 373;
  2566. CONST ERROR_KBD_NO_DEVICE = 374;
  2567. CONST ERROR_KBD_INVALID_IOWAIT = 375;
  2568. CONST ERROR_KBD_INVALID_LENGTH = 376;
  2569. CONST ERROR_KBD_INVALID_ECHO_MASK = 377;
  2570. CONST ERROR_KBD_INVALID_INPUT_MASK = 378;
  2571. CONST ERROR_MON_INVALID_PARMS = 379;
  2572. CONST ERROR_MON_INVALID_DEVNAME = 380;
  2573. CONST ERROR_MON_INVALID_HANDLE = 381;
  2574. CONST ERROR_MON_BUFFER_TOO_SMALL = 382;
  2575. CONST ERROR_MON_BUFFER_EMPTY = 383;
  2576. CONST ERROR_MON_DATA_TOO_LARGE = 384;
  2577. CONST ERROR_MOUSE_NO_DEVICE = 385;
  2578. CONST ERROR_MOUSE_INV_HANDLE = 386;
  2579. CONST ERROR_MOUSE_INV_PARMS = 387;
  2580. CONST ERROR_MOUSE_CANT_RESET = 388;
  2581. CONST ERROR_MOUSE_DISPLAY_PARMS = 389;
  2582. CONST ERROR_MOUSE_INV_MODULE = 390;
  2583. CONST ERROR_MOUSE_INV_ENTRY_PT = 391;
  2584. CONST ERROR_MOUSE_INV_MASK = 392;
  2585. CONST NO_ERROR_MOUSE_NO_DATA = 393;
  2586. CONST NO_ERROR_MOUSE_PTR_DRAWN = 394;
  2587. CONST ERROR_INVALID_FREQUENCY = 395;
  2588. CONST ERROR_NLS_NO_COUNTRY_FILE = 396;
  2589. CONST ERROR_NLS_OPEN_FAILED = 397;
  2590. CONST ERROR_NLS_NO_CTRY_CODE = 398;
  2591. CONST ERROR_NO_COUNTRY_OR_CODEPAGE = 398;
  2592. CONST ERROR_NLS_TABLE_TRUNCATED = 399;
  2593. CONST ERROR_NLS_BAD_TYPE = 400;
  2594. CONST ERROR_NLS_TYPE_NOT_FOUND = 401;
  2595. CONST ERROR_VIO_SMG_ONLY = 402;
  2596. CONST ERROR_VIO_INVALID_ASCIIZ = 403;
  2597. CONST ERROR_VIO_DEREGISTER = 404;
  2598. CONST ERROR_VIO_NO_POPUP = 405;
  2599. CONST ERROR_VIO_EXISTING_POPUP = 406;
  2600. CONST ERROR_KBD_SMG_ONLY = 407;
  2601. CONST ERROR_KBD_INVALID_ASCIIZ = 408;
  2602. CONST ERROR_KBD_INVALID_MASK = 409;
  2603. CONST ERROR_KBD_REGISTER = 410;
  2604. CONST ERROR_KBD_DEREGISTER = 411;
  2605. CONST ERROR_MOUSE_SMG_ONLY = 412;
  2606. CONST ERROR_MOUSE_INVALID_ASCIIZ = 413;
  2607. CONST ERROR_MOUSE_INVALID_MASK = 414;
  2608. CONST ERROR_MOUSE_REGISTER = 415;
  2609. CONST ERROR_MOUSE_DEREGISTER = 416;
  2610. CONST ERROR_SMG_BAD_ACTION = 417;
  2611. CONST ERROR_SMG_INVALID_CALL = 418;
  2612. CONST ERROR_SCS_SG_NOTFOUND = 419;
  2613. CONST ERROR_SCS_NOT_SHELL = 420;
  2614. CONST ERROR_VIO_INVALID_PARMS = 421;
  2615. CONST ERROR_VIO_FUNCTION_OWNED = 422;
  2616. CONST ERROR_VIO_RETURN = 423;
  2617. CONST ERROR_SCS_INVALID_FUNCTION = 424;
  2618. CONST ERROR_SCS_NOT_SESSION_MGR = 425;
  2619. CONST ERROR_VIO_REGISTER = 426;
  2620. CONST ERROR_VIO_NO_MODE_THREAD = 427;
  2621. CONST ERROR_VIO_NO_SAVE_RESTORE_THD = 428;
  2622. CONST ERROR_VIO_IN_BG = 429;
  2623. CONST ERROR_VIO_ILLEGAL_DURING_POPUP = 430;
  2624. CONST ERROR_SMG_NOT_BASESHELL = 431;
  2625. CONST ERROR_SMG_BAD_STATUSREQ = 432;
  2626. CONST ERROR_QUE_INVALID_WAIT = 433;
  2627. CONST ERROR_VIO_LOCK = 434;
  2628. CONST ERROR_MOUSE_INVALID_IOWAIT = 435;
  2629. CONST ERROR_VIO_INVALID_HANDLE = 436;
  2630. CONST ERROR_VIO_ILLEGAL_DURING_LOCK = 437;
  2631. CONST ERROR_VIO_INVALID_LENGTH = 438;
  2632. CONST ERROR_KBD_INVALID_HANDLE = 439;
  2633. CONST ERROR_KBD_NO_MORE_HANDLE = 440;
  2634. CONST ERROR_KBD_CANNOT_CREATE_KCB = 441;
  2635. CONST ERROR_KBD_CODEPAGE_LOAD_INCOMPL = 442;
  2636. CONST ERROR_KBD_INVALID_CODEPAGE_ID = 443;
  2637. CONST ERROR_KBD_NO_CODEPAGE_SUPPORT = 444;
  2638. CONST ERROR_KBD_FOCUS_REQUIRED = 445;
  2639. CONST ERROR_KBD_FOCUS_ALREADY_ACTIVE = 446;
  2640. CONST ERROR_KBD_KEYBOARD_BUSY = 447;
  2641. CONST ERROR_KBD_INVALID_CODEPAGE = 448;
  2642. CONST ERROR_KBD_UNABLE_TO_FOCUS = 449;
  2643. CONST ERROR_SMG_SESSION_NON_SELECT = 450;
  2644. CONST ERROR_SMG_SESSION_NOT_FOREGRND = 451;
  2645. CONST ERROR_SMG_SESSION_NOT_PARENT = 452;
  2646. CONST ERROR_SMG_INVALID_START_MODE = 453;
  2647. CONST ERROR_SMG_INVALID_RELATED_OPT = 454;
  2648. CONST ERROR_SMG_INVALID_BOND_OPTION = 455;
  2649. CONST ERROR_SMG_INVALID_SELECT_OPT = 456;
  2650. CONST ERROR_SMG_START_IN_BACKGROUND = 457;
  2651. CONST ERROR_SMG_INVALID_STOP_OPTION = 458;
  2652. CONST ERROR_SMG_BAD_RESERVE = 459;
  2653. CONST ERROR_SMG_PROCESS_NOT_PARENT = 460;
  2654. CONST ERROR_SMG_INVALID_DATA_LENGTH = 461;
  2655. CONST ERROR_SMG_NOT_BOUND = 462;
  2656. CONST ERROR_SMG_RETRY_SUB_ALLOC = 463;
  2657. CONST ERROR_KBD_DETACHED = 464;
  2658. CONST ERROR_VIO_DETACHED = 465;
  2659. CONST ERROR_MOU_DETACHED = 466;
  2660. CONST ERROR_VIO_FONT = 467;
  2661. CONST ERROR_VIO_USER_FONT = 468;
  2662. CONST ERROR_VIO_BAD_CP = 469;
  2663. CONST ERROR_VIO_NO_CP = 470;
  2664. CONST ERROR_VIO_NA_CP = 471;
  2665. CONST ERROR_INVALID_CODE_PAGE = 472;
  2666. CONST ERROR_CPLIST_TOO_SMALL = 473;
  2667. CONST ERROR_CP_NOT_MOVED = 474;
  2668. CONST ERROR_MODE_SWITCH_INIT = 475;
  2669. CONST ERROR_CODE_PAGE_NOT_FOUND = 476;
  2670. CONST ERROR_UNEXPECTED_SLOT_RETURNED = 477;
  2671. CONST ERROR_SMG_INVALID_TRACE_OPTION = 478;
  2672. CONST ERROR_VIO_INTERNAL_RESOURCE = 479;
  2673. CONST ERROR_VIO_SHELL_INIT = 480;
  2674. CONST ERROR_SMG_NO_HARD_ERRORS = 481;
  2675. CONST ERROR_CP_SWITCH_INCOMPLETE = 482;
  2676. CONST ERROR_VIO_TRANSPARENT_POPUP = 483;
  2677. CONST ERROR_CRITSEC_OVERFLOW = 484;
  2678. CONST ERROR_CRITSEC_UNDERFLOW = 485;
  2679. CONST ERROR_VIO_BAD_RESERVE = 486;
  2680. CONST ERROR_INVALID_ADDRESS = 487;
  2681. CONST ERROR_ZERO_SELECTORS_REQUESTED = 488;
  2682. CONST ERROR_NOT_ENOUGH_SELECTORS_AVA = 489;
  2683. CONST ERROR_INVALID_SELECTOR = 490;
  2684. CONST ERROR_SMG_INVALID_PROGRAM_TYPE = 491;
  2685. CONST ERROR_SMG_INVALID_PGM_CONTROL = 492;
  2686. CONST ERROR_SMG_INVALID_INHERIT_OPT = 493;
  2687. CONST ERROR_VIO_EXTENDED_SG = 494;
  2688. CONST ERROR_VIO_NOT_PRES_MGR_SG = 495;
  2689. CONST ERROR_VIO_SHIELD_OWNED = 496;
  2690. CONST ERROR_VIO_NO_MORE_HANDLES = 497;
  2691. CONST ERROR_VIO_SEE_ERROR_LOG = 498;
  2692. CONST ERROR_VIO_ASSOCIATED_DC = 499;
  2693. CONST ERROR_KBD_NO_CONSOLE = 500;
  2694. CONST ERROR_MOUSE_NO_CONSOLE = 501;
  2695. CONST ERROR_MOUSE_INVALID_HANDLE = 502;
  2696. CONST ERROR_SMG_INVALID_DEBUG_PARMS = 503;
  2697. CONST ERROR_KBD_EXTENDED_SG = 504;
  2698. CONST ERROR_MOU_EXTENDED_SG = 505;
  2699. CONST ERROR_SMG_INVALID_ICON_FILE = 506;
  2700. CONST ERROR_USER_DEFINED_BASE = 0FF00H;
  2701. CONST ERROR_I24_WRITE_PROTECT = 0;
  2702. CONST ERROR_I24_BAD_UNIT = 1;
  2703. CONST ERROR_I24_NOT_READY = 2;
  2704. CONST ERROR_I24_BAD_COMMAND = 3;
  2705. CONST ERROR_I24_CRC = 4;
  2706. CONST ERROR_I24_BAD_LENGTH = 5;
  2707. CONST ERROR_I24_SEEK = 6;
  2708. CONST ERROR_I24_NOT_DOS_DISK = 7;
  2709. CONST ERROR_I24_SECTOR_NOT_FOUND = 8;
  2710. CONST ERROR_I24_OUT_OF_PAPER = 9;
  2711. CONST ERROR_I24_WRITE_FAULT = 10;
  2712. CONST ERROR_I24_READ_FAULT = 11;
  2713. CONST ERROR_I24_GEN_FAILURE = 12;
  2714. CONST ERROR_I24_DISK_CHANGE = 13;
  2715. CONST ERROR_I24_WRONG_DISK = 15;
  2716. CONST ERROR_I24_UNCERTAIN_MEDIA = 16;
  2717. CONST ERROR_I24_CHAR_CALL_INTERRUPTED = 17;
  2718. CONST ERROR_I24_NO_MONITOR_SUPPORT = 18;
  2719. CONST ERROR_I24_INVALID_PARAMETER = 19;
  2720. CONST ERROR_I24_DEVICE_IN_USE = 20;
  2721. CONST ALLOWED_FAIL = 0001H;
  2722. CONST ALLOWED_ABORT = 0002H;
  2723. CONST ALLOWED_RETRY = 0004H;
  2724. CONST ALLOWED_IGNORE = 0008H;
  2725. CONST ALLOWED_ACKNOWLEDGE = 0010H;
  2726. CONST ALLOWED_DISPATCH = 8000H;
  2727. CONST I24_OPERATION = 01H;
  2728. CONST I24_AREA = 06H;
  2729. CONST I24_CLASS = 80H;
  2730. (*Values for error CLASS *)
  2731. CONST ERRCLASS_OUTRES = 1;
  2732. (*Out of Resource *)
  2733. CONST ERRCLASS_TEMPSIT = 2;
  2734. (*Temporary Situation *)
  2735. CONST ERRCLASS_AUTH = 3;
  2736. (*Permission problem *)
  2737. CONST ERRCLASS_INTRN = 4;
  2738. (*Internal System Error *)
  2739. CONST ERRCLASS_HRDFAIL = 5;
  2740. (*Hardware Failure *)
  2741. CONST ERRCLASS_SYSFAIL = 6;
  2742. (*System Failure *)
  2743. CONST ERRCLASS_APPERR = 7;
  2744. (*Application Error *)
  2745. CONST ERRCLASS_NOTFND = 8;
  2746. (*Not Found *)
  2747. CONST ERRCLASS_BADFMT = 9;
  2748. (*Bad Format *)
  2749. CONST ERRCLASS_LOCKED = 10;
  2750. (*Locked *)
  2751. CONST ERRCLASS_MEDIA = 11;
  2752. (*Media Failure *)
  2753. CONST ERRCLASS_ALREADY = 12;
  2754. (*Collision with Existing Item *)
  2755. CONST ERRCLASS_UNK = 13;
  2756. (*Unknown/other *)
  2757. CONST ERRCLASS_CANT = 14;
  2758. CONST ERRCLASS_TIME = 15;
  2759. (*Values for error ACTION *)
  2760. CONST ERRACT_RETRY = 1;
  2761. (*Retry *)
  2762. CONST ERRACT_DLYRET = 2;
  2763. (*Delay Retry, retry after pause *)
  2764. CONST ERRACT_USER = 3;
  2765. (*Ask user to regive information *)
  2766. CONST ERRACT_ABORT = 4;
  2767. (*abort with clean up *)
  2768. CONST ERRACT_PANIC = 5;
  2769. (*abort immediately *)
  2770. CONST ERRACT_IGNORE = 6;
  2771. (*ignore *)
  2772. CONST ERRACT_INTRET = 7;
  2773. (*Retry after User Intervention *)
  2774. (*Values for error LOCUS *)
  2775. CONST ERRLOC_UNK = 1;
  2776. (*No appropriate value *)
  2777. CONST ERRLOC_DISK = 2;
  2778. (*Random Access Mass Storage *)
  2779. CONST ERRLOC_NET = 3;
  2780. (*Network *)
  2781. CONST ERRLOC_SERDEV = 4;
  2782. (*Serial Device *)
  2783. CONST ERRLOC_MEM = 5;
  2784. (*Memory *)
  2785. (*Abnormal termination codes *)
  2786. CONST TC_NORMAL = 0;
  2787. CONST TC_HARDERR = 1;
  2788. CONST TC_GP_TRAP = 2;
  2789. CONST TC_SIGNAL = 3;
  2790. CONST ERROR_SWAPPER_NOT_ACTIVE = 32768;
  2791. CONST ERROR_INVALID_SWAPID = 32769;
  2792. CONST ERROR_IOERR_SWAP_FILE = 32770;
  2793. CONST ERROR_SWAP_TABLE_FULL = 32771;
  2794. CONST ERROR_SWAP_FILE_FULL = 32772;
  2795. CONST ERROR_CANT_INIT_SWAPPER = 32773;
  2796. CONST ERROR_SWAPPER_ALREADY_INIT = 32774;
  2797. CONST ERROR_PMM_INSUFFICIENT_MEMORY = 32775;
  2798. CONST ERROR_PMM_INVALID_FLAGS = 32776;
  2799. CONST ERROR_PMM_INVALID_ADDRESS = 32777;
  2800. CONST ERROR_PMM_LOCK_FAILED = 32778;
  2801. CONST ERROR_PMM_UNLOCK_FAILED = 32779;
  2802. CONST ERROR_PMM_MOVE_INCOMPLETE = 32780;
  2803. CONST ERROR_UCOM_DRIVE_RENAMED = 32781;
  2804. CONST ERROR_UCOM_FILENAME_TRUNCATED = 32782;
  2805. CONST ERROR_UCOM_BUFFER_LENGTH = 32783;
  2806. CONST ERROR_MON_CHAIN_HANDLE = 32784;
  2807. CONST ERROR_MON_NOT_REGISTERED = 32785;
  2808. CONST ERROR_SMG_ALREADY_TOP = 32786;
  2809. CONST ERROR_PMM_ARENA_MODIFIED = 32787;
  2810. CONST ERROR_SMG_PRINTER_OPEN = 32788;
  2811. CONST ERROR_PMM_SET_FLAGS_FAILED = 32789;
  2812. CONST ERROR_INVALID_DOS_DD = 32790;
  2813. CONST ERROR_CPSIO_CODE_PAGE_INVALID = 65026;
  2814. CONST ERROR_CPSIO_NO_SPOOLER = 65027;
  2815. CONST ERROR_CPSIO_FONT_ID_INVALID = 65028;
  2816. CONST ERROR_CPSIO_INTERNAL_ERROR = 65033;
  2817. CONST ERROR_CPSIO_INVALID_PTR_NAME = 65034;
  2818. CONST ERROR_CPSIO_NOT_ACTIVE = 65037;
  2819. CONST ERROR_CPSIO_PID_FULL = 65039;
  2820. CONST ERROR_CPSIO_PID_NOT_FOUND = 65040;
  2821. CONST ERROR_CPSIO_READ_CTL_SEQ = 65043;
  2822. CONST ERROR_CPSIO_READ_FNT_DEF = 65045;
  2823. CONST ERROR_CPSIO_WRITE_ERROR = 65047;
  2824. CONST ERROR_CPSIO_WRITE_FULL_ERROR = 65048;
  2825. CONST ERROR_CPSIO_WRITE_HANDLE_BAD = 65049;
  2826. CONST ERROR_CPSIO_SWIT_LOAD = 65074;
  2827. CONST ERROR_CPSIO_INV_COMMAND = 65077;
  2828. CONST ERROR_CPSIO_NO_FONT_SWIT = 65078;
  2829. (*
  2830. * _api_init must be called to initialize the DOS implementations
  2831. * of the family api routines.
  2832. *)
  2833. PROCEDURE _api_init ();
  2834. END FAPI.
  2835.