struct.inc 234 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092
  1. {
  2. This file is part of the Free Pascal run time library.
  3. This unit contains the record definition for the Win32 API
  4. Copyright (c) 1999-2000 by Florian KLaempfl,
  5. member of the Free Pascal development team.
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. {
  13. Structures.h
  14. Declarations for all the Windows32 API Structures
  15. Copyright (C) 1996 Free Software Foundation, Inc.
  16. Author: Scott Christley <[email protected]>
  17. Date: 1996
  18. This file is part of the Windows32 API Library.
  19. This library is free software; you can redistribute it and/or
  20. modify it under the terms of the GNU Library General Public
  21. License as published by the Free Software Foundation; either
  22. version 2 of the License, or (at your option) any later version.
  23. This library is distributed in the hope that it will be useful,
  24. but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  26. Library General Public License for more details.
  27. If you are interested in a warranty or support for this source code,
  28. contact Scott Christley <[email protected]> for more information.
  29. You should have received a copy of the GNU Library General Public
  30. License along with this library; see the file COPYING.LIB.
  31. If not, write to the Free Software Foundation,
  32. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  33. Changes :
  34. 22/15/2005 update for wince4.2 port, [email protected]
  35. }
  36. {$ifdef read_interface}
  37. type
  38. { WARNING
  39. the variable argument list
  40. is not implemented for FPC
  41. va_list is just a dummy record
  42. MvdV: Nevertheless it should be a pointer type, not a record}
  43. va_list = pchar;
  44. ABC = record
  45. abcA : longint;
  46. abcB : UINT;
  47. abcC : longint;
  48. end;
  49. LPABC = ^ABC;
  50. _ABC = ABC;
  51. TABC = ABC;
  52. PABC = ^ABC;
  53. ABCFLOAT = record
  54. abcfA : Single;
  55. abcfB : Single;
  56. abcfC : Single;
  57. end;
  58. LPABCFLOAT = ^ABCFLOAT;
  59. _ABCFLOAT = ABCFLOAT;
  60. TABCFLOAT = ABCFLOAT;
  61. PABCFLOAT = ^ABCFLOAT;
  62. ACCEL = record
  63. fVirt : BYTE;
  64. key : WORD;
  65. cmd : WORD;
  66. end;
  67. LPACCEL = ^ACCEL;
  68. _ACCEL = ACCEL;
  69. TACCEL = ACCEL;
  70. PACCEL = ^ACCEL;
  71. //
  72. // The structure of an ACE is a common ace header followed by ace type
  73. // specific data. Pictorally the structure of the common ace header is
  74. // as follows:
  75. //
  76. // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
  77. // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  78. // +---------------+-------+-------+---------------+---------------+
  79. // | AceSize | AceFlags | AceType |
  80. // +---------------+-------+-------+---------------+---------------+
  81. //
  82. // AceType denotes the type of the ace, there are some predefined ace
  83. // types
  84. //
  85. // AceSize is the size, in bytes, of ace.
  86. //
  87. // AceFlags are the Ace flags for audit and inheritance, defined shortly.
  88. ACE_HEADER = record //winnt
  89. AceType : BYTE;
  90. AceFlags : BYTE;
  91. AceSize : WORD;
  92. end;
  93. _ACE_HEADER = ACE_HEADER;
  94. TACE_HEADER = ACE_HEADER;
  95. PACE_HEADER = ^ACE_HEADER;
  96. ACCESS_MASK = DWORD; //winnt
  97. PACCESS_MASK = ^ACCESS_MASK; //+winnt
  98. REGSAM = ACCESS_MASK;
  99. ACCESS_ALLOWED_ACE = record
  100. Header : ACE_HEADER;
  101. Mask : ACCESS_MASK;
  102. SidStart : DWORD;
  103. end;
  104. _ACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE;
  105. TACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE;
  106. PACCESS_ALLOWED_ACE = ^ACCESS_ALLOWED_ACE;
  107. ACCESS_DENIED_ACE = record
  108. Header : ACE_HEADER;
  109. Mask : ACCESS_MASK;
  110. SidStart : DWORD;
  111. end;
  112. _ACCESS_DENIED_ACE = ACCESS_DENIED_ACE;
  113. TACCESS_DENIED_ACE = ACCESS_DENIED_ACE;
  114. ACCESSTIMEOUT = record
  115. cbSize : UINT;
  116. dwFlags : DWORD;
  117. iTimeOutMSec : DWORD;
  118. end;
  119. _ACCESSTIMEOUT = ACCESSTIMEOUT;
  120. TACCESSTIMEOUT = ACCESSTIMEOUT;
  121. PACCESSTIMEOUT = ^ACCESSTIMEOUT;
  122. PACCESS_TOKEN = PVOID; //+winnt
  123. ////////////////////////////////////////////////////////////////////////
  124. // //
  125. // ACL and ACE //
  126. // //
  127. ////////////////////////////////////////////////////////////////////////
  128. //
  129. // Define an ACL and the ACE format. The structure of an ACL header
  130. // followed by one or more ACEs. Pictorally the structure of an ACL header
  131. // is as follows:
  132. //
  133. // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
  134. // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  135. // +-------------------------------+---------------+---------------+
  136. // | AclSize | Sbz1 | AclRevision |
  137. // +-------------------------------+---------------+---------------+
  138. // | Sbz2 | AceCount |
  139. // +-------------------------------+-------------------------------+
  140. //
  141. // The current AclRevision is defined to be ACL_REVISION.
  142. //
  143. // AclSize is the size, in bytes, allocated for the ACL. This includes
  144. // the ACL header, ACES, and remaining free space in the buffer.
  145. //
  146. // AceCount is the number of ACES in the ACL.
  147. //
  148. ACL = record //winnt
  149. AclRevision : BYTE;
  150. Sbz1 : BYTE;
  151. AclSize : WORD;
  152. AceCount : WORD;
  153. Sbz2 : WORD;
  154. end;
  155. PACL = ^ACL;
  156. _ACL = ACL;
  157. TACL = ACL;
  158. ACL_REVISION_INFORMATION = record
  159. AclRevision : DWORD;
  160. end;
  161. _ACL_REVISION_INFORMATION = ACL_REVISION_INFORMATION;
  162. TACLREVISIONINFORMATION = ACL_REVISION_INFORMATION;
  163. PACLREVISIONINFORMATION = ^ACL_REVISION_INFORMATION;
  164. ACL_SIZE_INFORMATION = record
  165. AceCount : DWORD;
  166. AclBytesInUse : DWORD;
  167. AclBytesFree : DWORD;
  168. end;
  169. _ACL_SIZE_INFORMATION = ACL_SIZE_INFORMATION;
  170. TACLSIZEINFORMATION = ACL_SIZE_INFORMATION;
  171. PACLSIZEINFORMATION = ^ACL_SIZE_INFORMATION;
  172. ACTION_HEADER = record
  173. transport_id : ULONG;
  174. action_code : USHORT;
  175. reserved : USHORT;
  176. end;
  177. _ACTION_HEADER = ACTION_HEADER;
  178. TACTIONHEADER = ACTION_HEADER;
  179. PACTIONHEADER = ^ACTION_HEADER;
  180. ADAPTER_STATUS = record
  181. adapter_address : array[0..5] of UCHAR;
  182. rev_major : UCHAR;
  183. reserved0 : UCHAR;
  184. adapter_type : UCHAR;
  185. rev_minor : UCHAR;
  186. duration : WORD;
  187. frmr_recv : WORD;
  188. frmr_xmit : WORD;
  189. iframe_recv_err : WORD;
  190. xmit_aborts : WORD;
  191. xmit_success : DWORD;
  192. recv_success : DWORD;
  193. iframe_xmit_err : WORD;
  194. recv_buff_unavail : WORD;
  195. t1_timeouts : WORD;
  196. ti_timeouts : WORD;
  197. reserved1 : DWORD;
  198. free_ncbs : WORD;
  199. max_cfg_ncbs : WORD;
  200. max_ncbs : WORD;
  201. xmit_buf_unavail : WORD;
  202. max_dgram_size : WORD;
  203. pending_sess : WORD;
  204. max_cfg_sess : WORD;
  205. max_sess : WORD;
  206. max_sess_pkt_size : WORD;
  207. name_count : WORD;
  208. end;
  209. _ADAPTER_STATUS = ADAPTER_STATUS;
  210. TADAPTERSTATUS = ADAPTER_STATUS;
  211. PADAPTERSTATUS = ^ADAPTER_STATUS;
  212. ADDJOB_INFO_1 = record
  213. Path : LPTSTR;
  214. JobId : DWORD;
  215. end;
  216. _ADDJOB_INFO_1 = ADDJOB_INFO_1;
  217. TADDJOB_INFO_1 = ADDJOB_INFO_1;
  218. PADDJOB_INFO_1 = ^ADDJOB_INFO_1;
  219. ANIMATIONINFO = record
  220. cbSize : UINT;
  221. iMinAnimate : longint;
  222. end;
  223. LPANIMATIONINFO = ^ANIMATIONINFO;
  224. _ANIMATIONINFO = ANIMATIONINFO;
  225. TANIMATIONINFO = ANIMATIONINFO;
  226. PANIMATIONINFO = ^ANIMATIONINFO;
  227. POINT = record
  228. x : LONG;
  229. y : LONG;
  230. end;
  231. LPPOINT = ^POINT;
  232. tagPOINT = POINT;
  233. TPOINT = POINT;
  234. PPOINT = ^POINT;
  235. RECT = record
  236. case Integer of
  237. 0: (Left,Top,Right,Bottom : Longint);
  238. 1: (TopLeft,BottomRight : TPoint);
  239. end;
  240. LPRECT = ^RECT;
  241. _RECT = RECT;
  242. TRECT = RECT;
  243. PRECT = ^RECT;
  244. tagRECT = RECT; //+windef
  245. RECTL = record
  246. left : LONG;
  247. top : LONG;
  248. right : LONG;
  249. bottom : LONG;
  250. end;
  251. _RECTL = RECTL;
  252. TRECTL = RECTL;
  253. PRECTL = ^RECTL;
  254. APPBARDATA = record
  255. cbSize : DWORD;
  256. hWnd : HWND;
  257. uCallbackMessage : UINT;
  258. uEdge : UINT;
  259. rc : RECT;
  260. lParam : LPARAM;
  261. end;
  262. _AppBarData = APPBARDATA;
  263. TAppBarData = APPBARDATA;
  264. PAppBarData = ^APPBARDATA;
  265. BITMAP = record
  266. bmType : LONG;
  267. bmWidth : LONG;
  268. bmHeight : LONG;
  269. bmWidthBytes : LONG;
  270. bmPlanes : WORD;
  271. bmBitsPixel : WORD;
  272. bmBits : LPVOID;
  273. end;
  274. PBITMAP = ^BITMAP;
  275. NPBITMAP = ^BITMAP;
  276. LPBITMAP = ^BITMAP;
  277. tagBITMAP = BITMAP;
  278. TBITMAP = BITMAP;
  279. BITMAPCOREHEADER = record
  280. bcSize : DWORD;
  281. bcWidth : WORD;
  282. bcHeight : WORD;
  283. bcPlanes : WORD;
  284. bcBitCount : WORD;
  285. end;
  286. tagBITMAPCOREHEADER = BITMAPCOREHEADER;
  287. TBITMAPCOREHEADER = BITMAPCOREHEADER;
  288. PBITMAPCOREHEADER = ^BITMAPCOREHEADER;
  289. RGBTRIPLE = record
  290. rgbtBlue : BYTE;
  291. rgbtGreen : BYTE;
  292. rgbtRed : BYTE;
  293. end;
  294. tagRGBTRIPLE = RGBTRIPLE;
  295. TRGBTRIPLE = RGBTRIPLE;
  296. PRGBTRIPLE = ^RGBTRIPLE;
  297. BITMAPCOREINFO = record
  298. bmciHeader : BITMAPCOREHEADER;
  299. bmciColors : array[0..0] of RGBTRIPLE;
  300. end;
  301. PBITMAPCOREINFO = ^BITMAPCOREINFO;
  302. LPBITMAPCOREINFO = ^BITMAPCOREINFO;
  303. _BITMAPCOREINFO = BITMAPCOREINFO;
  304. TBITMAPCOREINFO = BITMAPCOREINFO;
  305. (* error
  306. WORD bfReserved1;
  307. WORD bfReserved2;
  308. in declarator_list *)
  309. BITMAPINFOHEADER = record
  310. biSize : DWORD;
  311. biWidth : LONG;
  312. biHeight : LONG;
  313. biPlanes : WORD;
  314. biBitCount : WORD;
  315. biCompression : DWORD;
  316. biSizeImage : DWORD;
  317. biXPelsPerMeter : LONG;
  318. biYPelsPerMeter : LONG;
  319. biClrUsed : DWORD;
  320. biClrImportant : DWORD;
  321. end;
  322. LPBITMAPINFOHEADER = ^BITMAPINFOHEADER;
  323. TBITMAPINFOHEADER = BITMAPINFOHEADER;
  324. PBITMAPINFOHEADER = ^BITMAPINFOHEADER;
  325. RGBQUAD = record
  326. rgbBlue : BYTE;
  327. rgbGreen : BYTE;
  328. rgbRed : BYTE;
  329. rgbReserved : BYTE;
  330. end;
  331. tagRGBQUAD = RGBQUAD;
  332. TRGBQUAD = RGBQUAD;
  333. PRGBQUAD = ^RGBQUAD;
  334. BITMAPINFO = record
  335. bmiHeader : BITMAPINFOHEADER;
  336. bmiColors : array[0..0] of RGBQUAD;
  337. end;
  338. LPBITMAPINFO = ^BITMAPINFO;
  339. PBITMAPINFO = ^BITMAPINFO;
  340. TBITMAPINFO = BITMAPINFO;
  341. FXPT2DOT30 = longint;
  342. LPFXPT2DOT30 = ^FXPT2DOT30;
  343. TPFXPT2DOT30 = FXPT2DOT30;
  344. PPFXPT2DOT30 = ^FXPT2DOT30;
  345. CIEXYZ = record
  346. ciexyzX : FXPT2DOT30;
  347. ciexyzY : FXPT2DOT30;
  348. ciexyzZ : FXPT2DOT30;
  349. end;
  350. tagCIEXYZ = CIEXYZ;
  351. LPCIEXYZ = ^CIEXYZ;
  352. TPCIEXYZ = CIEXYZ;
  353. PCIEXYZ = ^CIEXYZ;
  354. CIEXYZTRIPLE = record
  355. ciexyzRed : CIEXYZ;
  356. ciexyzGreen : CIEXYZ;
  357. ciexyzBlue : CIEXYZ;
  358. end;
  359. tagCIEXYZTRIPLE = CIEXYZTRIPLE;
  360. LPCIEXYZTRIPLE = ^CIEXYZTRIPLE;
  361. TCIEXYZTRIPLE = CIEXYZTRIPLE;
  362. PCIEXYZTRIPLE = ^CIEXYZTRIPLE;
  363. BITMAPV4HEADER = record
  364. bV4Size : DWORD;
  365. bV4Width : LONG;
  366. bV4Height : LONG;
  367. bV4Planes : WORD;
  368. bV4BitCount : WORD;
  369. bV4V4Compression : DWORD;
  370. bV4SizeImage : DWORD;
  371. bV4XPelsPerMeter : LONG;
  372. bV4YPelsPerMeter : LONG;
  373. bV4ClrUsed : DWORD;
  374. bV4ClrImportant : DWORD;
  375. bV4RedMask : DWORD;
  376. bV4GreenMask : DWORD;
  377. bV4BlueMask : DWORD;
  378. bV4AlphaMask : DWORD;
  379. bV4CSType : DWORD;
  380. bV4Endpoints : CIEXYZTRIPLE;
  381. bV4GammaRed : DWORD;
  382. bV4GammaGreen : DWORD;
  383. bV4GammaBlue : DWORD;
  384. end;
  385. LPBITMAPV4HEADER = ^BITMAPV4HEADER;
  386. TBITMAPV4HEADER = BITMAPV4HEADER;
  387. PBITMAPV4HEADER = ^BITMAPV4HEADER;
  388. BITMAPFILEHEADER = packed record
  389. bfType : Word;
  390. bfSize : DWord;
  391. bfReserved1 : Word;
  392. bfReserved2 : Word;
  393. bfOffBits : DWord;
  394. end;
  395. TBitmapFileHeader = BITMAPFILEHEADER;
  396. BLOB = record
  397. cbSize : ULONG;
  398. pBlobData : ^BYTE;
  399. end;
  400. _BLOB = BLOB;
  401. TBLOB = BLOB;
  402. PBLOB = ^BLOB;
  403. SHITEMID = record
  404. cb : USHORT;
  405. abID : array[0..0] of BYTE;
  406. end;
  407. LPSHITEMID = ^SHITEMID;
  408. LPCSHITEMID = ^SHITEMID;
  409. _SHITEMID = SHITEMID;
  410. TSHITEMID = SHITEMID;
  411. PSHITEMID = ^SHITEMID;
  412. ITEMIDLIST = record
  413. mkid : SHITEMID;
  414. end;
  415. LPITEMIDLIST = ^ITEMIDLIST;
  416. LPCITEMIDLIST = ^ITEMIDLIST;
  417. _ITEMIDLIST = ITEMIDLIST;
  418. TITEMIDLIST = ITEMIDLIST;
  419. PITEMIDLIST = ^ITEMIDLIST;
  420. FILETIME = record
  421. dwLowDateTime : DWORD;
  422. dwHighDateTime : DWORD;
  423. end;
  424. LPFILETIME = ^FILETIME;
  425. _FILETIME = FILETIME;
  426. TFILETIME = FILETIME;
  427. PFILETIME = ^FILETIME;
  428. _GET_FILEEX_INFO_LEVELS=(GetFileExInfoStandard,GetFileExMaxInfoLevel); //+winbase
  429. GET_FILEEX_INFO_LEVELS=_GET_FILEEX_INFO_LEVELS; //+winbase
  430. _FINDEX_INFO_LEVELS = (FindExInfoStandard,FindExInfoMaxInfoLevel); //+winbase
  431. FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS; //+winbase
  432. _FINDEX_SEARCH_OPS = ( FindExSearchNameMatch, FindExSearchLimitToDirectories,
  433. FindExSearchLimitToDevices, FindExSearchMaxSearchOp);
  434. FINDEX_SEARCH_OPS=_FINDEX_SEARCH_OPS;
  435. BY_HANDLE_FILE_INFORMATION = record
  436. dwFileAttributes : DWORD;
  437. ftCreationTime : FILETIME;
  438. ftLastAccessTime : FILETIME;
  439. ftLastWriteTime : FILETIME;
  440. dwVolumeSerialNumber : DWORD;
  441. nFileSizeHigh : DWORD;
  442. nFileSizeLow : DWORD;
  443. nNumberOfLinks : DWORD;
  444. nFileIndexHigh : DWORD;
  445. nFileIndexLow : DWORD;
  446. end;
  447. LPBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION;
  448. _BY_HANDLE_FILE_INFORMATION = BY_HANDLE_FILE_INFORMATION;
  449. TBYHANDLEFILEINFORMATION = BY_HANDLE_FILE_INFORMATION;
  450. PBYHANDLEFILEINFORMATION = ^BY_HANDLE_FILE_INFORMATION;
  451. FIXED = record
  452. fract : WORD;
  453. value : integer;
  454. end;
  455. _FIXED = FIXED;
  456. TFIXED = FIXED;
  457. PFIXED = ^FIXED;
  458. POINTFX = record
  459. x : FIXED;
  460. y : FIXED;
  461. end;
  462. tagPOINTFX = POINTFX;
  463. TPOINTFX = POINTFX;
  464. PPOINTFX = ^POINTFX;
  465. POINTL = record
  466. x : LONG;
  467. y : LONG;
  468. end;
  469. _POINTL = POINTL;
  470. TPOINTL = POINTL;
  471. PPOINTL = ^POINTL;
  472. TSmallPoint = record
  473. X,
  474. Y : SmallInt;
  475. end;
  476. POINTS = record
  477. x : SHORT;
  478. y : SHORT;
  479. end;
  480. tagPOINTS = POINTS; //windef
  481. TPOINTS = POINTS;
  482. PPOINTS = ^POINTS;
  483. CANDIDATEFORM = record
  484. dwIndex : DWORD;
  485. dwStyle : DWORD;
  486. ptCurrentPos : POINT;
  487. rcArea : RECT;
  488. end;
  489. LPCANDIDATEFORM = ^CANDIDATEFORM;
  490. _tagCANDIDATEFORM = CANDIDATEFORM;
  491. TCANDIDATEFORM = CANDIDATEFORM;
  492. PCANDIDATEFORM = ^CANDIDATEFORM;
  493. CANDIDATELIST = record
  494. dwSize : DWORD;
  495. dwStyle : DWORD;
  496. dwCount : DWORD;
  497. dwSelection : DWORD;
  498. dwPageStart : DWORD;
  499. dwPageSize : DWORD;
  500. dwOffset : array[0..0] of DWORD;
  501. end;
  502. LPCANDIDATELIST = ^CANDIDATELIST;
  503. _tagCANDIDATELIST = CANDIDATELIST;
  504. TCANDIDATELIST = CANDIDATELIST;
  505. PCANDIDATELIST = ^CANDIDATELIST;
  506. CREATESTRUCT = record
  507. lpCreateParams : LPVOID;
  508. hInstance : HINST;
  509. hMenu : HMENU;
  510. hwndParent : HWND;
  511. cy : longint;
  512. cx : longint;
  513. y : longint;
  514. x : longint;
  515. style : LONG;
  516. lpszName : LPCTSTR;
  517. lpszClass : LPCTSTR;
  518. dwExStyle : DWORD;
  519. end;
  520. LPCREATESTRUCT = ^CREATESTRUCT;
  521. tagCREATESTRUCT = CREATESTRUCT;
  522. TCREATESTRUCT = CREATESTRUCT;
  523. PCREATESTRUCT = ^CREATESTRUCT;
  524. CBT_CREATEWND = record
  525. lpcs : LPCREATESTRUCT;
  526. hwndInsertAfter : HWND;
  527. end;
  528. tagCBT_CREATEWND = CBT_CREATEWND;
  529. TCBT_CREATEWND = CBT_CREATEWND;
  530. PCBT_CREATEWND = ^CBT_CREATEWND;
  531. CBTACTIVATESTRUCT = record
  532. fMouse : WINBOOL;
  533. hWndActive : HWND;
  534. end;
  535. tagCBTACTIVATESTRUCT = CBTACTIVATESTRUCT;
  536. TCBTACTIVATESTRUCT = CBTACTIVATESTRUCT;
  537. PCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;
  538. CHAR_INFO = record
  539. case longint of
  540. 0 : ( UnicodeChar : WCHAR;
  541. Attributes : Word);
  542. 1 : ( AsciiChar : CHAR );
  543. end;
  544. _CHAR_INFO = CHAR_INFO;
  545. TCHAR_INFO = CHAR_INFO;
  546. PCHAR_INFO = ^CHAR_INFO;
  547. CHARFORMAT = record
  548. cbSize : UINT;
  549. dwMask : DWORD;
  550. dwEffects : DWORD;
  551. yHeight : LONG;
  552. yOffset : LONG;
  553. crTextColor : COLORREF;
  554. bCharSet : BYTE;
  555. bPitchAndFamily : BYTE;
  556. szFaceName : array[0..(LF_FACESIZE)-1] of TCHAR;
  557. end;
  558. _charformat = CHARFORMAT;
  559. Tcharformat = CHARFORMAT;
  560. Pcharformat = ^CHARFORMAT;
  561. CHARRANGE = record
  562. cpMin : LONG;
  563. cpMax : LONG;
  564. end;
  565. _charrange = CHARRANGE;
  566. Tcharrange = CHARRANGE;
  567. Pcharrange = ^CHARRANGE;
  568. CHARSET = record
  569. aflBlock : array[0..2] of DWORD;
  570. flLang : DWORD;
  571. end;
  572. tagCHARSET = CHARSET;
  573. TCHARSET = CHARSET;
  574. PCHARSET = ^CHARSET;
  575. FONTSIGNATURE = record
  576. fsUsb : array[0..3] of DWORD;
  577. fsCsb : array[0..1] of DWORD;
  578. end;
  579. LPFONTSIGNATURE = ^FONTSIGNATURE;
  580. tagFONTSIGNATURE = FONTSIGNATURE;
  581. TFONTSIGNATURE = FONTSIGNATURE;
  582. PFONTSIGNATURE = ^FONTSIGNATURE;
  583. FLOAT128 = record //+winnt
  584. LowPart : int64;
  585. HighPart : int64;
  586. end;
  587. PFLOAT128 = ^FLOAT128;
  588. CHARSETINFO = record
  589. ciCharset : UINT;
  590. ciACP : UINT;
  591. fs : FONTSIGNATURE;
  592. end;
  593. LPCHARSETINFO = ^CHARSETINFO;
  594. TCHARSETINFO = CHARSETINFO;
  595. PCHARSETINFO = ^CHARSETINFO;
  596. {CHOOSECOLOR = record confilcts with function ChooseColor }
  597. TCHOOSECOLOR = record
  598. lStructSize : DWORD;
  599. hwndOwner : HWND;
  600. hInstance : HWND;
  601. rgbResult : COLORREF;
  602. lpCustColors : ^COLORREF;
  603. Flags : DWORD;
  604. lCustData : LPARAM;
  605. lpfnHook : LPCCHOOKPROC;
  606. lpTemplateName : LPCTSTR;
  607. end;
  608. LPCHOOSECOLOR = ^TCHOOSECOLOR;
  609. PCHOOSECOLOR = ^TCHOOSECOLOR;
  610. LOGFONTA = record
  611. lfHeight : LONG;
  612. lfWidth : LONG;
  613. lfEscapement : LONG;
  614. lfOrientation : LONG;
  615. lfWeight : LONG;
  616. lfItalic : BYTE;
  617. lfUnderline : BYTE;
  618. lfStrikeOut : BYTE;
  619. lfCharSet : BYTE;
  620. lfOutPrecision : BYTE;
  621. lfClipPrecision : BYTE;
  622. lfQuality : BYTE;
  623. lfPitchAndFamily : BYTE;
  624. lfFaceName : array[0..(LF_FACESIZE)-1] of TCHAR;
  625. end;
  626. TLOGFONTA = LOGFONTA;
  627. tagLOGFONTA = LOGFONTA;
  628. NPLOGFONTA = ^LOGFONTA;
  629. PLOGFONTA = ^LOGFONTA;
  630. LOGFONTW = record
  631. lfHeight: LONG;
  632. lfWidth: LONG;
  633. lfEscapement: LONG;
  634. lfOrientation: LONG;
  635. lfWeight: LONG;
  636. lfItalic: BYTE;
  637. lfUnderline: BYTE;
  638. lfStrikeOut: BYTE;
  639. lfCharSet: BYTE;
  640. lfOutPrecision: BYTE;
  641. lfClipPrecision: BYTE;
  642. lfQuality: BYTE;
  643. lfPitchAndFamily: BYTE;
  644. lfFaceName: array [0..LF_FACESIZE - 1] of WCHAR;
  645. end;
  646. LPLOGFONTW = ^LOGFONTW;
  647. NPLOGFONTW = ^LOGFONTW;
  648. tagLOGFONTW = LOGFONTW;
  649. TLogFontW = LOGFONTW;
  650. PLogFontW = ^TLogFontW;
  651. TLOGFONT = LOGFONTW;
  652. LOGFONT = LOGFONTW;
  653. tagLOGFONT = LOGFONTW;
  654. LPLOGFONT = ^LOGFONTW;
  655. PLOGFONT = ^LOGFONTW;
  656. NPLOGFONT = ^LOGFONTW;
  657. TCHOOSEFONTW = record //+commdlg
  658. lStructSize : DWORD;
  659. hwndOwner : HWND;
  660. hDC : HDC;
  661. lpLogFont : LPLOGFONTW;
  662. iPointSize : Integer;
  663. Flags : DWORD;
  664. rgbColors : DWORD;
  665. lCustData : LPARAM;
  666. lpfnHook : LPCFHOOKPROC;
  667. lpTemplateName : LPCWSTR;
  668. hInstance : HINST;
  669. lpszStyle : LPTSTR;
  670. nFontType : WORD;
  671. ___MISSING_ALIGNMENT__ : WORD;
  672. nSizeMin : Integer;
  673. nSizeMax : Integer;
  674. end;
  675. tagCHOOSEFONTW = TCHOOSEFONTW; //+commdlg
  676. LPCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg
  677. PCHOOSEFONTW = ^TCHOOSEFONTW; //+commdlg
  678. {CHOOSEFONT = record conflicts with ChooseFont function }
  679. TCHOOSEFONT = record
  680. lStructSize : DWORD;
  681. hwndOwner : HWND;
  682. hDC : HDC;
  683. lpLogFont : LPLOGFONT;
  684. iPointSize : WINT;
  685. Flags : DWORD;
  686. rgbColors : DWORD;
  687. lCustData : LPARAM;
  688. lpfnHook : LPCFHOOKPROC;
  689. lpTemplateName : LPCTSTR;
  690. hInstance : HINST;
  691. lpszStyle : LPTSTR;
  692. nFontType : WORD;
  693. ___MISSING_ALIGNMENT__ : WORD;
  694. nSizeMin : WINT;
  695. nSizeMax : WINT;
  696. end;
  697. LPCHOOSEFONT = ^TCHOOSEFONT;
  698. PCHOOSEFONT = ^TCHOOSEFONT;
  699. CIDA = record
  700. cidl : UINT;
  701. aoffset : array[0..0] of UINT;
  702. end;
  703. LPIDA = ^CIDA;
  704. _IDA = CIDA;
  705. TIDA = CIDA;
  706. PIDA = ^CIDA;
  707. CLIENTCREATESTRUCT = record
  708. hWindowMenu : HANDLE;
  709. idFirstChild : UINT;
  710. end;
  711. LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  712. tagCLIENTCREATESTRUCT = CLIENTCREATESTRUCT;
  713. TCLIENTCREATESTRUCT = CLIENTCREATESTRUCT;
  714. PCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  715. CMINVOKECOMMANDINFO = record
  716. cbSize : DWORD;
  717. fMask : DWORD;
  718. hwnd : HWND;
  719. lpVerb : LPCSTR;
  720. lpParameters : LPCSTR;
  721. lpDirectory : LPCSTR;
  722. nShow : longint;
  723. dwHotKey : DWORD;
  724. hIcon : HANDLE;
  725. end;
  726. LPCMINVOKECOMMANDINFO = ^CMINVOKECOMMANDINFO;
  727. _CMInvokeCommandInfo = CMINVOKECOMMANDINFO;
  728. TCMInvokeCommandInfo = CMINVOKECOMMANDINFO;
  729. PCMInvokeCommandInfo = ^CMINVOKECOMMANDINFO;
  730. COLORADJUSTMENT = record
  731. caSize : WORD;
  732. caFlags : WORD;
  733. caIlluminantIndex : WORD;
  734. caRedGamma : WORD;
  735. caGreenGamma : WORD;
  736. caBlueGamma : WORD;
  737. caReferenceBlack : WORD;
  738. caReferenceWhite : WORD;
  739. caContrast : SHORT;
  740. caBrightness : SHORT;
  741. caColorfulness : SHORT;
  742. caRedGreenTint : SHORT;
  743. end;
  744. LPCOLORADJUSTMENT = ^COLORADJUSTMENT;
  745. tagCOLORADJUSTMENT = COLORADJUSTMENT;
  746. TCOLORADJUSTMENT = COLORADJUSTMENT;
  747. PCOLORADJUSTMENT = ^COLORADJUSTMENT;
  748. COLORMAP = record
  749. from : COLORREF;
  750. _to : COLORREF;
  751. end;
  752. LPCOLORMAP = ^COLORMAP;
  753. _COLORMAP = COLORMAP;
  754. TCOLORMAP = COLORMAP;
  755. PCOLORMAP = ^COLORMAP;
  756. DCB = record
  757. DCBlength : DWORD;
  758. BaudRate : DWORD;
  759. flags : DWORD;
  760. wReserved : WORD;
  761. XonLim : WORD;
  762. XoffLim : WORD;
  763. ByteSize : BYTE;
  764. Parity : BYTE;
  765. StopBits : BYTE;
  766. XonChar : char;
  767. XoffChar : char;
  768. ErrorChar : char;
  769. EofChar : char;
  770. EvtChar : char;
  771. wReserved1 : WORD;
  772. end;
  773. LPDCB = ^DCB;
  774. _DCB = DCB;
  775. TDCB = DCB;
  776. PDCB = ^DCB;
  777. const
  778. bm_DCB_fBinary = $1;
  779. bp_DCB_fBinary = 0;
  780. bm_DCB_fParity = $2;
  781. bp_DCB_fParity = 1;
  782. bm_DCB_fOutxCtsFlow = $4;
  783. bp_DCB_fOutxCtsFlow = 2;
  784. bm_DCB_fOutxDsrFlow = $8;
  785. bp_DCB_fOutxDsrFlow = 3;
  786. bm_DCB_fDtrControl = $30;
  787. bp_DCB_fDtrControl = 4;
  788. bm_DCB_fDsrSensitivity = $40;
  789. bp_DCB_fDsrSensitivity = 6;
  790. bm_DCB_fTXContinueOnXoff = $80;
  791. bp_DCB_fTXContinueOnXoff = 7;
  792. bm_DCB_fOutX = $100;
  793. bp_DCB_fOutX = 8;
  794. bm_DCB_fInX = $200;
  795. bp_DCB_fInX = 9;
  796. bm_DCB_fErrorChar = $400;
  797. bp_DCB_fErrorChar = 10;
  798. bm_DCB_fNull = $800;
  799. bp_DCB_fNull = 11;
  800. bm_DCB_fRtsControl = $3000;
  801. bp_DCB_fRtsControl = 12;
  802. bm_DCB_fAbortOnError = $4000;
  803. bp_DCB_fAbortOnError = 14;
  804. bm_DCB_fDummy2 = $FFFF8000;
  805. bp_DCB_fDummy2 = 15;
  806. function fBinary(var a : DCB) : DWORD;
  807. procedure set_fBinary(var a : DCB; __fBinary : DWORD);
  808. function fParity(var a : DCB) : DWORD;
  809. procedure set_fParity(var a : DCB; __fParity : DWORD);
  810. function fOutxCtsFlow(var a : DCB) : DWORD;
  811. procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD);
  812. function fOutxDsrFlow(var a : DCB) : DWORD;
  813. procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD);
  814. function fDtrControl(var a : DCB) : DWORD;
  815. procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD);
  816. function fDsrSensitivity(var a : DCB) : DWORD;
  817. procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD);
  818. function fTXContinueOnXoff(var a : DCB) : DWORD;
  819. procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD);
  820. function fOutX(var a : DCB) : DWORD;
  821. procedure set_fOutX(var a : DCB; __fOutX : DWORD);
  822. function fInX(var a : DCB) : DWORD;
  823. procedure set_fInX(var a : DCB; __fInX : DWORD);
  824. function fErrorChar(var a : DCB) : DWORD;
  825. procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD);
  826. function fNull(var a : DCB) : DWORD;
  827. procedure set_fNull(var a : DCB; __fNull : DWORD);
  828. function fRtsControl(var a : DCB) : DWORD;
  829. procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD);
  830. function fAbortOnError(var a : DCB) : DWORD;
  831. procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD);
  832. function fDummy2(var a : DCB) : DWORD;
  833. procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD);
  834. type
  835. tagINITCOMMONCONTROLSEX = record
  836. dwSize:DWORD; // size of this structure
  837. dwICC:DWORD; // flags indicating which classes to be initialized
  838. end;
  839. TINITCOMMONCONTROLSEX=tagINITCOMMONCONTROLSEX;
  840. LPINITCOMMONCONTROLSEX=^tagINITCOMMONCONTROLSEX;
  841. COMMCONFIG = record
  842. dwSize : DWORD;
  843. wVersion : WORD;
  844. wReserved : WORD;
  845. dcb : DCB;
  846. dwProviderSubType : DWORD;
  847. dwProviderOffset : DWORD;
  848. dwProviderSize : DWORD;
  849. wcProviderData : array[0..0] of WCHAR;
  850. end;
  851. LPCOMMCONFIG = ^COMMCONFIG;
  852. _COMM_CONFIG = COMMCONFIG;
  853. TCOMMCONFIG = COMMCONFIG;
  854. PCOMMCONFIG = ^COMMCONFIG;
  855. COMMPROP = record
  856. wPacketLength : WORD;
  857. wPacketVersion : WORD;
  858. dwServiceMask : DWORD;
  859. dwReserved1 : DWORD;
  860. dwMaxTxQueue : DWORD;
  861. dwMaxRxQueue : DWORD;
  862. dwMaxBaud : DWORD;
  863. dwProvSubType : DWORD;
  864. dwProvCapabilities : DWORD;
  865. dwSettableParams : DWORD;
  866. dwSettableBaud : DWORD;
  867. wSettableData : WORD;
  868. wSettableStopParity : WORD;
  869. dwCurrentTxQueue : DWORD;
  870. dwCurrentRxQueue : DWORD;
  871. dwProvSpec1 : DWORD;
  872. dwProvSpec2 : DWORD;
  873. wcProvChar : array[0..0] of WCHAR;
  874. end;
  875. LPCOMMPROP = ^COMMPROP;
  876. _COMMPROP = COMMPROP;
  877. TCOMMPROP = COMMPROP;
  878. PCOMMPROP = ^COMMPROP;
  879. COMMTIMEOUTS = record
  880. ReadIntervalTimeout : DWORD;
  881. ReadTotalTimeoutMultiplier : DWORD;
  882. ReadTotalTimeoutConstant : DWORD;
  883. WriteTotalTimeoutMultiplier : DWORD;
  884. WriteTotalTimeoutConstant : DWORD;
  885. end;
  886. LPCOMMTIMEOUTS = ^COMMTIMEOUTS;
  887. _COMMTIMEOUTS = COMMTIMEOUTS;
  888. TCOMMTIMEOUTS = COMMTIMEOUTS;
  889. PCOMMTIMEOUTS = ^COMMTIMEOUTS;
  890. COMPAREITEMSTRUCT = record
  891. CtlType : UINT;
  892. CtlID : UINT;
  893. hwndItem : HWND;
  894. itemID1 : UINT;
  895. itemData1 : DWORD;
  896. itemID2 : UINT;
  897. itemData2 : DWORD;
  898. end;
  899. tagCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT;
  900. TCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT;
  901. PCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
  902. COMPCOLOR = record
  903. crText : COLORREF;
  904. crBackground : COLORREF;
  905. dwEffects : DWORD;
  906. end;
  907. TCOMPCOLOR = COMPCOLOR;
  908. PCOMPCOLOR = ^COMPCOLOR;
  909. COMPOSITIONFORM = record
  910. dwStyle : DWORD;
  911. ptCurrentPos : POINT;
  912. rcArea : RECT;
  913. end;
  914. LPCOMPOSITIONFORM = ^COMPOSITIONFORM;
  915. _tagCOMPOSITIONFORM = COMPOSITIONFORM;
  916. TCOMPOSITIONFORM = COMPOSITIONFORM;
  917. PCOMPOSITIONFORM = ^COMPOSITIONFORM;
  918. // TComStatFlags = set of (fCtsHold, fDsrHold, fRlsdHold , fXoffHold ,
  919. // fXoffSent , fEof , fTxim , fReserved);
  920. COMSTAT = record
  921. flag0 : DWORD; // can't use tcomstatflags, set packing issues
  922. // and conflicts with macro's
  923. cbInQue : DWORD;
  924. cbOutQue : DWORD;
  925. end;
  926. LPCOMSTAT = ^COMSTAT;
  927. _COMSTAT = COMSTAT;
  928. TCOMSTAT = COMSTAT;
  929. PCOMSTAT = ^COMSTAT;
  930. const
  931. bm_COMSTAT_fCtsHold = $1;
  932. bp_COMSTAT_fCtsHold = 0;
  933. bm_COMSTAT_fDsrHold = $2;
  934. bp_COMSTAT_fDsrHold = 1;
  935. bm_COMSTAT_fRlsdHold = $4;
  936. bp_COMSTAT_fRlsdHold = 2;
  937. bm_COMSTAT_fXoffHold = $8;
  938. bp_COMSTAT_fXoffHold = 3;
  939. bm_COMSTAT_fXoffSent = $10;
  940. bp_COMSTAT_fXoffSent = 4;
  941. bm_COMSTAT_fEof = $20;
  942. bp_COMSTAT_fEof = 5;
  943. bm_COMSTAT_fTxim = $40;
  944. bp_COMSTAT_fTxim = 6;
  945. bm_COMSTAT_fReserved = $FFFFFF80;
  946. bp_COMSTAT_fReserved = 7;
  947. function fCtsHold(var a : COMSTAT) : DWORD; // should be renamed to get_<x>?
  948. procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD);
  949. function fDsrHold(var a : COMSTAT) : DWORD;
  950. procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD);
  951. function fRlsdHold(var a : COMSTAT) : DWORD;
  952. procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD);
  953. function fXoffHold(var a : COMSTAT) : DWORD;
  954. procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD);
  955. function fXoffSent(var a : COMSTAT) : DWORD;
  956. procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD);
  957. function fEof(var a : COMSTAT) : DWORD;
  958. procedure set_fEof(var a : COMSTAT; __fEof : DWORD);
  959. function fTxim(var a : COMSTAT) : DWORD;
  960. procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD);
  961. function fReserved(var a : COMSTAT) : DWORD;
  962. procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD);
  963. type
  964. CONSOLE_CURSOR_INFO = record
  965. dwSize : DWORD;
  966. bVisible : WINBOOL;
  967. end;
  968. PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO;
  969. _CONSOLE_CURSOR_INFO = CONSOLE_CURSOR_INFO;
  970. TCONSOLECURSORINFO = CONSOLE_CURSOR_INFO;
  971. PCONSOLECURSORINFO = ^CONSOLE_CURSOR_INFO;
  972. TCURSORINFO = CONSOLE_CURSOR_INFO;
  973. COORD = record
  974. X : SHORT;
  975. Y : SHORT;
  976. end;
  977. _COORD = COORD;
  978. TCOORD = COORD;
  979. PCOORD = ^COORD;
  980. SMALL_RECT = record
  981. Left : SHORT;
  982. Top : SHORT;
  983. Right : SHORT;
  984. Bottom : SHORT;
  985. end;
  986. _SMALL_RECT = SMALL_RECT;
  987. TSMALL_RECT = SMALL_RECT;
  988. PSMALL_RECT = ^SMALL_RECT;
  989. CONSOLE_SCREEN_BUFFER_INFO = packed record
  990. dwSize : COORD;
  991. dwCursorPosition : COORD;
  992. wAttributes : WORD;
  993. srWindow : SMALL_RECT;
  994. dwMaximumWindowSize : COORD;
  995. end;
  996. PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO;
  997. _CONSOLE_SCREEN_BUFFER_INFO = CONSOLE_SCREEN_BUFFER_INFO;
  998. TCONSOLESCREENBUFFERINFO = CONSOLE_SCREEN_BUFFER_INFO;
  999. PCONSOLESCREENBUFFERINFO = ^CONSOLE_SCREEN_BUFFER_INFO;
  1000. {$ifdef i386} //+winnt
  1001. type
  1002. FLOATING_SAVE_AREA = record //~winnt
  1003. ControlWord : DWORD;
  1004. StatusWord : DWORD;
  1005. TagWord : DWORD;
  1006. ErrorOffset : DWORD;
  1007. ErrorSelector : DWORD;
  1008. DataOffset : DWORD;
  1009. DataSelector : DWORD;
  1010. RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE; //~winnt
  1011. Cr0NpxState : DWORD;
  1012. end;
  1013. _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA; //winnt
  1014. TFLOATINGSAVEAREA = FLOATING_SAVE_AREA; //winnt
  1015. PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA; //~winnt
  1016. //
  1017. // Context Frame
  1018. //
  1019. // This frame has a several purposes: 1) it is used as an argument to
  1020. // NtContinue, 2) is is used to constuct a call frame for APC delivery,
  1021. // and 3) it is used in the user level thread creation routines.
  1022. //
  1023. // The layout of the record conforms to a standard call frame.
  1024. //
  1025. CONTEXT = record //winnt
  1026. ContextFlags : DWORD;
  1027. Dr0 : DWORD;
  1028. Dr1 : DWORD;
  1029. Dr2 : DWORD;
  1030. Dr3 : DWORD;
  1031. Dr6 : DWORD;
  1032. Dr7 : DWORD;
  1033. FloatSave : FLOATING_SAVE_AREA;
  1034. SegGs : DWORD;
  1035. SegFs : DWORD;
  1036. SegEs : DWORD;
  1037. SegDs : DWORD;
  1038. Edi : DWORD;
  1039. Esi : DWORD;
  1040. Ebx : DWORD;
  1041. Edx : DWORD;
  1042. Ecx : DWORD;
  1043. Eax : DWORD;
  1044. Ebp : DWORD;
  1045. Eip : DWORD;
  1046. SegCs : DWORD;
  1047. EFlags : DWORD;
  1048. Esp : DWORD;
  1049. SegSs : DWORD;
  1050. end;
  1051. LDT_ENTRY = record //~winnt, moved into _X86_
  1052. LimitLow : WORD;
  1053. BaseLow : WORD;
  1054. HighWord : record
  1055. case longint of
  1056. 0 : ( Bytes : record
  1057. BaseMid : BYTE;
  1058. Flags1 : BYTE;
  1059. Flags2 : BYTE;
  1060. BaseHi : BYTE;
  1061. end );
  1062. 1 : ( Bits : record
  1063. flag0 : longint;
  1064. end );
  1065. end;
  1066. end;
  1067. LPLDT_ENTRY = ^LDT_ENTRY;
  1068. PLDT_ENTRY = ^LDT_ENTRY;
  1069. _LDT_ENTRY = LDT_ENTRY;
  1070. TLDTENTRY = LDT_ENTRY;
  1071. PLDTENTRY = ^LDT_ENTRY;
  1072. {$endif i386} //+winnt
  1073. {$ifdef _MIPS_} //+winnt all block added
  1074. //
  1075. // Context Frame
  1076. //
  1077. // N.B. This frame must be exactly a multiple of 16 bytes in length.
  1078. //
  1079. // This frame has a several purposes: 1) it is used as an argument to
  1080. // NtContinue, 2) it is used to constuct a call frame for APC delivery,
  1081. // 3) it is used to construct a call frame for exception dispatching
  1082. // in user mode, and 4) it is used in the user level thread creation
  1083. // routines.
  1084. //
  1085. // The layout of the record conforms to a standard call frame.
  1086. //
  1087. type
  1088. {$ifdef _MIPS64} //+winnt
  1089. FREG_TYPE = ULONGLONG;
  1090. REG_TYPE = ULONGLONG;
  1091. {$else}
  1092. FREG_TYPE = DWORD;
  1093. REG_TYPE = ULONG;
  1094. {$endif _MIPS64}
  1095. CONTEXT = record //+winnt
  1096. Argument : Array[0..3] of REG_TYPE;
  1097. FltF0 : FREG_TYPE;
  1098. FltF1 : FREG_TYPE;
  1099. FltF2 : FREG_TYPE;
  1100. FltF3 : FREG_TYPE;
  1101. FltF4 : FREG_TYPE;
  1102. FltF5 : FREG_TYPE;
  1103. FltF6 : FREG_TYPE;
  1104. FltF7 : FREG_TYPE;
  1105. FltF8 : FREG_TYPE;
  1106. FltF9 : FREG_TYPE;
  1107. FltF10 : FREG_TYPE;
  1108. FltF11 : FREG_TYPE;
  1109. FltF12 : FREG_TYPE;
  1110. FltF13 : FREG_TYPE;
  1111. FltF14 : FREG_TYPE;
  1112. FltF15 : FREG_TYPE;
  1113. FltF16 : FREG_TYPE;
  1114. FltF17 : FREG_TYPE;
  1115. FltF18 : FREG_TYPE;
  1116. FltF19 : FREG_TYPE;
  1117. FltF20 : FREG_TYPE;
  1118. FltF21 : FREG_TYPE;
  1119. FltF22 : FREG_TYPE;
  1120. FltF23 : FREG_TYPE;
  1121. FltF24 : FREG_TYPE;
  1122. FltF25 : FREG_TYPE;
  1123. FltF26 : FREG_TYPE;
  1124. FltF27 : FREG_TYPE;
  1125. FltF28 : FREG_TYPE;
  1126. FltF29 : FREG_TYPE;
  1127. FltF30 : FREG_TYPE;
  1128. FltF31 : FREG_TYPE;
  1129. IntZero : REG_TYPE;
  1130. IntAt : REG_TYPE;
  1131. IntV0 : REG_TYPE;
  1132. IntV1 : REG_TYPE;
  1133. IntA0 : REG_TYPE;
  1134. IntA1 : REG_TYPE;
  1135. IntA2 : REG_TYPE;
  1136. IntA3 : REG_TYPE;
  1137. IntT0 : REG_TYPE;
  1138. IntT1 : REG_TYPE;
  1139. IntT2 : REG_TYPE;
  1140. IntT3 : REG_TYPE;
  1141. IntT4 : REG_TYPE;
  1142. IntT5 : REG_TYPE;
  1143. IntT6 : REG_TYPE;
  1144. IntT7 : REG_TYPE;
  1145. IntS0 : REG_TYPE;
  1146. IntS1 : REG_TYPE;
  1147. IntS2 : REG_TYPE;
  1148. IntS3 : REG_TYPE;
  1149. IntS4 : REG_TYPE;
  1150. IntS5 : REG_TYPE;
  1151. IntS6 : REG_TYPE;
  1152. IntS7 : REG_TYPE;
  1153. IntT8 : REG_TYPE;
  1154. IntT9 : REG_TYPE;
  1155. IntK0 : REG_TYPE;
  1156. IntK1 : REG_TYPE;
  1157. IntGp : REG_TYPE;
  1158. IntSp : REG_TYPE;
  1159. IntS8 : REG_TYPE;
  1160. IntRa : REG_TYPE;
  1161. IntLo : REG_TYPE;
  1162. IntHi : REG_TYPE;
  1163. Fsr : DWORD;
  1164. Fir : DWORD;
  1165. Psr : DWORD;
  1166. ContextFlags : DWORD;
  1167. Fill : Array[0..1] of DWORD;
  1168. end;
  1169. {$endif _MIPS_} //+winnt
  1170. {$ifdef _PPC_} //+winnt
  1171. { Floating point registers returned when CONTEXT_FLOATING_POINT is set }
  1172. { Integer registers returned when CONTEXT_INTEGER is set. }
  1173. { Condition register }
  1174. { Fixed point exception register }
  1175. { The following are set when CONTEXT_CONTROL is set. }
  1176. { Machine status register }
  1177. { Instruction address register }
  1178. { Link register }
  1179. { Control register }
  1180. { Control which context values are returned }
  1181. { Registers returned if CONTEXT_DEBUG_REGISTERS is set. }
  1182. { Breakpoint Register 1 }
  1183. { Breakpoint Register 2 }
  1184. { Breakpoint Register 3 }
  1185. { Breakpoint Register 4 }
  1186. { Breakpoint Register 5 }
  1187. { Breakpoint Register 6 }
  1188. { Debug Status Register }
  1189. { Debug Control Register }
  1190. type
  1191. CONTEXT = record
  1192. Fpr0 : double;
  1193. Fpr1 : double;
  1194. Fpr2 : double;
  1195. Fpr3 : double;
  1196. Fpr4 : double;
  1197. Fpr5 : double;
  1198. Fpr6 : double;
  1199. Fpr7 : double;
  1200. Fpr8 : double;
  1201. Fpr9 : double;
  1202. Fpr10 : double;
  1203. Fpr11 : double;
  1204. Fpr12 : double;
  1205. Fpr13 : double;
  1206. Fpr14 : double;
  1207. Fpr15 : double;
  1208. Fpr16 : double;
  1209. Fpr17 : double;
  1210. Fpr18 : double;
  1211. Fpr19 : double;
  1212. Fpr20 : double;
  1213. Fpr21 : double;
  1214. Fpr22 : double;
  1215. Fpr23 : double;
  1216. Fpr24 : double;
  1217. Fpr25 : double;
  1218. Fpr26 : double;
  1219. Fpr27 : double;
  1220. Fpr28 : double;
  1221. Fpr29 : double;
  1222. Fpr30 : double;
  1223. Fpr31 : double;
  1224. Fpscr : double;
  1225. Gpr0 : DWORD;
  1226. Gpr1 : DWORD;
  1227. Gpr2 : DWORD;
  1228. Gpr3 : DWORD;
  1229. Gpr4 : DWORD;
  1230. Gpr5 : DWORD;
  1231. Gpr6 : DWORD;
  1232. Gpr7 : DWORD;
  1233. Gpr8 : DWORD;
  1234. Gpr9 : DWORD;
  1235. Gpr10 : DWORD;
  1236. Gpr11 : DWORD;
  1237. Gpr12 : DWORD;
  1238. Gpr13 : DWORD;
  1239. Gpr14 : DWORD;
  1240. Gpr15 : DWORD;
  1241. Gpr16 : DWORD;
  1242. Gpr17 : DWORD;
  1243. Gpr18 : DWORD;
  1244. Gpr19 : DWORD;
  1245. Gpr20 : DWORD;
  1246. Gpr21 : DWORD;
  1247. Gpr22 : DWORD;
  1248. Gpr23 : DWORD;
  1249. Gpr24 : DWORD;
  1250. Gpr25 : DWORD;
  1251. Gpr26 : DWORD;
  1252. Gpr27 : DWORD;
  1253. Gpr28 : DWORD;
  1254. Gpr29 : DWORD;
  1255. Gpr30 : DWORD;
  1256. Gpr31 : DWORD;
  1257. Cr : DWORD;
  1258. Xer : DWORD;
  1259. Msr : DWORD;
  1260. Iar : DWORD;
  1261. Lr : DWORD;
  1262. Ctr : DWORD;
  1263. ContextFlags : DWORD;
  1264. Fill : array[0..2] of DWORD;
  1265. Dr0 : DWORD;
  1266. Dr1 : DWORD;
  1267. Dr2 : DWORD;
  1268. Dr3 : DWORD;
  1269. Dr4 : DWORD;
  1270. Dr5 : DWORD;
  1271. Dr6 : DWORD;
  1272. Dr7 : DWORD;
  1273. end;
  1274. _STACK_FRAME_HEADER = record // GPR 1 points here
  1275. BackChain : DWORD; // Addr of previous frame
  1276. Reserved1 : DWORD; // Reserved
  1277. Parameter0 : DWORD; // First 8 parameter words are
  1278. Parameter1 : DWORD; // always present
  1279. Parameter2 : DWORD;
  1280. Parameter3 : DWORD;
  1281. Parameter4 : DWORD;
  1282. Parameter5 : DWORD;
  1283. Parameter6 : DWORD;
  1284. Parameter7 : DWORD;
  1285. end;
  1286. PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER;
  1287. {$endif _PPC_} //~winnt
  1288. {$ifdef _MPPC_} //+winnt all block
  1289. type
  1290. CONTEXT = record
  1291. Fpr0 : double;
  1292. Fpr1 : double;
  1293. Fpr2 : double;
  1294. Fpr3 : double;
  1295. Fpr4 : double;
  1296. Fpr5 : double;
  1297. Fpr6 : double;
  1298. Fpr7 : double;
  1299. Fpr8 : double;
  1300. Fpr9 : double;
  1301. Fpr10 : double;
  1302. Fpr11 : double;
  1303. Fpr12 : double;
  1304. Fpr13 : double;
  1305. Fpr14 : double;
  1306. Fpr15 : double;
  1307. Fpr16 : double;
  1308. Fpr17 : double;
  1309. Fpr18 : double;
  1310. Fpr19 : double;
  1311. Fpr20 : double;
  1312. Fpr21 : double;
  1313. Fpr22 : double;
  1314. Fpr23 : double;
  1315. Fpr24 : double;
  1316. Fpr25 : double;
  1317. Fpr26 : double;
  1318. Fpr27 : double;
  1319. Fpr28 : double;
  1320. Fpr29 : double;
  1321. Fpr30 : double;
  1322. Fpr31 : double;
  1323. Fpscr : double;
  1324. Gpr0 : DWORD;
  1325. Gpr1 : DWORD;
  1326. Gpr2 : DWORD;
  1327. Gpr3 : DWORD;
  1328. Gpr4 : DWORD;
  1329. Gpr5 : DWORD;
  1330. Gpr6 : DWORD;
  1331. Gpr7 : DWORD;
  1332. Gpr8 : DWORD;
  1333. Gpr9 : DWORD;
  1334. Gpr10 : DWORD;
  1335. Gpr11 : DWORD;
  1336. Gpr12 : DWORD;
  1337. Gpr13 : DWORD;
  1338. Gpr14 : DWORD;
  1339. Gpr15 : DWORD;
  1340. Gpr16 : DWORD;
  1341. Gpr17 : DWORD;
  1342. Gpr18 : DWORD;
  1343. Gpr19 : DWORD;
  1344. Gpr20 : DWORD;
  1345. Gpr21 : DWORD;
  1346. Gpr22 : DWORD;
  1347. Gpr23 : DWORD;
  1348. Gpr24 : DWORD;
  1349. Gpr25 : DWORD;
  1350. Gpr26 : DWORD;
  1351. Gpr27 : DWORD;
  1352. Gpr28 : DWORD;
  1353. Gpr29 : DWORD;
  1354. Gpr30 : DWORD;
  1355. Gpr31 : DWORD;
  1356. Cr : DWORD;
  1357. Xer : DWORD;
  1358. Msr : DWORD;
  1359. Iar : DWORD;
  1360. Lr : DWORD;
  1361. Ctr : DWORD;
  1362. ContextFlags : DWORD;
  1363. Fill : array[0..2] of DWORD;
  1364. Dr0 : DWORD;
  1365. Dr1 : DWORD;
  1366. Dr2 : DWORD;
  1367. Dr3 : DWORD;
  1368. Dr4 : DWORD;
  1369. Dr5 : DWORD;
  1370. Dr6 : DWORD;
  1371. Dr7 : DWORD;
  1372. end;
  1373. _STACK_FRAME_HEADER = record // GPR 1 points here
  1374. BackChain : DWORD; // Addr of previous frame
  1375. GlueSaved1 : DWORD; // Used by glue code
  1376. GlueSaved2 : DWORD;
  1377. Reserved1 : DWORD;
  1378. Spare1 : DWORD;
  1379. Spare2 : DWORD;
  1380. Parameter0 : DWORD; // First 8 parameter words are
  1381. Parameter1 : DWORD; // always present
  1382. Parameter2 : DWORD;
  1383. Parameter3 : DWORD;
  1384. Parameter4 : DWORD;
  1385. Parameter5 : DWORD;
  1386. Parameter6 : DWORD;
  1387. Parameter7 : DWORD;
  1388. end;
  1389. PSTACK_FRAME_HEADER=^STACK_FRAME_HEADER;
  1390. {$endif _MPPC_} //+winnt
  1391. {$ifdef _IA64_} //+winnt all block
  1392. type
  1393. CONTEXT = record
  1394. ContextFlags : DWORD;
  1395. Fill1 : array[0..2] of DWORD;
  1396. DbI0 : ULONGLONG; // Instruction debug registers
  1397. DbI1 : ULONGLONG;
  1398. DbI2 : ULONGLONG;
  1399. DbI3 : ULONGLONG;
  1400. DbI4 : ULONGLONG;
  1401. DbI5 : ULONGLONG;
  1402. DbI6 : ULONGLONG;
  1403. DbI7 : ULONGLONG;
  1404. DbD0 : ULONGLONG; // Data debug registers
  1405. DbD1 : ULONGLONG;
  1406. DbD2 : ULONGLONG;
  1407. DbD3 : ULONGLONG;
  1408. DbD4 : ULONGLONG;
  1409. DbD5 : ULONGLONG;
  1410. DbD6 : ULONGLONG;
  1411. DbD7 : ULONGLONG;
  1412. FltS0 : FLOAT128; // Lower floating point (f2-f5) - saved (preserved)
  1413. FltS1 : FLOAT128;
  1414. FltS2 : FLOAT128;
  1415. FltS3 : FLOAT128;
  1416. FltT0 : FLOAT128; // Lower floating point (f6-f15) - temporary (volatile)
  1417. FltT1 : FLOAT128;
  1418. FltT2 : FLOAT128;
  1419. FltT3 : FLOAT128;
  1420. FltT4 : FLOAT128;
  1421. FltT5 : FLOAT128;
  1422. FltT6 : FLOAT128;
  1423. FltT7 : FLOAT128;
  1424. FltT8 : FLOAT128;
  1425. FltT9 : FLOAT128;
  1426. FltS4 : FLOAT128; // Higher floating point (f16-f31) - saved (preserved)
  1427. FltS5 : FLOAT128;
  1428. FltS6 : FLOAT128;
  1429. FltS7 : FLOAT128;
  1430. FltS8 : FLOAT128;
  1431. FltS9 : FLOAT128;
  1432. FltS10 : FLOAT128;
  1433. FltS11 : FLOAT128;
  1434. FltS12 : FLOAT128;
  1435. FltS13 : FLOAT128;
  1436. FltS14 : FLOAT128;
  1437. FltS15 : FLOAT128;
  1438. FltS16 : FLOAT128;
  1439. FltS17 : FLOAT128;
  1440. FltS18 : FLOAT128;
  1441. FltS19 : FLOAT128;
  1442. FltF32 : FLOAT128; // Higher floating point (f32-f127) - temporary (volatile)
  1443. FltF33 : FLOAT128;
  1444. FltF34 : FLOAT128;
  1445. FltF35 : FLOAT128;
  1446. FltF36 : FLOAT128;
  1447. FltF37 : FLOAT128;
  1448. FltF38 : FLOAT128;
  1449. FltF39 : FLOAT128;
  1450. FltF40 : FLOAT128;
  1451. FltF41 : FLOAT128;
  1452. FltF42 : FLOAT128;
  1453. FltF43 : FLOAT128;
  1454. FltF44 : FLOAT128;
  1455. FltF45 : FLOAT128;
  1456. FltF46 : FLOAT128;
  1457. FltF47 : FLOAT128;
  1458. FltF48 : FLOAT128;
  1459. FltF49 : FLOAT128;
  1460. FltF50 : FLOAT128;
  1461. FltF51 : FLOAT128;
  1462. FltF52 : FLOAT128;
  1463. FltF53 : FLOAT128;
  1464. FltF54 : FLOAT128;
  1465. FltF55 : FLOAT128;
  1466. FltF56 : FLOAT128;
  1467. FltF57 : FLOAT128;
  1468. FltF58 : FLOAT128;
  1469. FltF59 : FLOAT128;
  1470. FltF60 : FLOAT128;
  1471. FltF61 : FLOAT128;
  1472. FltF62 : FLOAT128;
  1473. FltF63 : FLOAT128;
  1474. FltF64 : FLOAT128;
  1475. FltF65 : FLOAT128;
  1476. FltF66 : FLOAT128;
  1477. FltF67 : FLOAT128;
  1478. FltF68 : FLOAT128;
  1479. FltF69 : FLOAT128;
  1480. FltF70 : FLOAT128;
  1481. FltF71 : FLOAT128;
  1482. FltF72 : FLOAT128;
  1483. FltF73 : FLOAT128;
  1484. FltF74 : FLOAT128;
  1485. FltF75 : FLOAT128;
  1486. FltF76 : FLOAT128;
  1487. FltF77 : FLOAT128;
  1488. FltF78 : FLOAT128;
  1489. FltF79 : FLOAT128;
  1490. FltF80 : FLOAT128;
  1491. FltF81 : FLOAT128;
  1492. FltF82 : FLOAT128;
  1493. FltF83 : FLOAT128;
  1494. FltF84 : FLOAT128;
  1495. FltF85 : FLOAT128;
  1496. FltF86 : FLOAT128;
  1497. FltF87 : FLOAT128;
  1498. FltF88 : FLOAT128;
  1499. FltF89 : FLOAT128;
  1500. FltF90 : FLOAT128;
  1501. FltF91 : FLOAT128;
  1502. FltF92 : FLOAT128;
  1503. FltF93 : FLOAT128;
  1504. FltF94 : FLOAT128;
  1505. FltF95 : FLOAT128;
  1506. FltF96 : FLOAT128;
  1507. FltF97 : FLOAT128;
  1508. FltF98 : FLOAT128;
  1509. FltF99 : FLOAT128;
  1510. FltF100 : FLOAT128;
  1511. FltF101 : FLOAT128;
  1512. FltF102 : FLOAT128;
  1513. FltF103 : FLOAT128;
  1514. FltF104 : FLOAT128;
  1515. FltF105 : FLOAT128;
  1516. FltF106 : FLOAT128;
  1517. FltF107 : FLOAT128;
  1518. FltF108 : FLOAT128;
  1519. FltF109 : FLOAT128;
  1520. FltF110 : FLOAT128;
  1521. FltF111 : FLOAT128;
  1522. FltF112 : FLOAT128;
  1523. FltF113 : FLOAT128;
  1524. FltF114 : FLOAT128;
  1525. FltF115 : FLOAT128;
  1526. FltF116 : FLOAT128;
  1527. FltF117 : FLOAT128;
  1528. FltF118 : FLOAT128;
  1529. FltF119 : FLOAT128;
  1530. FltF120 : FLOAT128;
  1531. FltF121 : FLOAT128;
  1532. FltF122 : FLOAT128;
  1533. FltF123 : FLOAT128;
  1534. FltF124 : FLOAT128;
  1535. FltF125 : FLOAT128;
  1536. FltF126 : FLOAT128;
  1537. FltF127 : FLOAT128;
  1538. StFPSR : ULONGLONG; // FP status
  1539. StFSR : ULONGLONG; // x86 FP status (a copy of AR28)
  1540. StFIR : ULONGLONG; // x86 FP status (a copy of AR29)
  1541. StFDR : ULONGLONG; // x86 FP status (a copy of AR30)
  1542. IntGp : ULONGLONG; // global pointer (r1) - temporary (volatile)
  1543. IntT0 : ULONGLONG; // integer registers (r2-r3) - temporary (volatile)
  1544. IntT1 : ULONGLONG;
  1545. IntS0 : ULONGLONG; // integer registers (r4-r7) - saved (preserved)
  1546. IntS1 : ULONGLONG;
  1547. IntS2 : ULONGLONG;
  1548. IntS3 : ULONGLONG;
  1549. IntV0 : ULONGLONG; // return value (r8) - temporary (volatile)
  1550. IntT2 : ULONGLONG; // integer registers (r9-r11) - temporary (volatile)
  1551. IntT3 : ULONGLONG;
  1552. IntT4 : ULONGLONG;
  1553. IntSP : ULONGLONG; // stack pointer (r12) - special
  1554. IntTeb : ULONGLONG; // teb (r13) - special
  1555. IntT5 : ULONGLONG; // integer registers (r14-r31) - temporary (volatile)
  1556. IntT6 : ULONGLONG;
  1557. IntT7 : ULONGLONG;
  1558. IntT8 : ULONGLONG;
  1559. IntT9 : ULONGLONG;
  1560. IntT10 : ULONGLONG;
  1561. IntT11 : ULONGLONG;
  1562. IntT12 : ULONGLONG;
  1563. IntT13 : ULONGLONG;
  1564. IntT14 : ULONGLONG;
  1565. IntT15 : ULONGLONG;
  1566. IntT16 : ULONGLONG;
  1567. IntT17 : ULONGLONG;
  1568. IntT18 : ULONGLONG;
  1569. IntT19 : ULONGLONG;
  1570. IntT20 : ULONGLONG;
  1571. IntT21 : ULONGLONG;
  1572. IntT22 : ULONGLONG;
  1573. IntNats : ULONGLONG; // Nat bits for general registers
  1574. // r1-r31 in bit positions 1 to 31.
  1575. Preds : ULONGLONG; // predicates - saved (preserved)
  1576. BrRp : ULONGLONG; // return pointer (b0) - saved (preserved)
  1577. BrS0 : ULONGLONG; // branch registers (b1-b5) - saved (preserved)
  1578. BrS1 : ULONGLONG;
  1579. BrS2 : ULONGLONG;
  1580. BrS3 : ULONGLONG;
  1581. BrS4 : ULONGLONG;
  1582. BrT0 : ULONGLONG; // branch registers (b6-b7) - temporary (volatile)
  1583. BrT1 : ULONGLONG;
  1584. // iA32 related Interger registers
  1585. SegCSD : ULONGLONG; // iA32 CSDescriptor (Ar25)
  1586. SegSSD : ULONGLONG; // iA32 SSDescriptor (Ar26)
  1587. // Other application registers
  1588. ApUNAT : ULONGLONG; // User Nat collection register - saved (preserved)
  1589. ApLC : ULONGLONG; // Loop counter register - saved (preserved)
  1590. ApEC : ULONGLONG; // Epilog counter register - saved (preserved)
  1591. ApCCV : ULONGLONG; // CMPXCHG value register - temporary (volatile)
  1592. ApDCR : ULONGLONG; // Default control register (TBD)
  1593. // Register stack info
  1594. RsPFS : ULONGLONG; // Previous function state - saved (preserved)
  1595. RsBSP : ULONGLONG; // Backing store pointer - saved (preserved)
  1596. RsBSPSTORE : ULONGLONG; // BSP Store - saved (preserved)
  1597. RsRSC : ULONGLONG; // RSE configuration - temporary (volatile)
  1598. RsRNAT : ULONGLONG; // RSE Nat collection register - saved (preserved)
  1599. // iA32 related control registers
  1600. Eflag : ULONGLONG; // Eflag copy of Ar24
  1601. Cflag : ULONGLONG; // Cr0+Cr4 copy of Ar27
  1602. // Trap Status Information
  1603. StIPSR : ULONGLONG; // Interruption Processor Status
  1604. StIIP : ULONGLONG; // Interruption IP
  1605. StIFS : ULONGLONG; // Interruption Function State
  1606. end;
  1607. FLOATING_SAVE_AREA = record
  1608. ControlWord : DWORD;
  1609. StatusWord : DWORD;
  1610. TagWord : DWORD;
  1611. ErrorOffset : DWORD;
  1612. ErrorSelector : DWORD;
  1613. DataOffset : DWORD;
  1614. DataSelector : DWORD;
  1615. RegisterArea : array[0..SIZE_OF_80387_REGISTERS-1] of BYTE;
  1616. Cr0NpxState : DWORD;
  1617. end;
  1618. _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA;
  1619. TFLOATINGSAVEAREA = FLOATING_SAVE_AREA;
  1620. PFLOATING_SAVE_AREA = ^FLOATING_SAVE_AREA;
  1621. CONTEXT86 = record
  1622. ContextFlags : DWORD;
  1623. Dr0 : DWORD;
  1624. Dr1 : DWORD;
  1625. Dr2 : DWORD;
  1626. Dr3 : DWORD;
  1627. Dr6 : DWORD;
  1628. Dr7 : DWORD;
  1629. FloatSave : FLOATING_SAVE_AREA;
  1630. SegGs : DWORD;
  1631. SegFs : DWORD;
  1632. SegEs : DWORD;
  1633. SegDs : DWORD;
  1634. Edi : DWORD;
  1635. Esi : DWORD;
  1636. Ebx : DWORD;
  1637. Edx : DWORD;
  1638. Ecx : DWORD;
  1639. Eax : DWORD;
  1640. Ebp : DWORD;
  1641. Eip : DWORD;
  1642. SegCs : DWORD;
  1643. EFlags : DWORD;
  1644. Esp : DWORD;
  1645. SegSs : DWORD;
  1646. end;
  1647. LDT_ENTRY = record
  1648. LimitLow : WORD;
  1649. BaseLow : WORD;
  1650. HighWord : record
  1651. case longint of
  1652. 0 : ( Bytes : record
  1653. BaseMid : BYTE;
  1654. Flags1 : BYTE;
  1655. Flags2 : BYTE;
  1656. BaseHi : BYTE;
  1657. end );
  1658. 1 : ( Bits : record
  1659. flag0 : longint;
  1660. end );
  1661. end;
  1662. end;
  1663. LPLDT_ENTRY = ^LDT_ENTRY;
  1664. PLDT_ENTRY = ^LDT_ENTRY;
  1665. _LDT_ENTRY = LDT_ENTRY;
  1666. TLDTENTRY = LDT_ENTRY;
  1667. PLDTENTRY = ^LDT_ENTRY;
  1668. PLABEL_DESCRIPTOR = record
  1669. EntryPoint : ULONGLONG;
  1670. GlobalPointer : ULONGLONG;
  1671. end;
  1672. _PLABEL_DESCRIPTOR = PLABEL_DESCRIPTOR;
  1673. PPLABEL_DESCRIPTOR = ^PLABEL_DESCRIPTOR;
  1674. {$endif _IA64_} //+winnt
  1675. {$ifdef SHx} //+winnt all block added
  1676. //These are the debug or break registers on the SH3
  1677. DEBUG_REGISTERS = RECORD
  1678. BarA : ULONG;
  1679. BasrA : UCHAR;
  1680. BamrA : UCHAR;
  1681. BbrA : USHORT;
  1682. BarB : ULONG;
  1683. BasrB : UCHAR;
  1684. BamrB : UCHAR;
  1685. BbrB : USHORT;
  1686. BdrB : ULONG;
  1687. BdmrB : ULONG;
  1688. Brcr : USHORT;
  1689. Align : USHORT;
  1690. end;
  1691. _DEBUG_REGISTERS=DEBUG_REZGISTERS;
  1692. PDEBUG_REGISTERS=^DEBUG_REZGISTERS;
  1693. CONTEXT = record
  1694. ContextFlags : ULONG;
  1695. PR : ULONG;
  1696. MACH : ULONG;
  1697. MACL : ULONG;
  1698. GBR : ULONG;
  1699. R0 : ULONG;
  1700. R1 : ULONG;
  1701. R2 : ULONG;
  1702. R3 : ULONG;
  1703. R4 : ULONG;
  1704. R5 : ULONG;
  1705. R6 : ULONG;
  1706. R7 : ULONG;
  1707. R8 : ULONG;
  1708. R9 : ULONG;
  1709. R10 : ULONG;
  1710. R11 : ULONG;
  1711. R12 : ULONG;
  1712. R13 : ULONG;
  1713. R14 : ULONG;
  1714. R15 : ULONG;
  1715. // N.B. The registers r15 and ra are defined in the integer section,
  1716. // but are considered part of the control context rather than part of
  1717. // the integer context.
  1718. //
  1719. Fir : ULONG;
  1720. Psr : ULONG;
  1721. {$ifndef SH3e}
  1722. {$ifndef SH4}
  1723. OldStuff : Array[0..1] of ULONG;
  1724. DebugRegisters : DEBUG_REGISTERS;
  1725. DSR : ULONG;
  1726. MOD_ : ULONG; // MOD replaced by MOD_
  1727. RS : ULONG;
  1728. RE : ULONG;
  1729. A0 : ULONG;
  1730. A1 : ULONG;
  1731. M0 : ULONG;
  1732. M1 : ULONG;
  1733. X0 : ULONG;
  1734. X1 : ULONG;
  1735. Y0 : ULONG;
  1736. Y1 : ULONG;
  1737. // The guard bit registers are 8 bits long, but can only be saved and
  1738. // restored using 16 or 32 bit moves. Note, the contents of the guard
  1739. // bit register are in the upper 8 bits.
  1740. A0G : USHORT;
  1741. A1G : USHORT;
  1742. {$else}
  1743. Fpscr : ULONG;
  1744. Fpul : ULONG;
  1745. FRegs : Array[0..15] of ULONG;
  1746. xFRegs : Array[0..15] of ULONG;
  1747. {$endif SH4}
  1748. {$else}
  1749. Fpscr : ULONG;
  1750. Fpul : ULONG;
  1751. FRegs : Array[0..15] of ULONG;
  1752. {$endif SH3e}
  1753. end;
  1754. {$endif SHx} //+winnt
  1755. {$ifdef CPUARM} //+winnt all block added
  1756. CONTEXT = record
  1757. ContextFlags : ULONG;
  1758. R0 : ULONG;
  1759. R1 : ULONG;
  1760. R2 : ULONG;
  1761. R3 : ULONG;
  1762. R4 : ULONG;
  1763. R5 : ULONG;
  1764. R6 : ULONG;
  1765. R7 : ULONG;
  1766. R8 : ULONG;
  1767. R9 : ULONG;
  1768. R10 : ULONG;
  1769. R11 : ULONG;
  1770. R12 : ULONG;
  1771. SP : ULONG;
  1772. Lr : ULONG;
  1773. Pc : ULONG;
  1774. Psr : ULONG;
  1775. Fpscr : ULONG;
  1776. FpExc : ULONG;
  1777. S : Array [0..NUM_VFP_REGS] of ULONG;
  1778. FpExtra : Array [0..NUM_EXTRA_CONTROL_REGS-1] of ULONG;
  1779. end;
  1780. {$endif CPUARM} //+winnt
  1781. LPCONTEXT = ^CONTEXT;
  1782. _CONTEXT = CONTEXT;
  1783. TCONTEXT = CONTEXT;
  1784. PCONTEXT = ^CONTEXT; //winnt
  1785. type
  1786. LIST_ENTRY = record //winnt
  1787. Flink : ^_LIST_ENTRY;
  1788. Blink : ^_LIST_ENTRY;
  1789. end;
  1790. _LIST_ENTRY = LIST_ENTRY;
  1791. TLISTENTRY = LIST_ENTRY;
  1792. PLISTENTRY = ^LIST_ENTRY;
  1793. CRITICAL_SECTION_DEBUG = record
  1794. _Type : WORD;
  1795. CreatorBackTraceIndex : WORD;
  1796. CriticalSection : ^_CRITICAL_SECTION;
  1797. ProcessLocksList : LIST_ENTRY;
  1798. EntryCount : DWORD;
  1799. ContentionCount : DWORD;
  1800. Depth : DWORD;
  1801. OwnerBackTrace : array[0..4] of PVOID;
  1802. end;
  1803. LPCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG;
  1804. PCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG;
  1805. _CRITICAL_SECTION_DEBUG = CRITICAL_SECTION_DEBUG;
  1806. TCRITICALSECTIONDEBUG = CRITICAL_SECTION_DEBUG;
  1807. PCRITICALSECTIONDEBUG = ^CRITICAL_SECTION_DEBUG;
  1808. CRITICAL_SECTION = TRTLCriticalSection;
  1809. _CRITICAL_SECTION = TRTLCriticalSection;
  1810. TCRITICAL_SECTION = TRTLCriticalSection;
  1811. PCRITICAL_SECTION = PRTLCriticalSection;
  1812. LPCRITICAL_SECTION = PRTLCriticalSection;
  1813. TCRITICALSECTION = TRTLCriticalSection;
  1814. PCRITICALSECTION = PRTLCriticalSection;
  1815. { SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; }
  1816. SECURITY_QUALITY_OF_SERVICE = record
  1817. Length : DWORD;
  1818. ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL;
  1819. ContextTrackingMode : WINBOOL;
  1820. EffectiveOnly : BOOLEAN;
  1821. end;
  1822. PSECURITY_QUALITY_OF_SERVICE = ^SECURITY_QUALITY_OF_SERVICE;
  1823. _SECURITY_QUALITY_OF_SERVICE = SECURITY_QUALITY_OF_SERVICE;
  1824. TSECURITYQUALITYOFSERVICE = SECURITY_QUALITY_OF_SERVICE;
  1825. PSECURITYQUALITYOFSERVICE = ^SECURITY_QUALITY_OF_SERVICE;
  1826. CONVCONTEXT = record
  1827. cb : UINT;
  1828. wFlags : UINT;
  1829. wCountryID : UINT;
  1830. iCodePage : longint;
  1831. dwLangID : DWORD;
  1832. dwSecurity : DWORD;
  1833. qos : SECURITY_QUALITY_OF_SERVICE;
  1834. end;
  1835. tagCONVCONTEXT = CONVCONTEXT;
  1836. TCONVCONTEXT = CONVCONTEXT;
  1837. PCONVCONTEXT = ^CONVCONTEXT;
  1838. CONVINFO = record
  1839. cb : DWORD;
  1840. hUser : DWORD;
  1841. hConvPartner : HCONV;
  1842. hszSvcPartner : HSZ;
  1843. hszServiceReq : HSZ;
  1844. hszTopic : HSZ;
  1845. hszItem : HSZ;
  1846. wFmt : UINT;
  1847. wType : UINT;
  1848. wStatus : UINT;
  1849. wConvst : UINT;
  1850. wLastError : UINT;
  1851. hConvList : HCONVLIST;
  1852. ConvCtxt : CONVCONTEXT;
  1853. _hwnd : HWND;
  1854. hwndPartner : HWND;
  1855. end;
  1856. tagCONVINFO = CONVINFO;
  1857. TCONVINFO = CONVINFO;
  1858. PCONVINFO = ^CONVINFO;
  1859. COPYDATASTRUCT = record
  1860. dwData : DWORD;
  1861. cbData : DWORD;
  1862. lpData : PVOID;
  1863. end;
  1864. tagCOPYDATASTRUCT = COPYDATASTRUCT;
  1865. TCOPYDATASTRUCT = COPYDATASTRUCT;
  1866. PCOPYDATASTRUCT = ^COPYDATASTRUCT;
  1867. CPINFO = record
  1868. MaxCharSize : UINT;
  1869. DefaultChar : array[0..(MAX_DEFAULTCHAR)-1] of BYTE;
  1870. LeadByte : array[0..(MAX_LEADBYTES)-1] of BYTE;
  1871. end;
  1872. LPCPINFO = ^CPINFO;
  1873. _cpinfo = CPINFO;
  1874. Tcpinfo = CPINFO;
  1875. Pcpinfo = ^CPINFO;
  1876. CPLINFO = record
  1877. idIcon : longint;
  1878. idName : longint;
  1879. idInfo : longint;
  1880. lData : LONG;
  1881. end;
  1882. tagCPLINFO = CPLINFO;
  1883. TCPLINFO = CPLINFO;
  1884. PCPLINFO = ^CPLINFO;
  1885. CREATE_PROCESS_DEBUG_INFO = record
  1886. hFile : HANDLE;
  1887. hProcess : HANDLE;
  1888. hThread : HANDLE;
  1889. lpBaseOfImage : LPVOID;
  1890. dwDebugInfoFileOffset : DWORD;
  1891. nDebugInfoSize : DWORD;
  1892. lpThreadLocalBase : LPVOID;
  1893. lpStartAddress : LPTHREAD_START_ROUTINE;
  1894. lpImageName : LPVOID;
  1895. fUnicode : WORD;
  1896. end;
  1897. _CREATE_PROCESS_DEBUG_INFO = CREATE_PROCESS_DEBUG_INFO;
  1898. TCREATEPROCESSDEBUGINFO = CREATE_PROCESS_DEBUG_INFO;
  1899. PCREATEPROCESSDEBUGINFO = ^CREATE_PROCESS_DEBUG_INFO;
  1900. CREATE_THREAD_DEBUG_INFO = record
  1901. hThread : HANDLE;
  1902. lpThreadLocalBase : LPVOID;
  1903. lpStartAddress : LPTHREAD_START_ROUTINE;
  1904. end;
  1905. _CREATE_THREAD_DEBUG_INFO = CREATE_THREAD_DEBUG_INFO;
  1906. TCREATETHREADDEBUGINFO = CREATE_THREAD_DEBUG_INFO;
  1907. PCREATETHREADDEBUGINFO = ^CREATE_THREAD_DEBUG_INFO;
  1908. (*
  1909. TODO: sockets
  1910. typedef struct _SOCKET_ADDRESS {
  1911. LPSOCKADDR lpSockaddr ;
  1912. INT iSockaddrLength ;
  1913. } SOCKET_ADDRESS, PSOCKET_ADDRESS, LPSOCKET_ADDRESS;
  1914. }
  1915. {
  1916. typedef struct _CSADDR_INFO {
  1917. SOCKET_ADDRESS LocalAddr;
  1918. SOCKET_ADDRESS RemoteAddr;
  1919. INT iSocketType;
  1920. INT iProtocol;
  1921. } CSADDR_INFO;
  1922. *)
  1923. CURRENCYFMT = record
  1924. NumDigits : UINT;
  1925. LeadingZero : UINT;
  1926. Grouping : UINT;
  1927. lpDecimalSep : LPTSTR;
  1928. lpThousandSep : LPTSTR;
  1929. NegativeOrder : UINT;
  1930. PositiveOrder : UINT;
  1931. lpCurrencySymbol : LPTSTR;
  1932. end;
  1933. _currencyfmt = CURRENCYFMT;
  1934. Tcurrencyfmt = CURRENCYFMT;
  1935. Pcurrencyfmt = ^CURRENCYFMT;
  1936. CURSORSHAPE = record
  1937. xHotSpot : longint;
  1938. yHotSpot : longint;
  1939. cx : longint;
  1940. cy : longint;
  1941. cbWidth : longint;
  1942. Planes : BYTE;
  1943. BitsPixel : BYTE;
  1944. end;
  1945. LPCURSORSHAPE = ^CURSORSHAPE;
  1946. tagCURSORSHAPE = CURSORSHAPE;
  1947. TCURSORSHAPE = CURSORSHAPE;
  1948. PCURSORSHAPE = ^CURSORSHAPE;
  1949. CWPRETSTRUCT = record
  1950. lResult : LRESULT;
  1951. lParam : LPARAM;
  1952. wParam : WPARAM;
  1953. message : DWORD;
  1954. hwnd : HWND;
  1955. end;
  1956. tagCWPRETSTRUCT = CWPRETSTRUCT;
  1957. TCWPRETSTRUCT = CWPRETSTRUCT;
  1958. PCWPRETSTRUCT = ^CWPRETSTRUCT;
  1959. CWPSTRUCT = record
  1960. lParam : LPARAM;
  1961. wParam : WPARAM;
  1962. message : UINT;
  1963. hwnd : HWND;
  1964. end;
  1965. tagCWPSTRUCT = CWPSTRUCT;
  1966. TCWPSTRUCT = CWPSTRUCT;
  1967. PCWPSTRUCT = ^CWPSTRUCT;
  1968. DATATYPES_INFO_1 = record
  1969. pName : LPTSTR;
  1970. end;
  1971. _DATATYPES_INFO_1 = DATATYPES_INFO_1;
  1972. TDATATYPESINFO1 = DATATYPES_INFO_1;
  1973. PDATATYPESINFO1 = ^DATATYPES_INFO_1;
  1974. DDEACK = record
  1975. flag0 : word;
  1976. end;
  1977. TDDEACK = DDEACK;
  1978. PDDEACK = ^DDEACK;
  1979. const
  1980. bm_DDEACK_bAppReturnCode = $FF;
  1981. bp_DDEACK_bAppReturnCode = 0;
  1982. bm_DDEACK_reserved = $3F00;
  1983. bp_DDEACK_reserved = 8;
  1984. bm_DDEACK_fBusy = $4000;
  1985. bp_DDEACK_fBusy = 14;
  1986. bm_DDEACK_fAck = $8000;
  1987. bp_DDEACK_fAck = 15;
  1988. function bAppReturnCode(var a : DDEACK) : word;
  1989. procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word);
  1990. function reserved(var a : DDEACK) : word;
  1991. procedure set_reserved(var a : DDEACK; __reserved : word);
  1992. function fBusy(var a : DDEACK) : word;
  1993. procedure set_fBusy(var a : DDEACK; __fBusy : word);
  1994. function fAck(var a : DDEACK) : word;
  1995. procedure set_fAck(var a : DDEACK; __fAck : word);
  1996. type
  1997. DDEADVISE = record
  1998. flag0 : word;
  1999. cfFormat : integer;
  2000. end;
  2001. TDDEADVISE = DDEADVISE;
  2002. PDDEADVISE = ^DDEADVISE;
  2003. const
  2004. bm_DDEADVISE_reserved = $3FFF;
  2005. bp_DDEADVISE_reserved = 0;
  2006. bm_DDEADVISE_fDeferUpd = $4000;
  2007. bp_DDEADVISE_fDeferUpd = 14;
  2008. bm_DDEADVISE_fAckReq = $8000;
  2009. bp_DDEADVISE_fAckReq = 15;
  2010. function reserved(var a : DDEADVISE) : word;
  2011. procedure set_reserved(var a : DDEADVISE; __reserved : word);
  2012. function fDeferUpd(var a : DDEADVISE) : word;
  2013. procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word);
  2014. function fAckReq(var a : DDEADVISE) : word;
  2015. procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word);
  2016. type
  2017. DDEDATA = record
  2018. flag0 : word;
  2019. cfFormat : integer;
  2020. Value : array[0..0] of BYTE;
  2021. end;
  2022. PDDEDATA = ^DDEDATA;
  2023. const
  2024. bm_DDEDATA_unused = $FFF;
  2025. bp_DDEDATA_unused = 0;
  2026. bm_DDEDATA_fResponse = $1000;
  2027. bp_DDEDATA_fResponse = 12;
  2028. bm_DDEDATA_fRelease = $2000;
  2029. bp_DDEDATA_fRelease = 13;
  2030. bm_DDEDATA_reserved = $4000;
  2031. bp_DDEDATA_reserved = 14;
  2032. bm_DDEDATA_fAckReq = $8000;
  2033. bp_DDEDATA_fAckReq = 15;
  2034. function unused(var a : DDEDATA) : word;
  2035. procedure set_unused(var a : DDEDATA; __unused : word);
  2036. function fResponse(var a : DDEDATA) : word;
  2037. procedure set_fResponse(var a : DDEDATA; __fResponse : word);
  2038. function fRelease(var a : DDEDATA) : word;
  2039. procedure set_fRelease(var a : DDEDATA; __fRelease : word);
  2040. function reserved(var a : DDEDATA) : word;
  2041. procedure set_reserved(var a : DDEDATA; __reserved : word);
  2042. function fAckReq(var a : DDEDATA) : word;
  2043. procedure set_fAckReq(var a : DDEDATA; __fAckReq : word);
  2044. type
  2045. DDELN = record
  2046. flag0 : word;
  2047. cfFormat : integer;
  2048. end;
  2049. TDDELN = DDELN;
  2050. PDDELN = ^DDELN;
  2051. const
  2052. bm_DDELN_unused = $1FFF;
  2053. bp_DDELN_unused = 0;
  2054. bm_DDELN_fRelease = $2000;
  2055. bp_DDELN_fRelease = 13;
  2056. bm_DDELN_fDeferUpd = $4000;
  2057. bp_DDELN_fDeferUpd = 14;
  2058. bm_DDELN_fAckReq = $8000;
  2059. bp_DDELN_fAckReq = 15;
  2060. function unused(var a : DDELN) : word;
  2061. procedure set_unused(var a : DDELN; __unused : word);
  2062. function fRelease(var a : DDELN) : word;
  2063. procedure set_fRelease(var a : DDELN; __fRelease : word);
  2064. function fDeferUpd(var a : DDELN) : word;
  2065. procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word);
  2066. function fAckReq(var a : DDELN) : word;
  2067. procedure set_fAckReq(var a : DDELN; __fAckReq : word);
  2068. type
  2069. DDEML_MSG_HOOK_DATA = record
  2070. uiLo : UINT;
  2071. uiHi : UINT;
  2072. cbData : DWORD;
  2073. Data : array[0..7] of DWORD;
  2074. end;
  2075. tagDDEML_MSG_HOOK_DATA = DDEML_MSG_HOOK_DATA;
  2076. TDDEMLMSGHOOKDATA = DDEML_MSG_HOOK_DATA;
  2077. PDDEMLMSGHOOKDATA = ^DDEML_MSG_HOOK_DATA;
  2078. DDEPOKE = record
  2079. flag0 : word;
  2080. cfFormat : integer;
  2081. Value : array[0..0] of BYTE;
  2082. end;
  2083. TDDEPOKE = DDEPOKE;
  2084. PDDEPOKE = ^DDEPOKE;
  2085. const
  2086. bm_DDEPOKE_unused = $1FFF;
  2087. bp_DDEPOKE_unused = 0;
  2088. bm_DDEPOKE_fRelease = $2000;
  2089. bp_DDEPOKE_fRelease = 13;
  2090. bm_DDEPOKE_fReserved = $C000;
  2091. bp_DDEPOKE_fReserved = 14;
  2092. function unused(var a : DDEPOKE) : word;
  2093. procedure set_unused(var a : DDEPOKE; __unused : word);
  2094. function fRelease(var a : DDEPOKE) : word;
  2095. procedure set_fRelease(var a : DDEPOKE; __fRelease : word);
  2096. function fReserved(var a : DDEPOKE) : word;
  2097. procedure set_fReserved(var a : DDEPOKE; __fReserved : word);
  2098. type
  2099. DDEUP = record
  2100. flag0 : word;
  2101. cfFormat : integer;
  2102. rgb : array[0..0] of BYTE;
  2103. end;
  2104. TDDEUP = DDEUP;
  2105. PDDEUP = ^DDEUP;
  2106. const
  2107. bm_DDEUP_unused = $FFF;
  2108. bp_DDEUP_unused = 0;
  2109. bm_DDEUP_fAck = $1000;
  2110. bp_DDEUP_fAck = 12;
  2111. bm_DDEUP_fRelease = $2000;
  2112. bp_DDEUP_fRelease = 13;
  2113. bm_DDEUP_fReserved = $4000;
  2114. bp_DDEUP_fReserved = 14;
  2115. bm_DDEUP_fAckReq = $8000;
  2116. bp_DDEUP_fAckReq = 15;
  2117. function unused(var a : DDEUP) : word;
  2118. procedure set_unused(var a : DDEUP; __unused : word);
  2119. function fAck(var a : DDEUP) : word;
  2120. procedure set_fAck(var a : DDEUP; __fAck : word);
  2121. function fRelease(var a : DDEUP) : word;
  2122. procedure set_fRelease(var a : DDEUP; __fRelease : word);
  2123. function fReserved(var a : DDEUP) : word;
  2124. procedure set_fReserved(var a : DDEUP; __fReserved : word);
  2125. function fAckReq(var a : DDEUP) : word;
  2126. procedure set_fAckReq(var a : DDEUP; __fAckReq : word);
  2127. type
  2128. // definition of _exception struct - this struct is passed to the matherr
  2129. // routine when a floating point exception is detected
  2130. _EXCEPTION = record //+stdlib
  2131. type_ : Integer; //identifier type replaced by Type_ for compilation
  2132. Name : PChar; // name of function where error occured
  2133. arg1 : double; // first argument to function
  2134. arg2 : double; // second argument (if any) to function
  2135. retval : double; // value to be returned by function
  2136. end;
  2137. EXCEPTION_RECORD = record //winnt
  2138. ExceptionCode : DWORD;
  2139. ExceptionFlags : DWORD;
  2140. ExceptionRecord : ^_EXCEPTION_RECORD;
  2141. ExceptionAddress : PVOID;
  2142. NumberParameters : DWORD;
  2143. ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of Pointer; //~winnt, was DWORD, SDK:ULONG_PTR
  2144. end;
  2145. PEXCEPTION_RECORD = ^EXCEPTION_RECORD;
  2146. _EXCEPTION_RECORD = EXCEPTION_RECORD;
  2147. TEXCEPTIONRECORD = EXCEPTION_RECORD;
  2148. PEXCEPTIONRECORD = ^EXCEPTION_RECORD;
  2149. EXCEPTION_DEBUG_INFO = record
  2150. ExceptionRecord : EXCEPTION_RECORD;
  2151. dwFirstChance : DWORD;
  2152. end;
  2153. PEXCEPTION_DEBUG_INFO = ^EXCEPTION_DEBUG_INFO;
  2154. _EXCEPTION_DEBUG_INFO = EXCEPTION_DEBUG_INFO;
  2155. TEXCEPTIONDEBUGINFO = EXCEPTION_DEBUG_INFO;
  2156. PEXCEPTIONDEBUGINFO = ^EXCEPTION_DEBUG_INFO;
  2157. EXIT_PROCESS_DEBUG_INFO = record
  2158. dwExitCode : DWORD;
  2159. end;
  2160. _EXIT_PROCESS_DEBUG_INFO = EXIT_PROCESS_DEBUG_INFO;
  2161. TEXITPROCESSDEBUGINFO = EXIT_PROCESS_DEBUG_INFO;
  2162. PEXITPROCESSDEBUGINFO = ^EXIT_PROCESS_DEBUG_INFO;
  2163. EXIT_THREAD_DEBUG_INFO = record
  2164. dwExitCode : DWORD;
  2165. end;
  2166. _EXIT_THREAD_DEBUG_INFO = EXIT_THREAD_DEBUG_INFO;
  2167. TEXITTHREADDEBUGINFO = EXIT_THREAD_DEBUG_INFO;
  2168. PEXITTHREADDEBUGINFO = ^EXIT_THREAD_DEBUG_INFO;
  2169. LOAD_DLL_DEBUG_INFO = record
  2170. hFile : HANDLE;
  2171. lpBaseOfDll : LPVOID;
  2172. dwDebugInfoFileOffset : DWORD;
  2173. nDebugInfoSize : DWORD;
  2174. lpImageName : LPVOID;
  2175. fUnicode : WORD;
  2176. end;
  2177. _LOAD_DLL_DEBUG_INFO = LOAD_DLL_DEBUG_INFO;
  2178. TLOADDLLDEBUGINFO = LOAD_DLL_DEBUG_INFO;
  2179. PLOADDLLDEBUGINFO = ^LOAD_DLL_DEBUG_INFO;
  2180. UNLOAD_DLL_DEBUG_INFO = record
  2181. lpBaseOfDll : LPVOID;
  2182. end;
  2183. _UNLOAD_DLL_DEBUG_INFO = UNLOAD_DLL_DEBUG_INFO;
  2184. TUNLOADDLLDEBUGINFO = UNLOAD_DLL_DEBUG_INFO;
  2185. PUNLOADDLLDEBUGINFO = ^UNLOAD_DLL_DEBUG_INFO;
  2186. OUTPUT_DEBUG_STRING_INFO = record
  2187. lpDebugStringData : LPSTR;
  2188. fUnicode : WORD;
  2189. nDebugStringLength : WORD;
  2190. end;
  2191. _OUTPUT_DEBUG_STRING_INFO = OUTPUT_DEBUG_STRING_INFO;
  2192. TOUTPUTDEBUGSTRINGINFO = OUTPUT_DEBUG_STRING_INFO;
  2193. POUTPUTDEBUGSTRINGINFO = ^OUTPUT_DEBUG_STRING_INFO;
  2194. RIP_INFO = record
  2195. dwError : DWORD;
  2196. dwType : DWORD;
  2197. end;
  2198. _RIP_INFO = RIP_INFO;
  2199. TRIPINFO = RIP_INFO;
  2200. PRIPINFO = ^RIP_INFO;
  2201. DEBUG_EVENT = record
  2202. dwDebugEventCode : DWORD;
  2203. dwProcessId : DWORD;
  2204. dwThreadId : DWORD;
  2205. u : record
  2206. case longint of
  2207. 0 : ( Exception : EXCEPTION_DEBUG_INFO );
  2208. 1 : ( CreateThread : CREATE_THREAD_DEBUG_INFO );
  2209. 2 : ( CreateProcessInfo : CREATE_PROCESS_DEBUG_INFO );
  2210. 3 : ( ExitThread : EXIT_THREAD_DEBUG_INFO );
  2211. 4 : ( ExitProcess : EXIT_PROCESS_DEBUG_INFO );
  2212. 5 : ( LoadDll : LOAD_DLL_DEBUG_INFO );
  2213. 6 : ( UnloadDll : UNLOAD_DLL_DEBUG_INFO );
  2214. 7 : ( DebugString : OUTPUT_DEBUG_STRING_INFO );
  2215. 8 : ( RipInfo : RIP_INFO );
  2216. end;
  2217. end;
  2218. LPDEBUG_EVENT = ^DEBUG_EVENT;
  2219. _DEBUG_EVENT = DEBUG_EVENT;
  2220. TDEBUGEVENT = DEBUG_EVENT;
  2221. PDEBUGEVENT = ^DEBUG_EVENT;
  2222. DEBUGHOOKINFO = record
  2223. idThread : DWORD;
  2224. idThreadInstaller : DWORD;
  2225. lParam : LPARAM;
  2226. wParam : WPARAM;
  2227. code : longint;
  2228. end;
  2229. tagDEBUGHOOKINFO = DEBUGHOOKINFO;
  2230. TDEBUGHOOKINFO = DEBUGHOOKINFO;
  2231. PDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  2232. DELETEITEMSTRUCT = record
  2233. CtlType : UINT;
  2234. CtlID : UINT;
  2235. itemID : UINT;
  2236. hwndItem : HWND;
  2237. itemData : UINT;
  2238. end;
  2239. tagDELETEITEMSTRUCT = DELETEITEMSTRUCT;
  2240. TDELETEITEMSTRUCT = DELETEITEMSTRUCT;
  2241. PDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
  2242. DEV_BROADCAST_HDR = record
  2243. dbch_size : ULONG;
  2244. dbch_devicetype : ULONG;
  2245. dbch_reserved : ULONG;
  2246. end;
  2247. PDEV_BROADCAST_HDR = ^DEV_BROADCAST_HDR;
  2248. _DEV_BROADCAST_HDR = DEV_BROADCAST_HDR;
  2249. TDEVBROADCASTHDR = DEV_BROADCAST_HDR;
  2250. PDEVBROADCASTHDR = ^DEV_BROADCAST_HDR;
  2251. DEV_BROADCAST_OEM = record
  2252. dbco_size : ULONG;
  2253. dbco_devicetype : ULONG;
  2254. dbco_reserved : ULONG;
  2255. dbco_identifier : ULONG;
  2256. dbco_suppfunc : ULONG;
  2257. end;
  2258. PDEV_BROADCAST_OEM = ^DEV_BROADCAST_OEM;
  2259. _DEV_BROADCAST_OEM = DEV_BROADCAST_OEM;
  2260. TDEVBROADCASTOEM = DEV_BROADCAST_OEM;
  2261. PDEVBROADCASTOEM = ^DEV_BROADCAST_OEM;
  2262. DEV_BROADCAST_PORT = record
  2263. dbcp_size : ULONG;
  2264. dbcp_devicetype : ULONG;
  2265. dbcp_reserved : ULONG;
  2266. dbcp_name : array[0..0] of char;
  2267. end;
  2268. PDEV_BROADCAST_PORT = ^DEV_BROADCAST_PORT;
  2269. _DEV_BROADCAST_PORT = DEV_BROADCAST_PORT;
  2270. TDEVBROADCASTPORT = DEV_BROADCAST_PORT;
  2271. PDEVBROADCASTPORT = ^DEV_BROADCAST_PORT;
  2272. _DEV_BROADCAST_USERDEFINED = record
  2273. dbud_dbh : _DEV_BROADCAST_HDR;
  2274. dbud_szName : array[0..0] of char;
  2275. dbud_rgbUserDefined : array[0..0] of BYTE;
  2276. end;
  2277. TDEVBROADCASTUSERDEFINED = _DEV_BROADCAST_USERDEFINED;
  2278. PDEVBROADCASTUSERDEFINED = ^_DEV_BROADCAST_USERDEFINED;
  2279. DEV_BROADCAST_VOLUME = record
  2280. dbcv_size : ULONG;
  2281. dbcv_devicetype : ULONG;
  2282. dbcv_reserved : ULONG;
  2283. dbcv_unitmask : ULONG;
  2284. dbcv_flags : USHORT;
  2285. end;
  2286. PDEV_BROADCAST_VOLUME = ^DEV_BROADCAST_VOLUME;
  2287. _DEV_BROADCAST_VOLUME = DEV_BROADCAST_VOLUME;
  2288. TDEVBROADCASTVOLUME = DEV_BROADCAST_VOLUME;
  2289. PDEVBROADCASTVOLUME = ^DEV_BROADCAST_VOLUME;
  2290. DEVMODEA = record
  2291. dmDeviceName : array[0.. CCHDEVICENAME-1] of BCHAR;
  2292. dmSpecVersion : WORD;
  2293. dmDriverVersion: WORD;
  2294. dmSize : WORD;
  2295. dmDriverExtra : WORD;
  2296. dmFields : DWORD;
  2297. dmOrientation : short;
  2298. dmPaperSize : short;
  2299. dmPaperLength : short;
  2300. dmPaperWidth : short;
  2301. dmScale : short;
  2302. dmCopies : short;
  2303. dmDefaultSource: short;
  2304. dmPrintQuality : short;
  2305. dmColor : short;
  2306. dmDuplex : short;
  2307. dmYResolution : short;
  2308. dmTTOption : short;
  2309. dmCollate : short;
  2310. dmFormName : array [0..CCHFORMNAME-1] of BCHAR;
  2311. dmLogPixels : WORD;
  2312. dmBitsPerPel : DWORD;
  2313. dmPelsWidth : DWORD;
  2314. dmPelsHeight : DWORD;
  2315. dmDisplayFlags : DWORD;
  2316. dmDisplayFrequency : DWORD;
  2317. dmICMMethod : DWORD;
  2318. dmICMIntent : DWORD;
  2319. dmMediaType : DWORD;
  2320. dmDitherType : DWORD;
  2321. dmReserved1 : DWORD;
  2322. dmReserved2 : DWORD;
  2323. dmPanningWidth : DWORD;
  2324. dmPanningHeight: DWORD;
  2325. dmDisplayOrientation : DWORD;
  2326. end;
  2327. _DEVICEMODE1=DEVMODEA;
  2328. PDEVMODEA=^DEVMODEA;
  2329. NPDEVMODEA=^DEVMODEA;
  2330. LPDEVMODEA=^DEVMODEA;
  2331. DEVMODEW = record
  2332. dmDeviceName : array[0.. CCHDEVICENAME-1] of WCHAR;
  2333. dmSpecVersion : WORD;
  2334. dmDriverVersion: WORD;
  2335. dmSize : WORD;
  2336. dmDriverExtra : WORD;
  2337. dmFields : DWORD;
  2338. dmOrientation : short;
  2339. dmPaperSize : short;
  2340. dmPaperLength : short;
  2341. dmPaperWidth : short;
  2342. dmScale : short;
  2343. dmCopies : short;
  2344. dmDefaultSource: short;
  2345. dmPrintQuality : short;
  2346. dmColor : short;
  2347. dmDuplex : short;
  2348. dmYResolution : short;
  2349. dmTTOption : short;
  2350. dmCollate : short;
  2351. dmFormName : array [0..CCHFORMNAME-1] of wchar;
  2352. dmLogPixels : WORD;
  2353. dmBitsPerPel : DWORD;
  2354. dmPelsWidth : DWORD;
  2355. dmPelsHeight : DWORD;
  2356. dmDisplayFlags : DWORD;
  2357. dmDisplayFrequency : DWORD;
  2358. dmDisplayOrientation : DWORD;
  2359. end;
  2360. LPDEVMODEW = ^DEVMODEW;
  2361. _devicemodeW = DEVMODEW;
  2362. devicemodeW = DEVMODEW;
  2363. TDeviceModeW = DEVMODEW;
  2364. PDeviceModeW = LPDEVMODEW;
  2365. TDEVMODEW = DEVMODEW;
  2366. PDEVMODEW = LPDEVMODEW;
  2367. {$IFDEF UNICODE}
  2368. DEVMODE=DEVMODEW;
  2369. LPDEVMODE = ^DEVMODEW;
  2370. _devicemode = DEVMODEW;
  2371. devicemode = DEVMODEW;
  2372. tdevicemode = DEVMODEW;
  2373. tdevicemodeA = DEVMODEW;
  2374. PDeviceModeA = LPDEVMODEW;
  2375. PDeviceMode = LPDEVMODEW;
  2376. TDEVMODE = DEVMODEW;
  2377. PDEVMODE = LPDEVMODEW;
  2378. {$ELSE UNICODE}
  2379. DEVMODE=DEVMODEA;
  2380. LPDEVMODE = ^DEVMODEA;
  2381. _devicemode = DEVMODEA;
  2382. devicemode = DEVMODEA;
  2383. tdevicemode = DEVMODEA;
  2384. tdevicemodeA = DEVMODEA;
  2385. PDeviceModeA = LPDEVMODEA;
  2386. PDeviceMode = LPDEVMODEA;
  2387. TDEVMODE = DEVMODEA;
  2388. PDEVMODE = LPDEVMODEA;
  2389. {$ENDIF UNICODE}
  2390. DEVNAMES = record
  2391. wDriverOffset : WORD;
  2392. wDeviceOffset : WORD;
  2393. wOutputOffset : WORD;
  2394. wDefault : WORD;
  2395. end;
  2396. LPDEVNAMES = ^DEVNAMES;
  2397. tagDEVNAMES = DEVNAMES;
  2398. TDEVNAMES = DEVNAMES;
  2399. PDEVNAMES = ^DEVNAMES;
  2400. DIBSECTION = record
  2401. dsBm : BITMAP;
  2402. dsBmih : BITMAPINFOHEADER;
  2403. dsBitfields : array[0..2] of DWORD;
  2404. dshSection : HANDLE;
  2405. dsOffset : DWORD;
  2406. end;
  2407. tagDIBSECTION = DIBSECTION;
  2408. TDIBSECTION = DIBSECTION;
  2409. PDIBSECTION = ^DIBSECTION;
  2410. LARGE_INTEGER = record //winnt
  2411. case byte of
  2412. 0: (LowPart : DWORD;
  2413. HighPart : LONG);
  2414. 1: (QuadPart : LONGLONG);
  2415. end;
  2416. PLARGE_INTEGER = ^LARGE_INTEGER; //winnt
  2417. _LARGE_INTEGER = LARGE_INTEGER; //winnt
  2418. TLargeInteger = Int64;
  2419. PLargeInteger = ^TLargeInteger;
  2420. ULARGE_INTEGER = record
  2421. case byte of
  2422. 0: (LowPart : DWORD;
  2423. HighPart : DWORD);
  2424. 1: (QuadPart : LONGLONG);
  2425. end;
  2426. PULARGE_INTEGER = ^ULARGE_INTEGER;
  2427. _ULARGE_INTEGER = ULARGE_INTEGER;
  2428. TULargeInteger = QWord;
  2429. PULargeInteger = ^TULargeInteger;
  2430. DISK_GEOMETRY = record
  2431. Cylinders : LARGE_INTEGER;
  2432. MediaType : MEDIA_TYPE;
  2433. TracksPerCylinder : DWORD;
  2434. SectorsPerTrack : DWORD;
  2435. BytesPerSector : DWORD;
  2436. end;
  2437. _DISK_GEOMETRY = DISK_GEOMETRY;
  2438. TDISKGEOMETRY = DISK_GEOMETRY;
  2439. PDISKGEOMETRY = ^DISK_GEOMETRY;
  2440. DISK_PERFORMANCE = record
  2441. BytesRead : LARGE_INTEGER;
  2442. BytesWritten : LARGE_INTEGER;
  2443. ReadTime : LARGE_INTEGER;
  2444. WriteTime : LARGE_INTEGER;
  2445. ReadCount : DWORD;
  2446. WriteCount : DWORD;
  2447. QueueDepth : DWORD;
  2448. end;
  2449. _DISK_PERFORMANCE = DISK_PERFORMANCE;
  2450. TDISKPERFORMANCE = DISK_PERFORMANCE;
  2451. PDISKPERFORMANCE = ^DISK_PERFORMANCE;
  2452. DLGITEMTEMPLATE = packed record
  2453. style : DWORD;
  2454. dwExtendedStyle : DWORD;
  2455. x : integer;
  2456. y : integer;
  2457. cx : integer;
  2458. cy : integer;
  2459. id : WORD;
  2460. end;
  2461. LPDLGITEMTEMPLATE = ^DLGITEMTEMPLATE;
  2462. TDLGITEMTEMPLATE = DLGITEMTEMPLATE;
  2463. PDLGITEMTEMPLATE = ^DLGITEMTEMPLATE;
  2464. DLGTEMPLATE = packed record
  2465. style : DWORD;
  2466. dwExtendedStyle : DWORD;
  2467. cdit : WORD;
  2468. x : integer;
  2469. y : integer;
  2470. cx : integer;
  2471. cy : integer;
  2472. end;
  2473. LPDLGTEMPLATE = ^DLGTEMPLATE;
  2474. LPCDLGTEMPLATE = ^DLGTEMPLATE;
  2475. LPCDLGTEMPLATEW = ^DLGTEMPLATE; //+winuser
  2476. TDLGTEMPLATE = DLGTEMPLATE;
  2477. PDLGTEMPLATE = ^DLGTEMPLATE;
  2478. DOC_INFO_1 = record
  2479. pDocName : LPTSTR;
  2480. pOutputFile : LPTSTR;
  2481. pDatatype : LPTSTR;
  2482. end;
  2483. _DOC_INFO_1 = DOC_INFO_1;
  2484. TDOCINFO1 = DOC_INFO_1;
  2485. PDOCINFO1 = ^DOC_INFO_1;
  2486. DOC_INFO_2 = record
  2487. pDocName : LPTSTR;
  2488. pOutputFile : LPTSTR;
  2489. pDatatype : LPTSTR;
  2490. dwMode : DWORD;
  2491. JobId : DWORD;
  2492. end;
  2493. _DOC_INFO_2 = DOC_INFO_2;
  2494. TDOCINFO2 = DOC_INFO_2;
  2495. PDOCINFO2 = ^DOC_INFO_2;
  2496. DOCINFO = record //+wingdi
  2497. cbSize : Integer;
  2498. lpszDocName : LPCWSTR;
  2499. lpszOutput : LPCWSTR;
  2500. lpszDatatype : LPCWSTR;
  2501. fwType : DWORD;
  2502. end;
  2503. TDOCINFO = DOCINFO;
  2504. PDOCINFO = ^DOCINFO;
  2505. DOCINFOW = DOCINFO;
  2506. TDOCINFOW = DOCINFOW;
  2507. _DOCINFOW=DOCINFOW; //+wingdi
  2508. LPDOCINFOW=^PDOCINFO; //+wingdi
  2509. PDOCINFOW=^PDOCINFO; //+wingdi
  2510. DRAGLISTINFO = record
  2511. uNotification : UINT;
  2512. hWnd : HWND;
  2513. ptCursor : POINT;
  2514. end;
  2515. LPDRAGLISTINFO = ^DRAGLISTINFO;
  2516. TDRAGLISTINFO = DRAGLISTINFO;
  2517. PDRAGLISTINFO = ^DRAGLISTINFO;
  2518. DRAWITEMSTRUCT = record
  2519. CtlType : UINT;
  2520. CtlID : UINT;
  2521. itemID : UINT;
  2522. itemAction : UINT;
  2523. itemState : UINT;
  2524. hwndItem : HWND;
  2525. hDC : HDC;
  2526. rcItem : RECT;
  2527. itemData : DWORD;
  2528. end;
  2529. LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  2530. tagDRAWITEMSTRUCT = DRAWITEMSTRUCT;
  2531. TDRAWITEMSTRUCT = DRAWITEMSTRUCT;
  2532. PDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  2533. DRAWTEXTPARAMS = record
  2534. cbSize : UINT;
  2535. iTabLength : longint;
  2536. iLeftMargin : longint;
  2537. iRightMargin : longint;
  2538. uiLengthDrawn : UINT;
  2539. end;
  2540. LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
  2541. TDRAWTEXTPARAMS = DRAWTEXTPARAMS;
  2542. PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
  2543. PARTITION_INFORMATION = record
  2544. PartitionType : BYTE;
  2545. BootIndicator : BOOLEAN;
  2546. RecognizedPartition : BOOLEAN;
  2547. RewritePartition : BOOLEAN;
  2548. StartingOffset : LARGE_INTEGER;
  2549. PartitionLength : LARGE_INTEGER;
  2550. HiddenSectors : LARGE_INTEGER;
  2551. end;
  2552. _PARTITION_INFORMATION = PARTITION_INFORMATION;
  2553. TPARTITIONINFORMATION = PARTITION_INFORMATION;
  2554. PPARTITIONINFORMATION = ^PARTITION_INFORMATION;
  2555. DRIVE_LAYOUT_INFORMATION = record
  2556. PartitionCount : DWORD;
  2557. Signature : DWORD;
  2558. PartitionEntry : array[0..0] of PARTITION_INFORMATION;
  2559. end;
  2560. _DRIVE_LAYOUT_INFORMATION = DRIVE_LAYOUT_INFORMATION;
  2561. TDRIVELAYOUTINFORMATION = DRIVE_LAYOUT_INFORMATION;
  2562. PDRIVELAYOUTINFORMATION = ^DRIVE_LAYOUT_INFORMATION;
  2563. DRIVER_INFO_1 = record
  2564. pName : LPTSTR;
  2565. end;
  2566. _DRIVER_INFO_1 = DRIVER_INFO_1;
  2567. TDRIVERINFO1 = DRIVER_INFO_1;
  2568. PDRIVERINFO1 = ^DRIVER_INFO_1;
  2569. DRIVER_INFO_2 = record
  2570. cVersion : DWORD;
  2571. pName : LPTSTR;
  2572. pEnvironment : LPTSTR;
  2573. pDriverPath : LPTSTR;
  2574. pDataFile : LPTSTR;
  2575. pConfigFile : LPTSTR;
  2576. end;
  2577. _DRIVER_INFO_2 = DRIVER_INFO_2;
  2578. TDRIVERINFO2 = DRIVER_INFO_2;
  2579. PDRIVERINFO2 = ^DRIVER_INFO_2;
  2580. DRIVER_INFO_3 = record
  2581. cVersion : DWORD;
  2582. pName : LPTSTR;
  2583. pEnvironment : LPTSTR;
  2584. pDriverPath : LPTSTR;
  2585. pDataFile : LPTSTR;
  2586. pConfigFile : LPTSTR;
  2587. pHelpFile : LPTSTR;
  2588. pDependentFiles : LPTSTR;
  2589. pMonitorName : LPTSTR;
  2590. pDefaultDataType : LPTSTR;
  2591. end;
  2592. _DRIVER_INFO_3 = DRIVER_INFO_3;
  2593. TDRIVERINFO3 = DRIVER_INFO_3;
  2594. PDRIVERINFO3 = ^DRIVER_INFO_3;
  2595. EDITSTREAM = record
  2596. dwCookie : DWORD;
  2597. dwError : DWORD;
  2598. pfnCallback : EDITSTREAMCALLBACK;
  2599. end;
  2600. _editstream = EDITSTREAM;
  2601. Teditstream = EDITSTREAM;
  2602. Peditstream = ^EDITSTREAM;
  2603. EMR = record
  2604. iType : DWORD;
  2605. nSize : DWORD;
  2606. end;
  2607. tagEMR = EMR;
  2608. TEMR = EMR;
  2609. PEMR = ^EMR;
  2610. EMRANGLEARC = record
  2611. emr : EMR;
  2612. ptlCenter : POINTL;
  2613. nRadius : DWORD;
  2614. eStartAngle : Single;
  2615. eSweepAngle : Single;
  2616. end;
  2617. tagEMRANGLEARC = EMRANGLEARC;
  2618. TEMRANGLEARC = EMRANGLEARC;
  2619. PEMRANGLEARC = ^EMRANGLEARC;
  2620. EMRARC = record
  2621. emr : EMR;
  2622. rclBox : RECTL;
  2623. ptlStart : POINTL;
  2624. ptlEnd : POINTL;
  2625. end;
  2626. tagEMRARC = EMRARC;
  2627. TEMRARC = EMRARC;
  2628. PEMRARC = ^EMRARC;
  2629. EMRARCTO = EMRARC;
  2630. TEMRARCTO = EMRARC;
  2631. PEMRARCTO = ^EMRARC;
  2632. EMRCHORD = EMRARC;
  2633. TEMRCHORD = EMRARC;
  2634. PEMRCHORD = ^EMRARC;
  2635. EMRPIE = EMRARC;
  2636. TEMRPIE = EMRARC;
  2637. PEMRPIE = ^EMRARC;
  2638. XFORM = record
  2639. eM11 : Single;
  2640. eM12 : Single;
  2641. eM21 : Single;
  2642. eM22 : Single;
  2643. eDx : Single;
  2644. eDy : Single;
  2645. end;
  2646. LPXFORM = ^XFORM;
  2647. _XFORM = XFORM;
  2648. TXFORM = XFORM;
  2649. PXFORM = ^XFORM;
  2650. EMRBITBLT = record
  2651. emr : EMR;
  2652. rclBounds : RECTL;
  2653. xDest : LONG;
  2654. yDest : LONG;
  2655. cxDest : LONG;
  2656. cyDest : LONG;
  2657. dwRop : DWORD;
  2658. xSrc : LONG;
  2659. ySrc : LONG;
  2660. xformSrc : XFORM;
  2661. crBkColorSrc : COLORREF;
  2662. iUsageSrc : DWORD;
  2663. offBmiSrc : DWORD;
  2664. offBitsSrc : DWORD;
  2665. cbBitsSrc : DWORD;
  2666. end;
  2667. tagEMRBITBLT = EMRBITBLT;
  2668. TEMRBITBLT = EMRBITBLT;
  2669. PEMRBITBLT = ^EMRBITBLT;
  2670. LOGBRUSH = record
  2671. lbStyle : UINT;
  2672. lbColor : COLORREF;
  2673. lbHatch : LONG;
  2674. end;
  2675. tagLOGBRUSH = LOGBRUSH;
  2676. TLOGBRUSH = LOGBRUSH;
  2677. PLOGBRUSH = ^LOGBRUSH;
  2678. EMRCREATEBRUSHINDIRECT = record
  2679. emr : EMR;
  2680. ihBrush : DWORD;
  2681. lb : LOGBRUSH;
  2682. end;
  2683. tagEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT;
  2684. TEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT;
  2685. PEMRCREATEBRUSHINDIRECT = ^EMRCREATEBRUSHINDIRECT;
  2686. LCSCSTYPE = LONG;
  2687. LCSGAMUTMATCH = LONG;
  2688. LOGCOLORSPACE = record
  2689. lcsSignature : DWORD;
  2690. lcsVersion : DWORD;
  2691. lcsSize : DWORD;
  2692. lcsCSType : LCSCSTYPE;
  2693. lcsIntent : LCSGAMUTMATCH;
  2694. lcsEndpoints : CIEXYZTRIPLE;
  2695. lcsGammaRed : DWORD;
  2696. lcsGammaGreen : DWORD;
  2697. lcsGammaBlue : DWORD;
  2698. lcsFilename : array[0..(MAX_PATH)-1] of TCHAR;
  2699. end;
  2700. LPLOGCOLORSPACE = ^LOGCOLORSPACE;
  2701. tagLOGCOLORSPACE = LOGCOLORSPACE;
  2702. TLOGCOLORSPACE = LOGCOLORSPACE;
  2703. TLOGCOLORSPACEA = LOGCOLORSPACE;
  2704. PLOGCOLORSPACE = ^LOGCOLORSPACE;
  2705. EMRCREATECOLORSPACE = record
  2706. emr : EMR;
  2707. ihCS : DWORD;
  2708. lcs : LOGCOLORSPACE;
  2709. end;
  2710. tagEMRCREATECOLORSPACE = EMRCREATECOLORSPACE;
  2711. TEMRCREATECOLORSPACE = EMRCREATECOLORSPACE;
  2712. PEMRCREATECOLORSPACE = ^EMRCREATECOLORSPACE;
  2713. EMRCREATEDIBPATTERNBRUSHPT = record
  2714. emr : EMR;
  2715. ihBrush : DWORD;
  2716. iUsage : DWORD;
  2717. offBmi : DWORD;
  2718. cbBmi : DWORD;
  2719. offBits : DWORD;
  2720. cbBits : DWORD;
  2721. end;
  2722. tagEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT;
  2723. TEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT;
  2724. PEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT;
  2725. EMRCREATEMONOBRUSH = record
  2726. emr : EMR;
  2727. ihBrush : DWORD;
  2728. iUsage : DWORD;
  2729. offBmi : DWORD;
  2730. cbBmi : DWORD;
  2731. offBits : DWORD;
  2732. cbBits : DWORD;
  2733. end;
  2734. tagEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH;
  2735. TEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH;
  2736. PEMRCREATEMONOBRUSH = ^EMRCREATEMONOBRUSH;
  2737. PALETTEENTRY = record
  2738. peRed : BYTE;
  2739. peGreen : BYTE;
  2740. peBlue : BYTE;
  2741. peFlags : BYTE;
  2742. end;
  2743. LPPALETTEENTRY = ^PALETTEENTRY;
  2744. tagPALETTEENTRY = PALETTEENTRY;
  2745. TPALETTEENTRY = PALETTEENTRY;
  2746. PPALETTEENTRY = ^PALETTEENTRY;
  2747. LOGPALETTE = record
  2748. palVersion : WORD;
  2749. palNumEntries : WORD;
  2750. palPalEntry : array[0..0] of PALETTEENTRY;
  2751. end;
  2752. LPLOGPALETTE = ^LOGPALETTE;
  2753. tagLOGPALETTE = LOGPALETTE;
  2754. TLOGPALETTE = LOGPALETTE;
  2755. PLOGPALETTE = ^LOGPALETTE;
  2756. EMRCREATEPALETTE = record
  2757. emr : EMR;
  2758. ihPal : DWORD;
  2759. lgpl : LOGPALETTE;
  2760. end;
  2761. tagEMRCREATEPALETTE = EMRCREATEPALETTE;
  2762. TEMRCREATEPALETTE = EMRCREATEPALETTE;
  2763. PEMRCREATEPALETTE = ^EMRCREATEPALETTE;
  2764. LOGPEN = record
  2765. lopnStyle : UINT;
  2766. lopnWidth : POINT;
  2767. lopnColor : COLORREF;
  2768. end;
  2769. tagLOGPEN = LOGPEN;
  2770. TLOGPEN = LOGPEN;
  2771. PLOGPEN = ^LOGPEN;
  2772. EMRCREATEPEN = record
  2773. emr : EMR;
  2774. ihPen : DWORD;
  2775. lopn : LOGPEN;
  2776. end;
  2777. tagEMRCREATEPEN = EMRCREATEPEN;
  2778. TEMRCREATEPEN = EMRCREATEPEN;
  2779. PEMRCREATEPEN = ^EMRCREATEPEN;
  2780. EMRELLIPSE = record
  2781. emr : EMR;
  2782. rclBox : RECTL;
  2783. end;
  2784. tagEMRELLIPSE = EMRELLIPSE;
  2785. TEMRELLIPSE = EMRELLIPSE;
  2786. PEMRELLIPSE = ^EMRELLIPSE;
  2787. EMRRECTANGLE = EMRELLIPSE;
  2788. TEMRRECTANGLE = EMRELLIPSE;
  2789. PEMRRECTANGLE = ^EMRELLIPSE;
  2790. EMREOF = record
  2791. emr : EMR;
  2792. nPalEntries : DWORD;
  2793. offPalEntries : DWORD;
  2794. nSizeLast : DWORD;
  2795. end;
  2796. tagEMREOF = EMREOF;
  2797. TEMREOF = EMREOF;
  2798. PEMREOF = ^EMREOF;
  2799. EMREXCLUDECLIPRECT = record
  2800. emr : EMR;
  2801. rclClip : RECTL;
  2802. end;
  2803. tagEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT;
  2804. TEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT;
  2805. PEMREXCLUDECLIPRECT = ^EMREXCLUDECLIPRECT;
  2806. EMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT;
  2807. TEMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT;
  2808. PEMRINTERSECTCLIPRECT = ^EMREXCLUDECLIPRECT;
  2809. PANOSE = record
  2810. bFamilyType : BYTE;
  2811. bSerifStyle : BYTE;
  2812. bWeight : BYTE;
  2813. bProportion : BYTE;
  2814. bContrast : BYTE;
  2815. bStrokeVariation : BYTE;
  2816. bArmStyle : BYTE;
  2817. bLetterform : BYTE;
  2818. bMidline : BYTE;
  2819. bXHeight : BYTE;
  2820. end;
  2821. tagPANOSE = PANOSE;
  2822. TPANOSE = PANOSE;
  2823. PPANOSE = ^PANOSE;
  2824. EXTLOGFONT = record
  2825. elfLogFont : LOGFONT;
  2826. elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR;
  2827. elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR;
  2828. elfVersion : DWORD;
  2829. elfStyleSize : DWORD;
  2830. elfMatch : DWORD;
  2831. elfReserved : DWORD;
  2832. elfVendorId : array[0..(ELF_VENDOR_SIZE)-1] of BYTE;
  2833. elfCulture : DWORD;
  2834. elfPanose : PANOSE;
  2835. end;
  2836. tagEXTLOGFONT = EXTLOGFONT;
  2837. TEXTLOGFONT = EXTLOGFONT;
  2838. PEXTLOGFONT = ^EXTLOGFONT;
  2839. EMREXTCREATEFONTINDIRECTW = record
  2840. emr : EMR;
  2841. ihFont : DWORD;
  2842. elfw : EXTLOGFONT;
  2843. end;
  2844. tagEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW;
  2845. TEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW;
  2846. PEMREXTCREATEFONTINDIRECTW = ^EMREXTCREATEFONTINDIRECTW;
  2847. EXTLOGPEN = record
  2848. elpPenStyle : UINT;
  2849. elpWidth : UINT;
  2850. elpBrushStyle : UINT;
  2851. elpColor : COLORREF;
  2852. elpHatch : LONG;
  2853. elpNumEntries : DWORD;
  2854. elpStyleEntry : array[0..0] of DWORD;
  2855. end;
  2856. tagEXTLOGPEN = EXTLOGPEN;
  2857. TEXTLOGPEN = EXTLOGPEN;
  2858. PEXTLOGPEN = ^EXTLOGPEN;
  2859. EMREXTCREATEPEN = record
  2860. emr : EMR;
  2861. ihPen : DWORD;
  2862. offBmi : DWORD;
  2863. cbBmi : DWORD;
  2864. offBits : DWORD;
  2865. cbBits : DWORD;
  2866. elp : EXTLOGPEN;
  2867. end;
  2868. tagEMREXTCREATEPEN = EMREXTCREATEPEN;
  2869. TEMREXTCREATEPEN = EMREXTCREATEPEN;
  2870. PEMREXTCREATEPEN = ^EMREXTCREATEPEN;
  2871. EMREXTFLOODFILL = record
  2872. emr : EMR;
  2873. ptlStart : POINTL;
  2874. crColor : COLORREF;
  2875. iMode : DWORD;
  2876. end;
  2877. tagEMREXTFLOODFILL = EMREXTFLOODFILL;
  2878. TEMREXTFLOODFILL = EMREXTFLOODFILL;
  2879. PEMREXTFLOODFILL = ^EMREXTFLOODFILL;
  2880. EMREXTSELECTCLIPRGN = record
  2881. emr : EMR;
  2882. cbRgnData : DWORD;
  2883. iMode : DWORD;
  2884. RgnData : array[0..0] of BYTE;
  2885. end;
  2886. tagEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN;
  2887. TEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN;
  2888. PEMREXTSELECTCLIPRGN = ^EMREXTSELECTCLIPRGN;
  2889. EMRTEXT = record
  2890. ptlReference : POINTL;
  2891. nChars : DWORD;
  2892. offString : DWORD;
  2893. fOptions : DWORD;
  2894. rcl : RECTL;
  2895. offDx : DWORD;
  2896. end;
  2897. tagEMRTEXT = EMRTEXT;
  2898. TEMRTEXT = EMRTEXT;
  2899. PEMRTEXT = ^EMRTEXT;
  2900. EMREXTTEXTOUTA = record
  2901. emr : EMR;
  2902. rclBounds : RECTL;
  2903. iGraphicsMode : DWORD;
  2904. exScale : Single;
  2905. eyScale : Single;
  2906. emrtext : EMRTEXT;
  2907. end;
  2908. tagEMREXTTEXTOUTA = EMREXTTEXTOUTA;
  2909. TEMREXTTEXTOUTA = EMREXTTEXTOUTA;
  2910. PEMREXTTEXTOUTA = ^EMREXTTEXTOUTA;
  2911. EMREXTTEXTOUTW = EMREXTTEXTOUTA;
  2912. TEMREXTTEXTOUTW = EMREXTTEXTOUTA;
  2913. PEMREXTTEXTOUTW = ^EMREXTTEXTOUTA;
  2914. EMRFILLPATH = record
  2915. emr : EMR;
  2916. rclBounds : RECTL;
  2917. end;
  2918. tagEMRFILLPATH = EMRFILLPATH;
  2919. TEMRFILLPATH = EMRFILLPATH;
  2920. PEMRFILLPATH = ^EMRFILLPATH;
  2921. EMRSTROKEANDFILLPATH = EMRFILLPATH;
  2922. TEMRSTROKEANDFILLPATH = EMRFILLPATH;
  2923. PEMRSTROKEANDFILLPATH = ^EMRFILLPATH;
  2924. EMRSTROKEPATH = EMRFILLPATH;
  2925. TEMRSTROKEPATH = EMRFILLPATH;
  2926. PEMRSTROKEPATH = ^EMRFILLPATH;
  2927. EMRFILLRGN = record
  2928. emr : EMR;
  2929. rclBounds : RECTL;
  2930. cbRgnData : DWORD;
  2931. ihBrush : DWORD;
  2932. RgnData : array[0..0] of BYTE;
  2933. end;
  2934. tagEMRFILLRGN = EMRFILLRGN;
  2935. TEMRFILLRGN = EMRFILLRGN;
  2936. PEMRFILLRGN = ^EMRFILLRGN;
  2937. EMRFORMAT = record
  2938. dSignature : DWORD;
  2939. nVersion : DWORD;
  2940. cbData : DWORD;
  2941. offData : DWORD;
  2942. end;
  2943. tagEMRFORMAT = EMRFORMAT;
  2944. TEMRFORMAT = EMRFORMAT;
  2945. PEMRFORMAT = ^EMRFORMAT;
  2946. SIZE = record
  2947. cx : LONG;
  2948. cy : LONG;
  2949. end;
  2950. LPSIZE = ^SIZE;
  2951. tagSIZE = SIZE;
  2952. TSIZE = SIZE;
  2953. PSIZE = ^SIZE;
  2954. SIZEL = SIZE; //windef
  2955. TSIZEL = SIZE; //windef
  2956. PSIZEL = ^SIZE;
  2957. LPSIZEL = ^SIZE;
  2958. EMRFRAMERGN = record
  2959. emr : EMR;
  2960. rclBounds : RECTL;
  2961. cbRgnData : DWORD;
  2962. ihBrush : DWORD;
  2963. szlStroke : SIZEL;
  2964. RgnData : array[0..0] of BYTE;
  2965. end;
  2966. tagEMRFRAMERGN = EMRFRAMERGN;
  2967. TEMRFRAMERGN = EMRFRAMERGN;
  2968. PEMRFRAMERGN = ^EMRFRAMERGN;
  2969. EMRGDICOMMENT = record
  2970. emr : EMR;
  2971. cbData : DWORD;
  2972. Data : array[0..0] of BYTE;
  2973. end;
  2974. tagEMRGDICOMMENT = EMRGDICOMMENT;
  2975. TEMRGDICOMMENT = EMRGDICOMMENT;
  2976. PEMRGDICOMMENT = ^EMRGDICOMMENT;
  2977. EMRINVERTRGN = record
  2978. emr : EMR;
  2979. rclBounds : RECTL;
  2980. cbRgnData : DWORD;
  2981. RgnData : array[0..0] of BYTE;
  2982. end;
  2983. tagEMRINVERTRGN = EMRINVERTRGN;
  2984. TEMRINVERTRGN = EMRINVERTRGN;
  2985. PEMRINVERTRGN = ^EMRINVERTRGN;
  2986. EMRPAINTRGN = EMRINVERTRGN;
  2987. TEMRPAINTRGN = EMRINVERTRGN;
  2988. PEMRPAINTRGN = ^EMRINVERTRGN;
  2989. EMRLINETO = record
  2990. emr : EMR;
  2991. ptl : POINTL;
  2992. end;
  2993. tagEMRLINETO = EMRLINETO;
  2994. TEMRLINETO = EMRLINETO;
  2995. PEMRLINETO = ^EMRLINETO;
  2996. EMRMOVETOEX = EMRLINETO;
  2997. TEMRMOVETOEX = EMRLINETO;
  2998. PEMRMOVETOEX = ^EMRLINETO;
  2999. EMRMASKBLT = record
  3000. emr : EMR;
  3001. rclBounds : RECTL;
  3002. xDest : LONG;
  3003. yDest : LONG;
  3004. cxDest : LONG;
  3005. cyDest : LONG;
  3006. dwRop : DWORD;
  3007. xSrc : LONG;
  3008. ySrc : LONG;
  3009. xformSrc : XFORM;
  3010. crBkColorSrc : COLORREF;
  3011. iUsageSrc : DWORD;
  3012. offBmiSrc : DWORD;
  3013. cbBmiSrc : DWORD;
  3014. offBitsSrc : DWORD;
  3015. cbBitsSrc : DWORD;
  3016. xMask : LONG;
  3017. yMask : LONG;
  3018. iUsageMask : DWORD;
  3019. offBmiMask : DWORD;
  3020. cbBmiMask : DWORD;
  3021. offBitsMask : DWORD;
  3022. cbBitsMask : DWORD;
  3023. end;
  3024. tagEMRMASKBLT = EMRMASKBLT;
  3025. TEMRMASKBLT = EMRMASKBLT;
  3026. PEMRMASKBLT = ^EMRMASKBLT;
  3027. EMRMODIFYWORLDTRANSFORM = record
  3028. emr : EMR;
  3029. xform : XFORM;
  3030. iMode : DWORD;
  3031. end;
  3032. tagEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM;
  3033. TEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM;
  3034. PEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM;
  3035. EMROFFSETCLIPRGN = record
  3036. emr : EMR;
  3037. ptlOffset : POINTL;
  3038. end;
  3039. tagEMROFFSETCLIPRGN = EMROFFSETCLIPRGN;
  3040. TEMROFFSETCLIPRGN = EMROFFSETCLIPRGN;
  3041. PEMROFFSETCLIPRGN = ^EMROFFSETCLIPRGN;
  3042. EMRPLGBLT = record
  3043. emr : EMR;
  3044. rclBounds : RECTL;
  3045. aptlDest : array[0..2] of POINTL;
  3046. xSrc : LONG;
  3047. ySrc : LONG;
  3048. cxSrc : LONG;
  3049. cySrc : LONG;
  3050. xformSrc : XFORM;
  3051. crBkColorSrc : COLORREF;
  3052. iUsageSrc : DWORD;
  3053. offBmiSrc : DWORD;
  3054. cbBmiSrc : DWORD;
  3055. offBitsSrc : DWORD;
  3056. cbBitsSrc : DWORD;
  3057. xMask : LONG;
  3058. yMask : LONG;
  3059. iUsageMask : DWORD;
  3060. offBmiMask : DWORD;
  3061. cbBmiMask : DWORD;
  3062. offBitsMask : DWORD;
  3063. cbBitsMask : DWORD;
  3064. end;
  3065. tagEMRPLGBLT = EMRPLGBLT;
  3066. TEMRPLGBLT = EMRPLGBLT;
  3067. PEMRPLGBLT = ^EMRPLGBLT;
  3068. EMRPOLYDRAW = record
  3069. emr : EMR;
  3070. rclBounds : RECTL;
  3071. cptl : DWORD;
  3072. aptl : array[0..0] of POINTL;
  3073. abTypes : array[0..0] of BYTE;
  3074. end;
  3075. tagEMRPOLYDRAW = EMRPOLYDRAW;
  3076. TEMRPOLYDRAW = EMRPOLYDRAW;
  3077. PEMRPOLYDRAW = ^EMRPOLYDRAW;
  3078. EMRPOLYDRAW16 = record
  3079. emr : EMR;
  3080. rclBounds : RECTL;
  3081. cpts : DWORD;
  3082. apts : array[0..0] of POINTS;
  3083. abTypes : array[0..0] of BYTE;
  3084. end;
  3085. tagEMRPOLYDRAW16 = EMRPOLYDRAW16;
  3086. TEMRPOLYDRAW16 = EMRPOLYDRAW16;
  3087. PEMRPOLYDRAW16 = ^EMRPOLYDRAW16;
  3088. EMRPOLYLINE = record
  3089. emr : EMR;
  3090. rclBounds : RECTL;
  3091. cptl : DWORD;
  3092. aptl : array[0..0] of POINTL;
  3093. end;
  3094. tagEMRPOLYLINE = EMRPOLYLINE;
  3095. TEMRPOLYLINE = EMRPOLYLINE;
  3096. PEMRPOLYLINE = ^EMRPOLYLINE;
  3097. EMRPOLYBEZIER = EMRPOLYLINE;
  3098. TEMRPOLYBEZIER = EMRPOLYLINE;
  3099. PEMRPOLYBEZIER = ^EMRPOLYLINE;
  3100. EMRPOLYGON = EMRPOLYLINE;
  3101. TEMRPOLYGON = EMRPOLYLINE;
  3102. PEMRPOLYGON = ^EMRPOLYLINE;
  3103. EMRPOLYBEZIERTO = EMRPOLYLINE;
  3104. TEMRPOLYBEZIERTO = EMRPOLYLINE;
  3105. PEMRPOLYBEZIERTO = ^EMRPOLYLINE;
  3106. EMRPOLYLINETO = EMRPOLYLINE;
  3107. TEMRPOLYLINETO = EMRPOLYLINE;
  3108. PEMRPOLYLINETO = ^EMRPOLYLINE;
  3109. EMRPOLYLINE16 = record
  3110. emr : EMR;
  3111. rclBounds : RECTL;
  3112. cpts : DWORD;
  3113. apts : array[0..0] of POINTL;
  3114. end;
  3115. tagEMRPOLYLINE16 = EMRPOLYLINE16;
  3116. TEMRPOLYLINE16 = EMRPOLYLINE16;
  3117. PEMRPOLYLINE16 = ^EMRPOLYLINE16;
  3118. EMRPOLYBEZIER16 = EMRPOLYLINE16;
  3119. TEMRPOLYBEZIER16 = EMRPOLYLINE16;
  3120. PEMRPOLYBEZIER16 = ^EMRPOLYLINE16;
  3121. EMRPOLYGON16 = EMRPOLYLINE16;
  3122. TEMRPOLYGON16 = EMRPOLYLINE16;
  3123. PEMRPOLYGON16 = ^EMRPOLYLINE16;
  3124. EMRPOLYBEZIERTO16 = EMRPOLYLINE16;
  3125. TEMRPOLYBEZIERTO16 = EMRPOLYLINE16;
  3126. PEMRPOLYBEZIERTO16 = ^EMRPOLYLINE16;
  3127. EMRPOLYLINETO16 = EMRPOLYLINE16;
  3128. TEMRPOLYLINETO16 = EMRPOLYLINE16;
  3129. PEMRPOLYLINETO16 = ^EMRPOLYLINE16;
  3130. EMRPOLYPOLYLINE = record
  3131. emr : EMR;
  3132. rclBounds : RECTL;
  3133. nPolys : DWORD;
  3134. cptl : DWORD;
  3135. aPolyCounts : array[0..0] of DWORD;
  3136. aptl : array[0..0] of POINTL;
  3137. end;
  3138. tagEMRPOLYPOLYLINE = EMRPOLYPOLYLINE;
  3139. TEMRPOLYPOLYLINE = EMRPOLYPOLYLINE;
  3140. PEMRPOLYPOLYLINE = ^EMRPOLYPOLYLINE;
  3141. EMRPOLYPOLYGON = EMRPOLYPOLYLINE;
  3142. TEMRPOLYPOLYGON = EMRPOLYPOLYLINE;
  3143. PEMRPOLYPOLYGON = ^EMRPOLYPOLYLINE;
  3144. EMRPOLYPOLYLINE16 = record
  3145. emr : EMR;
  3146. rclBounds : RECTL;
  3147. nPolys : DWORD;
  3148. cpts : DWORD;
  3149. aPolyCounts : array[0..0] of DWORD;
  3150. apts : array[0..0] of POINTS;
  3151. end;
  3152. tagEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16;
  3153. TEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16;
  3154. PEMRPOLYPOLYLINE16 = ^EMRPOLYPOLYLINE16;
  3155. EMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16;
  3156. TEMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16;
  3157. PEMRPOLYPOLYGON16 = ^EMRPOLYPOLYLINE16;
  3158. EMRPOLYTEXTOUTA = record
  3159. emr : EMR;
  3160. rclBounds : RECTL;
  3161. iGraphicsMode : DWORD;
  3162. exScale : Single;
  3163. eyScale : Single;
  3164. cStrings : LONG;
  3165. aemrtext : array[0..0] of EMRTEXT;
  3166. end;
  3167. tagEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA;
  3168. TEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA;
  3169. PEMRPOLYTEXTOUTA = ^EMRPOLYTEXTOUTA;
  3170. EMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA;
  3171. TEMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA;
  3172. PEMRPOLYTEXTOUTW = ^EMRPOLYTEXTOUTA;
  3173. EMRRESIZEPALETTE = record
  3174. emr : EMR;
  3175. ihPal : DWORD;
  3176. cEntries : DWORD;
  3177. end;
  3178. tagEMRRESIZEPALETTE = EMRRESIZEPALETTE;
  3179. TEMRRESIZEPALETTE = EMRRESIZEPALETTE;
  3180. PEMRRESIZEPALETTE = ^EMRRESIZEPALETTE;
  3181. EMRRESTOREDC = record
  3182. emr : EMR;
  3183. iRelative : LONG;
  3184. end;
  3185. tagEMRRESTOREDC = EMRRESTOREDC;
  3186. TEMRRESTOREDC = EMRRESTOREDC;
  3187. PEMRRESTOREDC = ^EMRRESTOREDC;
  3188. EMRROUNDRECT = record
  3189. emr : EMR;
  3190. rclBox : RECTL;
  3191. szlCorner : SIZEL;
  3192. end;
  3193. tagEMRROUNDRECT = EMRROUNDRECT;
  3194. TEMRROUNDRECT = EMRROUNDRECT;
  3195. PEMRROUNDRECT = ^EMRROUNDRECT;
  3196. EMRSCALEVIEWPORTEXTEX = record
  3197. emr : EMR;
  3198. xNum : LONG;
  3199. xDenom : LONG;
  3200. yNum : LONG;
  3201. yDenom : LONG;
  3202. end;
  3203. tagEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX;
  3204. TEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX;
  3205. PEMRSCALEVIEWPORTEXTEX = ^EMRSCALEVIEWPORTEXTEX;
  3206. EMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX;
  3207. TEMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX;
  3208. PEMRSCALEWINDOWEXTEX = ^EMRSCALEVIEWPORTEXTEX;
  3209. EMRSELECTCOLORSPACE = record
  3210. emr : EMR;
  3211. ihCS : DWORD;
  3212. end;
  3213. tagEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE;
  3214. TEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE;
  3215. PEMRSELECTCOLORSPACE = ^EMRSELECTCOLORSPACE;
  3216. EMRDELETECOLORSPACE = EMRSELECTCOLORSPACE;
  3217. TEMRDELETECOLORSPACE = EMRSELECTCOLORSPACE;
  3218. PEMRDELETECOLORSPACE = ^EMRSELECTCOLORSPACE;
  3219. EMRSELECTOBJECT = record
  3220. emr : EMR;
  3221. ihObject : DWORD;
  3222. end;
  3223. tagEMRSELECTOBJECT = EMRSELECTOBJECT;
  3224. TEMRSELECTOBJECT = EMRSELECTOBJECT;
  3225. PEMRSELECTOBJECT = ^EMRSELECTOBJECT;
  3226. EMRDELETEOBJECT = EMRSELECTOBJECT;
  3227. TEMRDELETEOBJECT = EMRSELECTOBJECT;
  3228. PEMRDELETEOBJECT = ^EMRSELECTOBJECT;
  3229. EMRSELECTPALETTE = record
  3230. emr : EMR;
  3231. ihPal : DWORD;
  3232. end;
  3233. tagEMRSELECTPALETTE = EMRSELECTPALETTE;
  3234. TEMRSELECTPALETTE = EMRSELECTPALETTE;
  3235. PEMRSELECTPALETTE = ^EMRSELECTPALETTE;
  3236. EMRSETARCDIRECTION = record
  3237. emr : EMR;
  3238. iArcDirection : DWORD;
  3239. end;
  3240. tagEMRSETARCDIRECTION = EMRSETARCDIRECTION;
  3241. TEMRSETARCDIRECTION = EMRSETARCDIRECTION;
  3242. PEMRSETARCDIRECTION = ^EMRSETARCDIRECTION;
  3243. EMRSETBKCOLOR = record
  3244. emr : EMR;
  3245. crColor : COLORREF;
  3246. end;
  3247. tagEMRSETTEXTCOLOR = EMRSETBKCOLOR;
  3248. TEMRSETBKCOLOR = EMRSETBKCOLOR;
  3249. PEMRSETBKCOLOR = ^EMRSETBKCOLOR;
  3250. EMRSETTEXTCOLOR = EMRSETBKCOLOR;
  3251. TEMRSETTEXTCOLOR = EMRSETBKCOLOR;
  3252. PEMRSETTEXTCOLOR = ^EMRSETBKCOLOR;
  3253. EMRSETCOLORADJUSTMENT = record
  3254. emr : EMR;
  3255. ColorAdjustment : COLORADJUSTMENT;
  3256. end;
  3257. tagEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT;
  3258. TEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT;
  3259. PEMRSETCOLORADJUSTMENT = ^EMRSETCOLORADJUSTMENT;
  3260. EMRSETDIBITSTODEVICE = record
  3261. emr : EMR;
  3262. rclBounds : RECTL;
  3263. xDest : LONG;
  3264. yDest : LONG;
  3265. xSrc : LONG;
  3266. ySrc : LONG;
  3267. cxSrc : LONG;
  3268. cySrc : LONG;
  3269. offBmiSrc : DWORD;
  3270. cbBmiSrc : DWORD;
  3271. offBitsSrc : DWORD;
  3272. cbBitsSrc : DWORD;
  3273. iUsageSrc : DWORD;
  3274. iStartScan : DWORD;
  3275. cScans : DWORD;
  3276. end;
  3277. tagEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE;
  3278. TEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE;
  3279. PEMRSETDIBITSTODEVICE = ^EMRSETDIBITSTODEVICE;
  3280. EMRSETMAPPERFLAGS = record
  3281. emr : EMR;
  3282. dwFlags : DWORD;
  3283. end;
  3284. tagEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS;
  3285. TEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS;
  3286. PEMRSETMAPPERFLAGS = ^EMRSETMAPPERFLAGS;
  3287. EMRSETMITERLIMIT = record
  3288. emr : EMR;
  3289. eMiterLimit : Single;
  3290. end;
  3291. tagEMRSETMITERLIMIT = EMRSETMITERLIMIT;
  3292. TEMRSETMITERLIMIT = EMRSETMITERLIMIT;
  3293. PEMRSETMITERLIMIT = ^EMRSETMITERLIMIT;
  3294. EMRSETPALETTEENTRIES = record
  3295. emr : EMR;
  3296. ihPal : DWORD;
  3297. iStart : DWORD;
  3298. cEntries : DWORD;
  3299. aPalEntries : array[0..0] of PALETTEENTRY;
  3300. end;
  3301. tagEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES;
  3302. TEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES;
  3303. PEMRSETPALETTEENTRIES = ^EMRSETPALETTEENTRIES;
  3304. EMRSETPIXELV = record
  3305. emr : EMR;
  3306. ptlPixel : POINTL;
  3307. crColor : COLORREF;
  3308. end;
  3309. tagEMRSETPIXELV = EMRSETPIXELV;
  3310. TEMRSETPIXELV = EMRSETPIXELV;
  3311. PEMRSETPIXELV = ^EMRSETPIXELV;
  3312. EMRSETVIEWPORTEXTEX = record
  3313. emr : EMR;
  3314. szlExtent : SIZEL;
  3315. end;
  3316. tagEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX;
  3317. TEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX;
  3318. PEMRSETVIEWPORTEXTEX = ^EMRSETVIEWPORTEXTEX;
  3319. EMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX;
  3320. TEMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX;
  3321. PEMRSETWINDOWEXTEX = ^EMRSETVIEWPORTEXTEX;
  3322. EMRSETVIEWPORTORGEX = record
  3323. emr : EMR;
  3324. ptlOrigin : POINTL;
  3325. end;
  3326. tagEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX;
  3327. TEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX;
  3328. PEMRSETVIEWPORTORGEX = ^EMRSETVIEWPORTORGEX;
  3329. EMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX;
  3330. TEMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX;
  3331. PEMRSETWINDOWORGEX = ^EMRSETVIEWPORTORGEX;
  3332. EMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX;
  3333. TEMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX;
  3334. PEMRSETBRUSHORGEX = ^EMRSETVIEWPORTORGEX;
  3335. EMRSETWORLDTRANSFORM = record
  3336. emr : EMR;
  3337. xform : XFORM;
  3338. end;
  3339. tagEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM;
  3340. TEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM;
  3341. PEMRSETWORLDTRANSFORM = ^EMRSETWORLDTRANSFORM;
  3342. EMRSTRETCHBLT = record
  3343. emr : EMR;
  3344. rclBounds : RECTL;
  3345. xDest : LONG;
  3346. yDest : LONG;
  3347. cxDest : LONG;
  3348. cyDest : LONG;
  3349. dwRop : DWORD;
  3350. xSrc : LONG;
  3351. ySrc : LONG;
  3352. xformSrc : XFORM;
  3353. crBkColorSrc : COLORREF;
  3354. iUsageSrc : DWORD;
  3355. offBmiSrc : DWORD;
  3356. cbBmiSrc : DWORD;
  3357. offBitsSrc : DWORD;
  3358. cbBitsSrc : DWORD;
  3359. cxSrc : LONG;
  3360. cySrc : LONG;
  3361. end;
  3362. tagEMRSTRETCHBLT = EMRSTRETCHBLT;
  3363. TEMRSTRETCHBLT = EMRSTRETCHBLT;
  3364. PEMRSTRETCHBLT = ^EMRSTRETCHBLT;
  3365. EMRSTRETCHDIBITS = record
  3366. emr : EMR;
  3367. rclBounds : RECTL;
  3368. xDest : LONG;
  3369. yDest : LONG;
  3370. xSrc : LONG;
  3371. ySrc : LONG;
  3372. cxSrc : LONG;
  3373. cySrc : LONG;
  3374. offBmiSrc : DWORD;
  3375. cbBmiSrc : DWORD;
  3376. offBitsSrc : DWORD;
  3377. cbBitsSrc : DWORD;
  3378. iUsageSrc : DWORD;
  3379. dwRop : DWORD;
  3380. cxDest : LONG;
  3381. cyDest : LONG;
  3382. end;
  3383. tagEMRSTRETCHDIBITS = EMRSTRETCHDIBITS;
  3384. TEMRSTRETCHDIBITS = EMRSTRETCHDIBITS;
  3385. PEMRSTRETCHDIBITS = ^EMRSTRETCHDIBITS;
  3386. EMRABORTPATH = record
  3387. emr : EMR;
  3388. end;
  3389. TEMRABORTPATH = EMRABORTPATH;
  3390. PEMRABORTPATH = ^EMRABORTPATH;
  3391. tagABORTPATH = EMRABORTPATH;
  3392. TABORTPATH = EMRABORTPATH;
  3393. EMRBEGINPATH = EMRABORTPATH;
  3394. TEMRBEGINPATH = EMRABORTPATH;
  3395. PEMRBEGINPATH = ^EMRABORTPATH;
  3396. EMRENDPATH = EMRABORTPATH;
  3397. TEMRENDPATH = EMRABORTPATH;
  3398. PEMRENDPATH = ^EMRABORTPATH;
  3399. EMRCLOSEFIGURE = EMRABORTPATH;
  3400. TEMRCLOSEFIGURE = EMRABORTPATH;
  3401. PEMRCLOSEFIGURE = ^EMRABORTPATH;
  3402. EMRFLATTENPATH = EMRABORTPATH;
  3403. TEMRFLATTENPATH = EMRABORTPATH;
  3404. PEMRFLATTENPATH = ^EMRABORTPATH;
  3405. EMRWIDENPATH = EMRABORTPATH;
  3406. TEMRWIDENPATH = EMRABORTPATH;
  3407. PEMRWIDENPATH = ^EMRABORTPATH;
  3408. EMRSETMETARGN = EMRABORTPATH;
  3409. TEMRSETMETARGN = EMRABORTPATH;
  3410. PEMRSETMETARGN = ^EMRABORTPATH;
  3411. EMRSAVEDC = EMRABORTPATH;
  3412. TEMRSAVEDC = EMRABORTPATH;
  3413. PEMRSAVEDC = ^EMRABORTPATH;
  3414. EMRREALIZEPALETTE = EMRABORTPATH;
  3415. TEMRREALIZEPALETTE = EMRABORTPATH;
  3416. PEMRREALIZEPALETTE = ^EMRABORTPATH;
  3417. EMRSELECTCLIPPATH = record
  3418. emr : EMR;
  3419. iMode : DWORD;
  3420. end;
  3421. tagEMRSELECTCLIPPATH = EMRSELECTCLIPPATH;
  3422. TEMRSELECTCLIPPATH = EMRSELECTCLIPPATH;
  3423. PEMRSELECTCLIPPATH = ^EMRSELECTCLIPPATH;
  3424. EMRSETBKMODE = EMRSELECTCLIPPATH;
  3425. TEMRSETBKMODE = EMRSELECTCLIPPATH;
  3426. PEMRSETBKMODE = ^EMRSELECTCLIPPATH;
  3427. EMRSETMAPMODE = EMRSELECTCLIPPATH;
  3428. TEMRSETMAPMODE = EMRSELECTCLIPPATH;
  3429. PEMRSETMAPMODE = ^EMRSELECTCLIPPATH;
  3430. EMRSETPOLYFILLMODE = EMRSELECTCLIPPATH;
  3431. TEMRSETPOLYFILLMODE = EMRSELECTCLIPPATH;
  3432. PEMRSETPOLYFILLMODE = ^EMRSELECTCLIPPATH;
  3433. EMRSETROP2 = EMRSELECTCLIPPATH;
  3434. TEMRSETROP2 = EMRSELECTCLIPPATH;
  3435. PEMRSETROP2 = ^EMRSELECTCLIPPATH;
  3436. EMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH;
  3437. TEMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH;
  3438. PEMRSETSTRETCHBLTMODE = ^EMRSELECTCLIPPATH;
  3439. EMRSETTEXTALIGN = EMRSELECTCLIPPATH;
  3440. TEMRSETTEXTALIGN = EMRSELECTCLIPPATH;
  3441. PEMRSETTEXTALIGN = ^EMRSELECTCLIPPATH;
  3442. EMRENABLEICM = EMRSELECTCLIPPATH;
  3443. TEMRENABLEICM = EMRSELECTCLIPPATH;
  3444. PEMRENABLEICM = ^EMRSELECTCLIPPATH;
  3445. NMHDR = record
  3446. hwndFrom : HWND;
  3447. idFrom : UINT;
  3448. code : UINT;
  3449. end;
  3450. tagNMHDR = NMHDR;
  3451. TNMHDR = NMHDR;
  3452. PNMHDR = ^NMHDR;
  3453. ENCORRECTTEXT = record
  3454. nmhdr : NMHDR;
  3455. chrg : CHARRANGE;
  3456. seltyp : WORD;
  3457. end;
  3458. _encorrecttext = ENCORRECTTEXT;
  3459. Tencorrecttext = ENCORRECTTEXT;
  3460. Pencorrecttext = ^ENCORRECTTEXT;
  3461. ENDROPFILES = record
  3462. nmhdr : NMHDR;
  3463. hDrop : HANDLE;
  3464. cp : LONG;
  3465. fProtected : WINBOOL;
  3466. end;
  3467. _endropfiles = ENDROPFILES;
  3468. Tendropfiles = ENDROPFILES;
  3469. Pendropfiles = ^ENDROPFILES;
  3470. ENSAVECLIPBOARD = record
  3471. nmhdr : NMHDR;
  3472. cObjectCount : LONG;
  3473. cch : LONG;
  3474. end;
  3475. TENSAVECLIPBOARD = ENSAVECLIPBOARD;
  3476. PENSAVECLIPBOARD = ^ENSAVECLIPBOARD;
  3477. ENOLEOPFAILED = record
  3478. nmhdr : NMHDR;
  3479. iob : LONG;
  3480. lOper : LONG;
  3481. hr : HRESULT;
  3482. end;
  3483. TENOLEOPFAILED = ENOLEOPFAILED;
  3484. PENOLEOPFAILED = ^ENOLEOPFAILED;
  3485. ENHMETAHEADER = record
  3486. iType : DWORD;
  3487. nSize : DWORD;
  3488. rclBounds : RECTL;
  3489. rclFrame : RECTL;
  3490. dSignature : DWORD;
  3491. nVersion : DWORD;
  3492. nBytes : DWORD;
  3493. nRecords : DWORD;
  3494. nHandles : WORD;
  3495. sReserved : WORD;
  3496. nDescription : DWORD;
  3497. offDescription : DWORD;
  3498. nPalEntries : DWORD;
  3499. szlDevice : SIZEL;
  3500. szlMillimeters : SIZEL;
  3501. end;
  3502. LPENHMETAHEADER = ^ENHMETAHEADER;
  3503. tagENHMETAHEADER = ENHMETAHEADER;
  3504. TENHMETAHEADER = ENHMETAHEADER;
  3505. PENHMETAHEADER = ^ENHMETAHEADER;
  3506. ENHMETARECORD = record
  3507. iType : DWORD;
  3508. nSize : DWORD;
  3509. dParm : array[0..0] of DWORD;
  3510. end;
  3511. LPENHMETARECORD = ^ENHMETARECORD;
  3512. tagENHMETARECORD = ENHMETARECORD;
  3513. TENHMETARECORD = ENHMETARECORD;
  3514. PENHMETARECORD = ^ENHMETARECORD;
  3515. ENPROTECTED = record
  3516. nmhdr : NMHDR;
  3517. msg : UINT;
  3518. wParam : WPARAM;
  3519. lParam : LPARAM;
  3520. chrg : CHARRANGE;
  3521. end;
  3522. _enprotected = ENPROTECTED;
  3523. Tenprotected = ENPROTECTED;
  3524. Penprotected = ^ENPROTECTED;
  3525. SERVICE_STATUS = record
  3526. dwServiceType : DWORD;
  3527. dwCurrentState : DWORD;
  3528. dwControlsAccepted : DWORD;
  3529. dwWin32ExitCode : DWORD;
  3530. dwServiceSpecificExitCode : DWORD;
  3531. dwCheckPoint : DWORD;
  3532. dwWaitHint : DWORD;
  3533. end;
  3534. LPSERVICE_STATUS = ^SERVICE_STATUS;
  3535. _SERVICE_STATUS = SERVICE_STATUS;
  3536. TSERVICESTATUS = SERVICE_STATUS;
  3537. PSERVICESTATUS = ^SERVICE_STATUS;
  3538. ENUM_SERVICE_STATUS = record
  3539. lpServiceName : LPTSTR;
  3540. lpDisplayName : LPTSTR;
  3541. ServiceStatus : SERVICE_STATUS;
  3542. end;
  3543. LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUS;
  3544. _ENUM_SERVICE_STATUS = ENUM_SERVICE_STATUS;
  3545. TENUMSERVICESTATUS = ENUM_SERVICE_STATUS;
  3546. PENUMSERVICESTATUS = ^ENUM_SERVICE_STATUS;
  3547. ENUMLOGFONT = record
  3548. elfLogFont : LOGFONT;
  3549. elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR;
  3550. elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR;
  3551. end;
  3552. tagENUMLOGFONT = ENUMLOGFONT;
  3553. TENUMLOGFONT = ENUMLOGFONT;
  3554. PENUMLOGFONT = ^ENUMLOGFONT;
  3555. ENUMLOGFONTEX = record
  3556. elfLogFont : LOGFONT;
  3557. elfFullName : array[0..(LF_FULLFACESIZE)-1] of BCHAR;
  3558. elfStyle : array[0..(LF_FACESIZE)-1] of BCHAR;
  3559. elfScript : array[0..(LF_FACESIZE)-1] of BCHAR;
  3560. end;
  3561. tagENUMLOGFONTEX = ENUMLOGFONTEX;
  3562. TENUMLOGFONTEX = ENUMLOGFONTEX;
  3563. PENUMLOGFONTEX = ^ENUMLOGFONTEX;
  3564. {
  3565. Then follow:
  3566. TCHAR SourceName[]
  3567. TCHAR Computername[]
  3568. SID UserSid
  3569. TCHAR Strings[]
  3570. BYTE Data[]
  3571. CHAR Pad[]
  3572. DWORD Length;
  3573. }
  3574. EVENTLOGRECORD = record
  3575. Length : DWORD;
  3576. Reserved : DWORD;
  3577. RecordNumber : DWORD;
  3578. TimeGenerated : DWORD;
  3579. TimeWritten : DWORD;
  3580. EventID : DWORD;
  3581. EventType : WORD;
  3582. NumStrings : WORD;
  3583. EventCategory : WORD;
  3584. ReservedFlags : WORD;
  3585. ClosingRecordNumber : DWORD;
  3586. StringOffset : DWORD;
  3587. UserSidLength : DWORD;
  3588. UserSidOffset : DWORD;
  3589. DataLength : DWORD;
  3590. DataOffset : DWORD;
  3591. end;
  3592. _EVENTLOGRECORD = EVENTLOGRECORD;
  3593. TEVENTLOGRECORD = EVENTLOGRECORD;
  3594. PEVENTLOGRECORD = ^EVENTLOGRECORD;
  3595. EVENTMSG = record
  3596. message : UINT;
  3597. paramL : UINT;
  3598. paramH : UINT;
  3599. time : DWORD;
  3600. hwnd : HWND;
  3601. end;
  3602. tagEVENTMSG = EVENTMSG;
  3603. TEVENTMSG = EVENTMSG;
  3604. PEVENTMSG = ^EVENTMSG;
  3605. EXCEPTION_POINTERS = record //winnt
  3606. ExceptionRecord : PEXCEPTION_RECORD;
  3607. ContextRecord : PCONTEXT;
  3608. end;
  3609. LPEXCEPTION_POINTERS = ^EXCEPTION_POINTERS;
  3610. PEXCEPTION_POINTERS = ^EXCEPTION_POINTERS;
  3611. _EXCEPTION_POINTERS = EXCEPTION_POINTERS;
  3612. TEXCEPTIONPOINTERS = EXCEPTION_POINTERS;
  3613. PEXCEPTIONPOINTERS = ^EXCEPTION_POINTERS;
  3614. EXT_BUTTON = record
  3615. idCommand : WORD;
  3616. idsHelp : WORD;
  3617. fsStyle : WORD;
  3618. end;
  3619. LPEXT_BUTTON = ^EXT_BUTTON;
  3620. _EXT_BUTTON = EXT_BUTTON;
  3621. TEXTBUTTON = EXT_BUTTON;
  3622. PEXTBUTTON = ^EXT_BUTTON;
  3623. FILTERKEYS = record
  3624. cbSize : UINT;
  3625. dwFlags : DWORD;
  3626. iWaitMSec : DWORD;
  3627. iDelayMSec : DWORD;
  3628. iRepeatMSec : DWORD;
  3629. iBounceMSec : DWORD;
  3630. end;
  3631. tagFILTERKEYS = FILTERKEYS;
  3632. TFILTERKEYS = FILTERKEYS;
  3633. PFILTERKEYS = ^FILTERKEYS;
  3634. FIND_NAME_BUFFER = record
  3635. length : UCHAR;
  3636. access_control : UCHAR;
  3637. frame_control : UCHAR;
  3638. destination_addr : array[0..5] of UCHAR;
  3639. source_addr : array[0..5] of UCHAR;
  3640. routing_info : array[0..17] of UCHAR;
  3641. end;
  3642. _FIND_NAME_BUFFER = FIND_NAME_BUFFER;
  3643. TFINDNAMEBUFFER = FIND_NAME_BUFFER;
  3644. PFINDNAMEBUFFER = ^FIND_NAME_BUFFER;
  3645. FIND_NAME_HEADER = record
  3646. node_count : WORD;
  3647. reserved : UCHAR;
  3648. unique_group : UCHAR;
  3649. end;
  3650. _FIND_NAME_HEADER = FIND_NAME_HEADER;
  3651. TFINDNAMEHEADER = FIND_NAME_HEADER;
  3652. PFINDNAMEHEADER = ^FIND_NAME_HEADER;
  3653. FINDREPLACE = record
  3654. lStructSize : DWORD;
  3655. hwndOwner : HWND;
  3656. hInstance : HINST;
  3657. Flags : DWORD;
  3658. lpstrFindWhat : LPTSTR;
  3659. lpstrReplaceWith : LPTSTR;
  3660. wFindWhatLen : WORD;
  3661. wReplaceWithLen : WORD;
  3662. lCustData : LPARAM;
  3663. lpfnHook : LPFRHOOKPROC;
  3664. lpTemplateName : LPCTSTR;
  3665. end;
  3666. LPFINDREPLACE = ^FINDREPLACE;
  3667. TFINDREPLACE = FINDREPLACE;
  3668. PFINDREPLACE = ^FINDREPLACE;
  3669. {FINDTEXT = record conflicts with FindText function }
  3670. TFINDTEXT = record
  3671. chrg : CHARRANGE;
  3672. lpstrText : LPSTR;
  3673. end;
  3674. _findtext = TFINDTEXT;
  3675. Pfindtext = ^TFINDTEXT;
  3676. FINDTEXTEX = record
  3677. chrg : CHARRANGE;
  3678. lpstrText : LPSTR;
  3679. chrgText : CHARRANGE;
  3680. end;
  3681. _findtextex = FINDTEXTEX;
  3682. Tfindtextex = FINDTEXTEX;
  3683. Pfindtextex = ^FINDTEXTEX;
  3684. FMS_GETDRIVEINFO = record
  3685. dwTotalSpace : DWORD;
  3686. dwFreeSpace : DWORD;
  3687. szPath : array[0..259] of TCHAR;
  3688. szVolume : array[0..13] of TCHAR;
  3689. szShare : array[0..127] of TCHAR;
  3690. end;
  3691. _FMS_GETDRIVEINFO = FMS_GETDRIVEINFO;
  3692. TFMSGETDRIVEINFO = FMS_GETDRIVEINFO;
  3693. PFMSGETDRIVEINFO = ^FMS_GETDRIVEINFO;
  3694. FMS_GETFILESEL = record
  3695. ftTime : FILETIME;
  3696. dwSize : DWORD;
  3697. bAttr : BYTE;
  3698. szName : array[0..259] of TCHAR;
  3699. end;
  3700. _FMS_GETFILESEL = FMS_GETFILESEL;
  3701. TFMSGETFILESEL = FMS_GETFILESEL;
  3702. PFMSGETFILESEL = ^FMS_GETFILESEL;
  3703. FMS_LOAD = record
  3704. dwSize : DWORD;
  3705. szMenuName : array[0..(MENU_TEXT_LEN)-1] of TCHAR;
  3706. hMenu : HMENU;
  3707. wMenuDelta : UINT;
  3708. end;
  3709. _FMS_LOAD = FMS_LOAD;
  3710. TFMSLOAD = FMS_LOAD;
  3711. PFMSLOAD = ^FMS_LOAD;
  3712. FMS_TOOLBARLOAD = record
  3713. dwSize : DWORD;
  3714. lpButtons : LPEXT_BUTTON;
  3715. cButtons : WORD;
  3716. cBitmaps : WORD;
  3717. idBitmap : WORD;
  3718. hBitmap : HBITMAP;
  3719. end;
  3720. _FMS_TOOLBARLOAD = FMS_TOOLBARLOAD;
  3721. TFMSTOOLBARLOAD = FMS_TOOLBARLOAD;
  3722. PFMSTOOLBARLOAD = ^FMS_TOOLBARLOAD;
  3723. FOCUS_EVENT_RECORD = record
  3724. bSetFocus : WINBOOL;
  3725. end;
  3726. _FOCUS_EVENT_RECORD = FOCUS_EVENT_RECORD;
  3727. TFOCUSEVENTRECORD = FOCUS_EVENT_RECORD;
  3728. PFOCUSEVENTRECORD = ^FOCUS_EVENT_RECORD;
  3729. FORM_INFO_1 = record
  3730. Flags : DWORD;
  3731. pName : LPTSTR;
  3732. Size : SIZEL;
  3733. ImageableArea : RECTL;
  3734. end;
  3735. _FORM_INFO_1 = FORM_INFO_1;
  3736. TFORMINFO1 = FORM_INFO_1;
  3737. PFORMINFO1 = ^FORM_INFO_1;
  3738. FORMAT_PARAMETERS = record
  3739. MediaType : MEDIA_TYPE;
  3740. StartCylinderNumber : DWORD;
  3741. EndCylinderNumber : DWORD;
  3742. StartHeadNumber : DWORD;
  3743. EndHeadNumber : DWORD;
  3744. end;
  3745. _FORMAT_PARAMETERS = FORMAT_PARAMETERS;
  3746. TFORMATPARAMETERS = FORMAT_PARAMETERS;
  3747. PFORMATPARAMETERS = ^FORMAT_PARAMETERS;
  3748. FORMATRANGE = record
  3749. _hdc : HDC;
  3750. hdcTarget : HDC;
  3751. rc : RECT;
  3752. rcPage : RECT;
  3753. chrg : CHARRANGE;
  3754. end;
  3755. _formatrange = FORMATRANGE;
  3756. Tformatrange = FORMATRANGE;
  3757. Pformatrange = ^FORMATRANGE;
  3758. GCP_RESULTS = record
  3759. lStructSize : DWORD;
  3760. lpOutString : LPTSTR;
  3761. lpOrder : ^UINT;
  3762. lpDx : ^WINT;
  3763. lpCaretPos : ^WINT;
  3764. lpClass : LPTSTR;
  3765. lpGlyphs : ^UINT;
  3766. nGlyphs : UINT;
  3767. nMaxFit : UINT;
  3768. end;
  3769. LPGCP_RESULTS = ^GCP_RESULTS;
  3770. tagGCP_RESULTS = GCP_RESULTS;
  3771. TGCPRESULTS = GCP_RESULTS;
  3772. PGCPRESULTS = ^GCP_RESULTS;
  3773. //
  3774. // Define the generic mapping array. This is used to denote the
  3775. // mapping of each generic access right to a specific access mask.
  3776. //
  3777. GENERIC_MAPPING = record //winnt
  3778. GenericRead : ACCESS_MASK;
  3779. GenericWrite : ACCESS_MASK;
  3780. GenericExecute : ACCESS_MASK;
  3781. GenericAll : ACCESS_MASK;
  3782. end;
  3783. PGENERIC_MAPPING = ^GENERIC_MAPPING;
  3784. _GENERIC_MAPPING = GENERIC_MAPPING;
  3785. TGENERICMAPPING = GENERIC_MAPPING;
  3786. PGENERICMAPPING = ^GENERIC_MAPPING;
  3787. GLYPHMETRICS = record
  3788. gmBlackBoxX : UINT;
  3789. gmBlackBoxY : UINT;
  3790. gmptGlyphOrigin : POINT;
  3791. gmCellIncX : integer;
  3792. gmCellIncY : integer;
  3793. end;
  3794. LPGLYPHMETRICS = ^GLYPHMETRICS;
  3795. _GLYPHMETRICS = GLYPHMETRICS;
  3796. TGLYPHMETRICS = GLYPHMETRICS;
  3797. PGLYPHMETRICS = ^GLYPHMETRICS;
  3798. HANDLETABLE = record
  3799. objectHandle : array[0..0] of HGDIOBJ;
  3800. end;
  3801. tagHANDLETABLE = HANDLETABLE;
  3802. THANDLETABLE = HANDLETABLE;
  3803. LPHANDLETABLE = ^HANDLETABLE;
  3804. HD_HITTESTINFO = record
  3805. pt : POINT;
  3806. flags : UINT;
  3807. iItem : longint;
  3808. end;
  3809. _HD_HITTESTINFO = HD_HITTESTINFO;
  3810. THDHITTESTINFO = HD_HITTESTINFO;
  3811. PHDHITTESTINFO = ^HD_HITTESTINFO;
  3812. HD_ITEM = record
  3813. mask : UINT;
  3814. cxy : longint;
  3815. pszText : LPTSTR;
  3816. hbm : HBITMAP;
  3817. cchTextMax : longint;
  3818. fmt : longint;
  3819. lParam : LPARAM;
  3820. end;
  3821. _HD_ITEM = HD_ITEM;
  3822. THDITEM = HD_ITEM;
  3823. PHDITEM = ^HD_ITEM;
  3824. WINDOWPOS = record
  3825. _hwnd : HWND;
  3826. hwndInsertAfter : HWND;
  3827. x : longint;
  3828. y : longint;
  3829. cx : longint;
  3830. cy : longint;
  3831. flags : UINT;
  3832. end;
  3833. LPWINDOWPOS = ^WINDOWPOS;
  3834. _WINDOWPOS = WINDOWPOS;
  3835. TWINDOWPOS = WINDOWPOS;
  3836. PWINDOWPOS = ^WINDOWPOS;
  3837. HD_LAYOUT = record
  3838. prc : ^RECT;
  3839. pwpos : ^WINDOWPOS;
  3840. end;
  3841. _HD_LAYOUT = HD_LAYOUT;
  3842. THDLAYOUT = HD_LAYOUT;
  3843. PHDLAYOUT = ^HD_LAYOUT;
  3844. HD_NOTIFY = record
  3845. hdr : NMHDR;
  3846. iItem : longint;
  3847. iButton : longint;
  3848. pitem : ^HD_ITEM;
  3849. end;
  3850. _HD_NOTIFY = HD_NOTIFY;
  3851. THDNOTIFY = HD_NOTIFY;
  3852. PHDNOTIFY = ^HD_NOTIFY;
  3853. HELPINFO = record
  3854. cbSize : UINT;
  3855. iContextType : longint;
  3856. iCtrlId : longint;
  3857. hItemHandle : HANDLE;
  3858. dwContextId : DWORD;
  3859. MousePos : POINT;
  3860. end;
  3861. LPHELPINFO = ^HELPINFO;
  3862. tagHELPINFO = HELPINFO;
  3863. THELPINFO = HELPINFO;
  3864. PHELPINFO = ^HELPINFO;
  3865. HELPWININFO = record
  3866. wStructSize : longint;
  3867. x : longint;
  3868. y : longint;
  3869. dx : longint;
  3870. dy : longint;
  3871. wMax : longint;
  3872. rgchMember : array[0..1] of TCHAR;
  3873. end;
  3874. THELPWININFO = HELPWININFO;
  3875. PHELPWININFO = ^HELPWININFO;
  3876. HIGHCONTRAST = record
  3877. cbSize : UINT;
  3878. dwFlags : DWORD;
  3879. lpszDefaultScheme : LPTSTR;
  3880. end;
  3881. LPHIGHCONTRAST = ^HIGHCONTRAST;
  3882. tagHIGHCONTRAST = HIGHCONTRAST;
  3883. THIGHCONTRAST = HIGHCONTRAST;
  3884. PHIGHCONTRAST = ^HIGHCONTRAST;
  3885. HSZPAIR = record
  3886. hszSvc : HSZ;
  3887. hszTopic : HSZ;
  3888. end;
  3889. tagHSZPAIR = HSZPAIR;
  3890. THSZPAIR = HSZPAIR;
  3891. PHSZPAIR = ^HSZPAIR;
  3892. ICONINFO = record
  3893. fIcon : WINBOOL;
  3894. xHotspot : DWORD;
  3895. yHotspot : DWORD;
  3896. hbmMask : HBITMAP;
  3897. hbmColor : HBITMAP;
  3898. end;
  3899. _ICONINFO = ICONINFO;
  3900. TICONINFO = ICONINFO;
  3901. PICONINFO = ^ICONINFO;
  3902. ICONMETRICS = record
  3903. cbSize : UINT;
  3904. iHorzSpacing : longint;
  3905. iVertSpacing : longint;
  3906. iTitleWrap : longint;
  3907. lfFont : LOGFONT;
  3908. end;
  3909. LPICONMETRICS = ^ICONMETRICS;
  3910. tagICONMETRICS = ICONMETRICS;
  3911. TICONMETRICS = ICONMETRICS;
  3912. PICONMETRICS = ^ICONMETRICS;
  3913. IMAGELISTDRAWPARAMS = record //+commctrl
  3914. cbSize : DWORD;
  3915. himl : HIMAGELIST;
  3916. i : Integer;
  3917. hdcDst : HDC;
  3918. x : Integer;
  3919. y : Integer;
  3920. cx : Integer;
  3921. cy : Integer;
  3922. xBitmap : Integer; // x offest from the upperleft of bitmap
  3923. yBitmap : Integer; // y offset from the upperleft of bitmap
  3924. rgbBk : COLORREF;
  3925. rgbFg : COLORREF;
  3926. fStyle : UINT;
  3927. dwRop : DWORD;
  3928. end;
  3929. _IMAGELISTDRAWPARAMS=IMAGELISTDRAWPARAMS;
  3930. PIMAGELISTDRAWPARAMS=^IMAGELISTDRAWPARAMS;
  3931. IMAGEINFO = record
  3932. hbmImage : HBITMAP;
  3933. hbmMask : HBITMAP;
  3934. Unused1 : longint;
  3935. Unused2 : longint;
  3936. rcImage : RECT;
  3937. end;
  3938. _IMAGEINFO = IMAGEINFO;
  3939. TIMAGEINFO = IMAGEINFO;
  3940. PIMAGEINFO = ^IMAGEINFO;
  3941. KEY_EVENT_RECORD = packed record
  3942. bKeyDown : WINBOOL;
  3943. wRepeatCount : WORD;
  3944. wVirtualKeyCode : WORD;
  3945. wVirtualScanCode : WORD;
  3946. case longint of
  3947. 0 : ( UnicodeChar : WCHAR;
  3948. dwControlKeyState : DWORD; );
  3949. 1 : ( AsciiChar : CHAR );
  3950. end;
  3951. _KEY_EVENT_RECORD = KEY_EVENT_RECORD;
  3952. TKEYEVENTRECORD = KEY_EVENT_RECORD;
  3953. PKEYEVENTRECORD = ^KEY_EVENT_RECORD;
  3954. MOUSE_EVENT_RECORD = record
  3955. dwMousePosition : COORD;
  3956. dwButtonState : DWORD;
  3957. dwControlKeyState : DWORD;
  3958. dwEventFlags : DWORD;
  3959. end;
  3960. _MOUSE_EVENT_RECORD = MOUSE_EVENT_RECORD;
  3961. TMOUSEEVENTRECORD = MOUSE_EVENT_RECORD;
  3962. PMOUSEEVENTRECORD = ^MOUSE_EVENT_RECORD;
  3963. WINDOW_BUFFER_SIZE_RECORD = record
  3964. dwSize : COORD;
  3965. end;
  3966. _WINDOW_BUFFER_SIZE_RECORD = WINDOW_BUFFER_SIZE_RECORD;
  3967. TWINDOWBUFFERSIZERECORD = WINDOW_BUFFER_SIZE_RECORD;
  3968. PWINDOWBUFFERSIZERECORD = ^WINDOW_BUFFER_SIZE_RECORD;
  3969. MENU_EVENT_RECORD = record
  3970. dwCommandId : UINT;
  3971. end;
  3972. PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD;
  3973. _MENU_EVENT_RECORD = MENU_EVENT_RECORD;
  3974. TMENUEVENTRECORD = MENU_EVENT_RECORD;
  3975. PMENUEVENTRECORD = ^MENU_EVENT_RECORD;
  3976. INPUT_RECORD = record
  3977. EventType: Word;
  3978. Reserved: Word;
  3979. Event : record case longint of
  3980. 0 : ( KeyEvent : KEY_EVENT_RECORD );
  3981. 1 : ( MouseEvent : MOUSE_EVENT_RECORD );
  3982. 2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD );
  3983. 3 : ( MenuEvent : MENU_EVENT_RECORD );
  3984. 4 : ( FocusEvent : FOCUS_EVENT_RECORD );
  3985. end;
  3986. end;
  3987. PINPUT_RECORD = ^INPUT_RECORD;
  3988. _INPUT_RECORD = INPUT_RECORD;
  3989. TINPUTRECORD = INPUT_RECORD;
  3990. PINPUTRECORD = ^INPUT_RECORD;
  3991. SYSTEMTIME = record
  3992. case integer of
  3993. 1 : (
  3994. wYear : WORD;
  3995. wMonth : WORD;
  3996. wDayOfWeek : WORD;
  3997. wDay : WORD;
  3998. wHour : WORD;
  3999. wMinute : WORD;
  4000. wSecond : WORD;
  4001. wMilliseconds : WORD;
  4002. );
  4003. { Compatibility for FPC }
  4004. 2 : (
  4005. Year : WORD;
  4006. Month : WORD;
  4007. DayOfWeek : WORD;
  4008. Day : WORD;
  4009. Hour : WORD;
  4010. Minute : WORD;
  4011. Second : WORD;
  4012. Millisecond : WORD;
  4013. );
  4014. end;
  4015. LPSYSTEMTIME = ^SYSTEMTIME;
  4016. _SYSTEMTIME = SYSTEMTIME;
  4017. TSYSTEMTIME = SYSTEMTIME;
  4018. PSYSTEMTIME = ^SYSTEMTIME;
  4019. JOB_INFO_1 = record
  4020. JobId : DWORD;
  4021. pPrinterName : LPTSTR;
  4022. pMachineName : LPTSTR;
  4023. pUserName : LPTSTR;
  4024. pDocument : LPTSTR;
  4025. pDatatype : LPTSTR;
  4026. pStatus : LPTSTR;
  4027. Status : DWORD;
  4028. Priority : DWORD;
  4029. Position : DWORD;
  4030. TotalPages : DWORD;
  4031. PagesPrinted : DWORD;
  4032. Submitted : SYSTEMTIME;
  4033. end;
  4034. _JOB_INFO_1 = JOB_INFO_1;
  4035. TJOBINFO1 = JOB_INFO_1;
  4036. PJOBINFO1 = ^JOB_INFO_1;
  4037. SID_AND_ATTRIBUTES = record //~winnt, moved with SID declarations
  4038. Sid : PSID;
  4039. Attributes : DWORD;
  4040. end;
  4041. _SID_AND_ATTRIBUTES = SID_AND_ATTRIBUTES;
  4042. TSIDANDATTRIBUTES = SID_AND_ATTRIBUTES;
  4043. PSIDANDATTRIBUTES = ^SID_AND_ATTRIBUTES;
  4044. SID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES; //winnt
  4045. PSID_AND_ATTRIBUTES_ARRAY = ^SID_AND_ATTRIBUTES_ARRAY;
  4046. TSIDANDATTRIBUTESARRAY = SID_AND_ATTRIBUTES_ARRAY;
  4047. PSIDANDATTRIBUTESARRAY = ^SID_AND_ATTRIBUTES_ARRAY;
  4048. SECURITY_DESCRIPTOR_CONTROL = WORD;
  4049. PSECURITY_DESCRIPTOR_CONTROL = ^SECURITY_DESCRIPTOR_CONTROL;
  4050. TSECURITYDESCRIPTORCONTROL = SECURITY_DESCRIPTOR_CONTROL;
  4051. PSECURITYDESCRIPTORCONTROL = ^SECURITY_DESCRIPTOR_CONTROL;
  4052. SECURITY_DESCRIPTOR = record
  4053. Revision : BYTE;
  4054. Sbz1 : BYTE;
  4055. Control : SECURITY_DESCRIPTOR_CONTROL;
  4056. Owner : PSID;
  4057. Group : PSID;
  4058. Sacl : PACL;
  4059. Dacl : PACL;
  4060. end;
  4061. PSECURITY_DESCRIPTOR = ^SECURITY_DESCRIPTOR;
  4062. _SECURITY_DESCRIPTOR = SECURITY_DESCRIPTOR;
  4063. TSECURITYDESCRIPTOR = SECURITY_DESCRIPTOR;
  4064. PSECURITYDESCRIPTOR = ^SECURITY_DESCRIPTOR;
  4065. JOB_INFO_2 = record
  4066. JobId : DWORD;
  4067. pPrinterName : LPTSTR;
  4068. pMachineName : LPTSTR;
  4069. pUserName : LPTSTR;
  4070. pDocument : LPTSTR;
  4071. pNotifyName : LPTSTR;
  4072. pDatatype : LPTSTR;
  4073. pPrintProcessor : LPTSTR;
  4074. pParameters : LPTSTR;
  4075. pDriverName : LPTSTR;
  4076. pDevMode : LPDEVMODE;
  4077. pStatus : LPTSTR;
  4078. pSecurityDescriptor : PSECURITY_DESCRIPTOR;
  4079. Status : DWORD;
  4080. Priority : DWORD;
  4081. Position : DWORD;
  4082. StartTime : DWORD;
  4083. UntilTime : DWORD;
  4084. TotalPages : DWORD;
  4085. Size : DWORD;
  4086. Submitted : SYSTEMTIME;
  4087. Time : DWORD;
  4088. PagesPrinted : DWORD;
  4089. end;
  4090. _JOB_INFO_2 = JOB_INFO_2;
  4091. TJOBINFO2 = JOB_INFO_2;
  4092. PJOBINFO2 = ^JOB_INFO_2;
  4093. KERNINGPAIR = record
  4094. wFirst : WORD;
  4095. wSecond : WORD;
  4096. iKernAmount : longint;
  4097. end;
  4098. LPKERNINGPAIR = ^KERNINGPAIR;
  4099. tagKERNINGPAIR = KERNINGPAIR;
  4100. TKERNINGPAIR = KERNINGPAIR;
  4101. PKERNINGPAIR = ^KERNINGPAIR;
  4102. LANA_ENUM = record
  4103. length : UCHAR;
  4104. lana : array[0..(MAX_LANA)-1] of UCHAR;
  4105. end;
  4106. _LANA_ENUM = LANA_ENUM;
  4107. TLANAENUM = LANA_ENUM;
  4108. PLANAENUM = ^LANA_ENUM;
  4109. const
  4110. bm_LDT_ENTRY_BaseMid = $FF;
  4111. bp_LDT_ENTRY_BaseMid = 0;
  4112. bm_LDT_ENTRY_Type = $1F00;
  4113. bp_LDT_ENTRY_Type = 8;
  4114. bm_LDT_ENTRY_Dpl = $6000;
  4115. bp_LDT_ENTRY_Dpl = 13;
  4116. bm_LDT_ENTRY_Pres = $8000;
  4117. bp_LDT_ENTRY_Pres = 15;
  4118. bm_LDT_ENTRY_LimitHi = $F0000;
  4119. bp_LDT_ENTRY_LimitHi = 16;
  4120. bm_LDT_ENTRY_Sys = $100000;
  4121. bp_LDT_ENTRY_Sys = 20;
  4122. bm_LDT_ENTRY_Reserved_0 = $200000;
  4123. bp_LDT_ENTRY_Reserved_0 = 21;
  4124. bm_LDT_ENTRY_Default_Big = $400000;
  4125. bp_LDT_ENTRY_Default_Big = 22;
  4126. bm_LDT_ENTRY_Granularity = $800000;
  4127. bp_LDT_ENTRY_Granularity = 23;
  4128. bm_LDT_ENTRY_BaseHi = $FF000000;
  4129. bp_LDT_ENTRY_BaseHi = 24;
  4130. type
  4131. LOCALESIGNATURE = record
  4132. lsUsb : array[0..3] of DWORD;
  4133. lsCsbDefault : array[0..1] of DWORD;
  4134. lsCsbSupported : array[0..1] of DWORD;
  4135. end;
  4136. tagLOCALESIGNATURE = LOCALESIGNATURE;
  4137. TLOCALESIGNATURE = LOCALESIGNATURE;
  4138. PLOCALESIGNATURE = ^LOCALESIGNATURE;
  4139. LOCALGROUP_MEMBERS_INFO_0 = record
  4140. lgrmi0_sid : PSID;
  4141. end;
  4142. _LOCALGROUP_MEMBERS_INFO_0 = LOCALGROUP_MEMBERS_INFO_0;
  4143. TLOCALGROUPMEMBERSINFO0 = LOCALGROUP_MEMBERS_INFO_0;
  4144. PLOCALGROUPMEMBERSINFO0 = ^LOCALGROUP_MEMBERS_INFO_0;
  4145. LOCALGROUP_MEMBERS_INFO_3 = record
  4146. lgrmi3_domainandname : LPWSTR;
  4147. end;
  4148. _LOCALGROUP_MEMBERS_INFO_3 = LOCALGROUP_MEMBERS_INFO_3;
  4149. TLOCALGROUPMEMBERSINFO3 = LOCALGROUP_MEMBERS_INFO_3;
  4150. PLOCALGROUPMEMBERSINFO3 = ^LOCALGROUP_MEMBERS_INFO_3;
  4151. FXPT16DOT16 = longint;
  4152. LPFXPT16DOT16 = ^FXPT16DOT16;
  4153. TFXPT16DOT16 = FXPT16DOT16;
  4154. PFXPT16DOT16 = ^FXPT16DOT16;
  4155. LUID_AND_ATTRIBUTES = record //winnt
  4156. Luid : LUID;
  4157. Attributes : DWORD;
  4158. end;
  4159. _LUID_AND_ATTRIBUTES = LUID_AND_ATTRIBUTES;
  4160. TLUIDANDATTRIBUTES = LUID_AND_ATTRIBUTES;
  4161. PLUIDANDATTRIBUTES = ^LUID_AND_ATTRIBUTES;
  4162. LUID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;
  4163. PLUID_AND_ATTRIBUTES_ARRAY = ^LUID_AND_ATTRIBUTES_ARRAY;
  4164. TLUIDANDATTRIBUTESARRAY = LUID_AND_ATTRIBUTES_ARRAY;
  4165. PLUIDANDATTRIBUTESARRAY = ^LUID_AND_ATTRIBUTES_ARRAY;
  4166. LV_COLUMN = record
  4167. mask : UINT;
  4168. fmt : longint;
  4169. cx : longint;
  4170. {$IFDEF UNICODE}
  4171. pszText : LPWSTR;
  4172. {$ELSE UNICODE}
  4173. pszText : LPTSTR;
  4174. {$ENDIF UNICODE}
  4175. cchTextMax : longint;
  4176. iSubItem : longint;
  4177. iImage : Longint; //#if (_WIN32_IE >= 0x0300)
  4178. iOrder : longint; //#if (_WIN32_IE >= 0x0300)
  4179. end;
  4180. _LV_COLUMN = LV_COLUMN;
  4181. TLVCOLUMN = LV_COLUMN;
  4182. PLVCOLUMN = ^LV_COLUMN;
  4183. LV_ITEM = record
  4184. mask : UINT;
  4185. iItem : longint;
  4186. iSubItem : longint;
  4187. state : UINT;
  4188. stateMask : UINT;
  4189. {$IFDEF UNICODE}
  4190. pszText : LPWSTR;
  4191. {$ELSE UNICODE}
  4192. pszText : LPTSTR;
  4193. {$ENDIF UNICODE}
  4194. cchTextMax : longint;
  4195. iImage : longint;
  4196. lParam : LPARAM;
  4197. iIndent: Longint; //#if (_WIN32_IE >= 0x0300)
  4198. end;
  4199. _LV_ITEM = LV_ITEM;
  4200. TLVITEM = LV_ITEM;
  4201. PLVITEM = ^LV_ITEM;
  4202. LV_DISPINFO = record
  4203. hdr : NMHDR;
  4204. item : LV_ITEM;
  4205. end;
  4206. tagLV_DISPINFO = LV_DISPINFO;
  4207. TLVDISPINFO = LV_DISPINFO;
  4208. PLVDISPINFO = ^LV_DISPINFO;
  4209. LV_FINDINFO = record
  4210. flags : UINT;
  4211. psz : LPCTSTR;
  4212. lParam : LPARAM;
  4213. pt : POINT;
  4214. vkDirection : UINT;
  4215. end;
  4216. _LV_FINDINFO = LV_FINDINFO;
  4217. TLVFINDINFO = LV_FINDINFO;
  4218. PLVFINDINFO = ^LV_FINDINFO;
  4219. LV_HITTESTINFO = record
  4220. pt : POINT;
  4221. flags : UINT;
  4222. iItem : longint;
  4223. end;
  4224. _LV_HITTESTINFO = LV_HITTESTINFO;
  4225. TLVHITTESTINFO = LV_HITTESTINFO;
  4226. PLVHITTESTINFO = ^LV_HITTESTINFO;
  4227. LV_KEYDOWN = record
  4228. hdr : NMHDR;
  4229. wVKey : WORD;
  4230. flags : UINT;
  4231. end;
  4232. tagLV_KEYDOWN = LV_KEYDOWN;
  4233. TLVKEYDOWN = LV_KEYDOWN;
  4234. PLVKEYDOWN = ^LV_KEYDOWN;
  4235. MAT2 = record
  4236. eM11 : FIXED;
  4237. eM12 : FIXED;
  4238. eM21 : FIXED;
  4239. eM22 : FIXED;
  4240. end;
  4241. _MAT2 = MAT2;
  4242. TMAT2 = MAT2;
  4243. PMAT2 = ^MAT2;
  4244. MDICREATESTRUCT = record
  4245. szClass : LPCTSTR;
  4246. szTitle : LPCTSTR;
  4247. hOwner : HANDLE;
  4248. x : longint;
  4249. y : longint;
  4250. cx : longint;
  4251. cy : longint;
  4252. style : DWORD;
  4253. lParam : LPARAM;
  4254. end;
  4255. LPMDICREATESTRUCT = ^MDICREATESTRUCT;
  4256. tagMDICREATESTRUCT = MDICREATESTRUCT;
  4257. TMDICREATESTRUCT = MDICREATESTRUCT;
  4258. PMDICREATESTRUCT = ^MDICREATESTRUCT;
  4259. MEASUREITEMSTRUCT = record
  4260. CtlType : UINT;
  4261. CtlID : UINT;
  4262. itemID : UINT;
  4263. itemWidth : UINT;
  4264. itemHeight : UINT;
  4265. itemData : DWORD;
  4266. end;
  4267. LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  4268. tagMEASUREITEMSTRUCT = MEASUREITEMSTRUCT;
  4269. TMEASUREITEMSTRUCT = MEASUREITEMSTRUCT;
  4270. PMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  4271. MEMORY_BASIC_INFORMATION = record
  4272. BaseAddress : PVOID;
  4273. AllocationBase : PVOID;
  4274. AllocationProtect : DWORD;
  4275. RegionSize : DWORD;
  4276. State : DWORD;
  4277. Protect : DWORD;
  4278. _Type : DWORD;
  4279. end;
  4280. PMEMORY_BASIC_INFORMATION = ^MEMORY_BASIC_INFORMATION;
  4281. _MEMORY_BASIC_INFORMATION = MEMORY_BASIC_INFORMATION;
  4282. TMEMORYBASICINFORMATION = MEMORY_BASIC_INFORMATION;
  4283. PMEMORYBASICINFORMATION = ^MEMORY_BASIC_INFORMATION;
  4284. MEMORYSTATUS = record
  4285. dwLength : DWORD;
  4286. dwMemoryLoad : DWORD;
  4287. dwTotalPhys : DWORD;
  4288. dwAvailPhys : DWORD;
  4289. dwTotalPageFile : DWORD;
  4290. dwAvailPageFile : DWORD;
  4291. dwTotalVirtual : DWORD;
  4292. dwAvailVirtual : DWORD;
  4293. end;
  4294. LPMEMORYSTATUS = ^MEMORYSTATUS;
  4295. _MEMORYSTATUS = MEMORYSTATUS;
  4296. TMEMORYSTATUS = MEMORYSTATUS;
  4297. PMEMORYSTATUS = ^MEMORYSTATUS;
  4298. MENUEX_TEMPLATE_HEADER = record
  4299. wVersion : WORD;
  4300. wOffset : WORD;
  4301. dwHelpId : DWORD;
  4302. end;
  4303. TMENUXTEMPLATEHEADER = MENUEX_TEMPLATE_HEADER;
  4304. PMENUXTEMPLATEHEADER = ^MENUEX_TEMPLATE_HEADER;
  4305. MENUEX_TEMPLATE_ITEM = record
  4306. dwType : DWORD;
  4307. dwState : DWORD;
  4308. uId : UINT;
  4309. bResInfo : BYTE;
  4310. szText : array[0..0] of WCHAR;
  4311. dwHelpId : DWORD;
  4312. end;
  4313. TMENUEXTEMPLATEITEM = MENUEX_TEMPLATE_ITEM;
  4314. PMENUEXTEMPLATEITEM = ^MENUEX_TEMPLATE_ITEM;
  4315. MENUITEMINFO = record
  4316. cbSize : UINT;
  4317. fMask : UINT;
  4318. fType : UINT;
  4319. fState : UINT;
  4320. wID : UINT;
  4321. hSubMenu : HMENU;
  4322. hbmpChecked : HBITMAP;
  4323. hbmpUnchecked : HBITMAP;
  4324. dwItemData : DWORD;
  4325. dwTypeData : LPTSTR;
  4326. cch : UINT;
  4327. end;
  4328. LPMENUITEMINFO = ^MENUITEMINFO;
  4329. LPCMENUITEMINFO = ^MENUITEMINFO;
  4330. tagMENUITEMINFO = MENUITEMINFO;
  4331. TMENUITEMINFO = MENUITEMINFO;
  4332. TMENUITEMINFOW = MENUITEMINFO;
  4333. PMENUITEMINFO = ^MENUITEMINFO;
  4334. PMENUITEMINFOW = ^MENUITEMINFO;
  4335. MENUITEMTEMPLATE = record
  4336. mtOption : WORD;
  4337. mtID : WORD;
  4338. mtString : array[0..0] of WCHAR;
  4339. end;
  4340. TMENUITEMTEMPLATE = MENUITEMTEMPLATE;
  4341. PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE;
  4342. MENUITEMTEMPLATEHEADER = record
  4343. versionNumber : WORD;
  4344. offset : WORD;
  4345. end;
  4346. TMENUITEMTEMPLATEHEADER = MENUITEMTEMPLATEHEADER;
  4347. PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
  4348. MENUTEMPLATE = record
  4349. end;
  4350. LPMENUTEMPLATE = ^MENUTEMPLATE;
  4351. TMENUTEMPLATE = MENUTEMPLATE;
  4352. PMENUTEMPLATE = ^MENUTEMPLATE;
  4353. METAFILEPICT = record
  4354. mm : LONG;
  4355. xExt : LONG;
  4356. yExt : LONG;
  4357. hMF : HMETAFILE;
  4358. end;
  4359. LPMETAFILEPICT = ^METAFILEPICT;
  4360. tagMETAFILEPICT = METAFILEPICT;
  4361. TMETAFILEPICT = METAFILEPICT;
  4362. PMETAFILEPICT = ^METAFILEPICT;
  4363. METAHEADER = packed record
  4364. mtType : WORD;
  4365. mtHeaderSize : WORD;
  4366. mtVersion : WORD;
  4367. mtSize : DWORD;
  4368. mtNoObjects : WORD;
  4369. mtMaxRecord : DWORD;
  4370. mtNoParameters : WORD;
  4371. end;
  4372. tagMETAHEADER = METAHEADER;
  4373. TMETAHEADER = METAHEADER;
  4374. PMETAHEADER = ^METAHEADER;
  4375. METARECORD = record
  4376. rdSize : DWORD;
  4377. rdFunction : WORD;
  4378. rdParm : array[0..0] of WORD;
  4379. end;
  4380. LPMETARECORD = ^METARECORD;
  4381. tagMETARECORD = METARECORD;
  4382. TMETARECORD = METARECORD;
  4383. PMETARECORD = ^METARECORD;
  4384. MINIMIZEDMETRICS = record
  4385. cbSize : UINT;
  4386. iWidth : longint;
  4387. iHorzGap : longint;
  4388. iVertGap : longint;
  4389. iArrange : longint;
  4390. end;
  4391. LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
  4392. tagMINIMIZEDMETRICS = MINIMIZEDMETRICS;
  4393. TMINIMIZEDMETRICS = MINIMIZEDMETRICS;
  4394. PMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
  4395. MINMAXINFO = record
  4396. ptReserved : POINT;
  4397. ptMaxSize : POINT;
  4398. ptMaxPosition : POINT;
  4399. ptMinTrackSize : POINT;
  4400. ptMaxTrackSize : POINT;
  4401. end;
  4402. tagMINMAXINFO = MINMAXINFO;
  4403. TMINMAXINFO = MINMAXINFO;
  4404. PMINMAXINFO = ^MINMAXINFO;
  4405. MODEMDEVCAPS = record
  4406. dwActualSize : DWORD;
  4407. dwRequiredSize : DWORD;
  4408. dwDevSpecificOffset : DWORD;
  4409. dwDevSpecificSize : DWORD;
  4410. dwModemProviderVersion : DWORD;
  4411. dwModemManufacturerOffset : DWORD;
  4412. dwModemManufacturerSize : DWORD;
  4413. dwModemModelOffset : DWORD;
  4414. dwModemModelSize : DWORD;
  4415. dwModemVersionOffset : DWORD;
  4416. dwModemVersionSize : DWORD;
  4417. dwDialOptions : DWORD;
  4418. dwCallSetupFailTimer : DWORD;
  4419. dwInactivityTimeout : DWORD;
  4420. dwSpeakerVolume : DWORD;
  4421. dwSpeakerMode : DWORD;
  4422. dwModemOptions : DWORD;
  4423. dwMaxDTERate : DWORD;
  4424. dwMaxDCERate : DWORD;
  4425. abVariablePortion : array[0..0] of BYTE;
  4426. end;
  4427. LPMODEMDEVCAPS = ^MODEMDEVCAPS;
  4428. TMODEMDEVCAPS = MODEMDEVCAPS;
  4429. PMODEMDEVCAPS = ^MODEMDEVCAPS;
  4430. modemdevcaps_tag = MODEMDEVCAPS;
  4431. MODEMSETTINGS = record
  4432. dwActualSize : DWORD;
  4433. dwRequiredSize : DWORD;
  4434. dwDevSpecificOffset : DWORD;
  4435. dwDevSpecificSize : DWORD;
  4436. dwCallSetupFailTimer : DWORD;
  4437. dwInactivityTimeout : DWORD;
  4438. dwSpeakerVolume : DWORD;
  4439. dwSpeakerMode : DWORD;
  4440. dwPreferredModemOptions : DWORD;
  4441. dwNegotiatedModemOptions : DWORD;
  4442. dwNegotiatedDCERate : DWORD;
  4443. abVariablePortion : array[0..0] of BYTE;
  4444. end;
  4445. LPMODEMSETTINGS = ^MODEMSETTINGS;
  4446. TMODEMSETTINGS = MODEMSETTINGS;
  4447. PMODEMSETTINGS = ^MODEMSETTINGS;
  4448. modemsettings_tag = MODEMSETTINGS;
  4449. MONCBSTRUCT = record
  4450. cb : UINT;
  4451. dwTime : DWORD;
  4452. hTask : HANDLE;
  4453. dwRet : DWORD;
  4454. wType : UINT;
  4455. wFmt : UINT;
  4456. hConv : HCONV;
  4457. hsz1 : HSZ;
  4458. hsz2 : HSZ;
  4459. hData : HDDEDATA;
  4460. dwData1 : DWORD;
  4461. dwData2 : DWORD;
  4462. cc : CONVCONTEXT;
  4463. cbData : DWORD;
  4464. Data : array[0..7] of DWORD;
  4465. end;
  4466. tagMONCBSTRUCT = MONCBSTRUCT;
  4467. TMONCBSTRUCT = MONCBSTRUCT;
  4468. PMONCBSTRUCT = ^MONCBSTRUCT;
  4469. MONCONVSTRUCT = record
  4470. cb : UINT;
  4471. fConnect : WINBOOL;
  4472. dwTime : DWORD;
  4473. hTask : HANDLE;
  4474. hszSvc : HSZ;
  4475. hszTopic : HSZ;
  4476. hConvClient : HCONV;
  4477. hConvServer : HCONV;
  4478. end;
  4479. tagMONCONVSTRUCT = MONCONVSTRUCT;
  4480. TMONCONVSTRUCT = MONCONVSTRUCT;
  4481. PMONCONVSTRUCT = ^MONCONVSTRUCT;
  4482. MONERRSTRUCT = record
  4483. cb : UINT;
  4484. wLastError : UINT;
  4485. dwTime : DWORD;
  4486. hTask : HANDLE;
  4487. end;
  4488. tagMONERRSTRUCT = MONERRSTRUCT;
  4489. TMONERRSTRUCT = MONERRSTRUCT;
  4490. PMONERRSTRUCT = ^MONERRSTRUCT;
  4491. MONHSZSTRUCT = record
  4492. cb : UINT;
  4493. fsAction : WINBOOL;
  4494. dwTime : DWORD;
  4495. hsz : HSZ;
  4496. hTask : HANDLE;
  4497. str : array[0..0] of TCHAR;
  4498. end;
  4499. tagMONHSZSTRUCT = MONHSZSTRUCT;
  4500. TMONHSZSTRUCT = MONHSZSTRUCT;
  4501. PMONHSZSTRUCT = ^MONHSZSTRUCT;
  4502. MONITOR_INFO_1 = record
  4503. pName : LPTSTR;
  4504. end;
  4505. _MONITOR_INFO_1 = MONITOR_INFO_1;
  4506. TMONITORINFO1 = MONITOR_INFO_1;
  4507. PMONITORINFO1 = ^MONITOR_INFO_1;
  4508. MONITOR_INFO_2 = record
  4509. pName : LPTSTR;
  4510. pEnvironment : LPTSTR;
  4511. pDLLName : LPTSTR;
  4512. end;
  4513. _MONITOR_INFO_2 = MONITOR_INFO_2;
  4514. TMONITORINFO2 = MONITOR_INFO_2;
  4515. PMONITORINFO2 = ^MONITOR_INFO_2;
  4516. MONLINKSTRUCT = record
  4517. cb : UINT;
  4518. dwTime : DWORD;
  4519. hTask : HANDLE;
  4520. fEstablished : WINBOOL;
  4521. fNoData : WINBOOL;
  4522. hszSvc : HSZ;
  4523. hszTopic : HSZ;
  4524. hszItem : HSZ;
  4525. wFmt : UINT;
  4526. fServer : WINBOOL;
  4527. hConvServer : HCONV;
  4528. hConvClient : HCONV;
  4529. end;
  4530. tagMONLINKSTRUCT = MONLINKSTRUCT;
  4531. TMONLINKSTRUCT = MONLINKSTRUCT;
  4532. PMONLINKSTRUCT = ^MONLINKSTRUCT;
  4533. MONMSGSTRUCT = record
  4534. cb : UINT;
  4535. hwndTo : HWND;
  4536. dwTime : DWORD;
  4537. hTask : HANDLE;
  4538. wMsg : UINT;
  4539. wParam : WPARAM;
  4540. lParam : LPARAM;
  4541. dmhd : DDEML_MSG_HOOK_DATA;
  4542. end;
  4543. tagMONMSGSTRUCT = MONMSGSTRUCT;
  4544. TMONMSGSTRUCT = MONMSGSTRUCT;
  4545. PMONMSGSTRUCT = ^MONMSGSTRUCT;
  4546. MOUSEHOOKSTRUCT = record
  4547. pt : POINT;
  4548. hwnd : HWND;
  4549. wHitTestCode : UINT;
  4550. dwExtraInfo : DWORD;
  4551. end;
  4552. LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  4553. tagMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT;
  4554. TMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT;
  4555. PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  4556. MOUSEKEYS = record
  4557. cbSize : DWORD;
  4558. dwFlags : DWORD;
  4559. iMaxSpeed : DWORD;
  4560. iTimeToMaxSpeed : DWORD;
  4561. iCtrlSpeed : DWORD;
  4562. dwReserved1 : DWORD;
  4563. dwReserved2 : DWORD;
  4564. end;
  4565. TMOUSEKEYS = MOUSEKEYS;
  4566. PMOUSEKEYS = ^MOUSEKEYS;
  4567. MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);
  4568. TMSGBOXCALLBACK = MSGBOXCALLBACK;
  4569. MSGBOXPARAMS = record
  4570. cbSize : UINT;
  4571. hwndOwner : HWND;
  4572. hInstance : HINST;
  4573. lpszText : LPCSTR;
  4574. lpszCaption : LPCSTR;
  4575. dwStyle : DWORD;
  4576. lpszIcon : LPCSTR;
  4577. dwContextHelpId : DWORD;
  4578. lpfnMsgBoxCallback : MSGBOXCALLBACK;
  4579. dwLanguageId : DWORD;
  4580. end;
  4581. LPMSGBOXPARAMS = ^MSGBOXPARAMS;
  4582. TMSGBOXPARAMS = MSGBOXPARAMS;
  4583. TMSGBOXPARAMSA = MSGBOXPARAMS;
  4584. PMSGBOXPARAMS = ^MSGBOXPARAMS;
  4585. MSGFILTER = record
  4586. nmhdr : NMHDR;
  4587. msg : UINT;
  4588. wParam : WPARAM;
  4589. lParam : LPARAM;
  4590. end;
  4591. _msgfilter = MSGFILTER;
  4592. Tmsgfilter = MSGFILTER;
  4593. Pmsgfilter = ^MSGFILTER;
  4594. MULTIKEYHELP = record
  4595. mkSize : DWORD;
  4596. mkKeylist : TCHAR;
  4597. szKeyphrase : array[0..0] of TCHAR;
  4598. end;
  4599. tagMULTIKEYHELP = MULTIKEYHELP;
  4600. TMULTIKEYHELP = MULTIKEYHELP;
  4601. PMULTIKEYHELP = ^MULTIKEYHELP;
  4602. EXTENDED_NAME_FORMAT=(
  4603. // unknown name type
  4604. NameUnknown = 0,
  4605. // CN=Spencer Katt, OU=Software, OU=Engineering, O=Widget, C=US
  4606. NameFullyQualifiedDN = 1,
  4607. // Engineering\SpencerK
  4608. NameSamCompatible = 2,
  4609. // Probably "Spencer Katt" but could be something else. I.e. The
  4610. // display name is not necessarily the defining RDN.
  4611. NameDisplay = 3,
  4612. // [email protected] where xxx could be "SpencerK" or
  4613. // anything else. Could be multi-valued to handle migration and aliasing.
  4614. NameDomainSimple = 4,
  4615. // [email protected] where xxx could be "SpencerK" or anything else.
  4616. // Could be multi-valued to handle migration and aliasing.
  4617. NameEnterpriseSimple = 5,
  4618. // String-ized GUID as returned by IIDFromString().
  4619. // eg: {4fa050f0-f561-11cf-bdd9-00aa003a77b6}
  4620. NameUniqueId = 6,
  4621. // engineering.widget.com/software/spencer katt
  4622. NameCanonical = 7,
  4623. // local logon name
  4624. NameWindowsCeLocal = $80000001); //+winbase
  4625. PEXTENDED_NAME_FORMAT=^EXTENDED_NAME_FORMAT; //+winbase
  4626. NAME_BUFFER = record
  4627. name : array[0..(NCBNAMSZ)-1] of UCHAR;
  4628. name_num : UCHAR;
  4629. name_flags : UCHAR;
  4630. end;
  4631. _NAME_BUFFER = NAME_BUFFER;
  4632. TNAMEBUFFER = NAME_BUFFER;
  4633. PNAMEBUFFER = ^NAME_BUFFER;
  4634. p_NCB = ^_NCB;
  4635. NCB = record
  4636. ncb_command : UCHAR;
  4637. ncb_retcode : UCHAR;
  4638. ncb_lsn : UCHAR;
  4639. ncb_num : UCHAR;
  4640. ncb_buffer : PUCHAR;
  4641. ncb_length : WORD;
  4642. ncb_callname : array[0..(NCBNAMSZ)-1] of UCHAR;
  4643. ncb_name : array[0..(NCBNAMSZ)-1] of UCHAR;
  4644. ncb_rto : UCHAR;
  4645. ncb_sto : UCHAR;
  4646. ncb_post : procedure (_para1:p_NCB);CDECL;
  4647. ncb_lana_num : UCHAR;
  4648. ncb_cmd_cplt : UCHAR;
  4649. ncb_reserve : array[0..9] of UCHAR;
  4650. ncb_event : HANDLE;
  4651. end;
  4652. _NCB = NCB;
  4653. TNCB = NCB;
  4654. PNCB = ^NCB;
  4655. NCCALCSIZE_PARAMS = record
  4656. rgrc : array[0..2] of RECT;
  4657. lppos : PWINDOWPOS;
  4658. end;
  4659. _NCCALCSIZE_PARAMS = NCCALCSIZE_PARAMS;
  4660. TNCCALCSIZEPARAMS = NCCALCSIZE_PARAMS;
  4661. PNCCALCSIZEPARAMS = ^NCCALCSIZE_PARAMS;
  4662. NDDESHAREINFO = record
  4663. lRevision : LONG;
  4664. lpszShareName : LPTSTR;
  4665. lShareType : LONG;
  4666. lpszAppTopicList : LPTSTR;
  4667. fSharedFlag : LONG;
  4668. fService : LONG;
  4669. fStartAppFlag : LONG;
  4670. nCmdShow : LONG;
  4671. qModifyId : array[0..1] of LONG;
  4672. cNumItems : LONG;
  4673. lpszItemList : LPTSTR;
  4674. end;
  4675. _NDDESHAREINFO = NDDESHAREINFO;
  4676. TNDDESHAREINFO = NDDESHAREINFO;
  4677. PNDDESHAREINFO = ^NDDESHAREINFO;
  4678. NETRESOURCE = record
  4679. dwScope : DWORD;
  4680. dwType : DWORD;
  4681. dwDisplayType : DWORD;
  4682. dwUsage : DWORD;
  4683. lpLocalName : LPTSTR;
  4684. lpRemoteName : LPTSTR;
  4685. lpComment : LPTSTR;
  4686. lpProvider : LPTSTR;
  4687. end;
  4688. LPNETRESOURCE = ^NETRESOURCE;
  4689. _NETRESOURCE = NETRESOURCE;
  4690. TNETRESOURCE = NETRESOURCE;
  4691. TNETRESOURCEA = NETRESOURCE;
  4692. PNETRESOURCE = ^NETRESOURCE;
  4693. PNETRESOURCEA = ^NETRESOURCE;
  4694. NETRESOURCEW = record //+winnetwk
  4695. dwScope : DWORD;
  4696. dwType : DWORD;
  4697. dwDisplayType : DWORD;
  4698. dwUsage : DWORD;
  4699. lpLocalName : LPWSTR;
  4700. lpRemoteName : LPWSTR;
  4701. lpComment : LPWSTR;
  4702. lpProvider : LPWSTR;
  4703. end;
  4704. LPNETRESOURCEW = ^NETRESOURCEW; //+winnetwk
  4705. _NETRESOURCEW = NETRESOURCEW; //+winnetwk
  4706. NEWCPLINFO = record
  4707. dwSize : DWORD;
  4708. dwFlags : DWORD;
  4709. dwHelpContext : DWORD;
  4710. lData : LONG;
  4711. hIcon : HICON;
  4712. szName : array[0..31] of TCHAR;
  4713. szInfo : array[0..63] of TCHAR;
  4714. szHelpFile : array[0..127] of TCHAR;
  4715. end;
  4716. tagNEWCPLINFO = NEWCPLINFO;
  4717. TNEWCPLINFO = NEWCPLINFO;
  4718. PNEWCPLINFO = ^NEWCPLINFO;
  4719. NEWTEXTMETRIC = record
  4720. tmHeight : LONG;
  4721. tmAscent : LONG;
  4722. tmDescent : LONG;
  4723. tmInternalLeading : LONG;
  4724. tmExternalLeading : LONG;
  4725. tmAveCharWidth : LONG;
  4726. tmMaxCharWidth : LONG;
  4727. tmWeight : LONG;
  4728. tmOverhang : LONG;
  4729. tmDigitizedAspectX : LONG;
  4730. tmDigitizedAspectY : LONG;
  4731. tmFirstChar : BCHAR;
  4732. tmLastChar : BCHAR;
  4733. tmDefaultChar : BCHAR;
  4734. tmBreakChar : BCHAR;
  4735. tmItalic : BYTE;
  4736. tmUnderlined : BYTE;
  4737. tmStruckOut : BYTE;
  4738. tmPitchAndFamily : BYTE;
  4739. tmCharSet : BYTE;
  4740. ntmFlags : DWORD;
  4741. ntmSizeEM : UINT;
  4742. ntmCellHeight : UINT;
  4743. ntmAvgWidth : UINT;
  4744. end;
  4745. tagNEWTEXTMETRIC = NEWTEXTMETRIC;
  4746. TNEWTEXTMETRIC = NEWTEXTMETRIC;
  4747. PNEWTEXTMETRIC = ^NEWTEXTMETRIC;
  4748. NEWTEXTMETRICEX = record
  4749. ntmentm : NEWTEXTMETRIC;
  4750. ntmeFontSignature : FONTSIGNATURE;
  4751. end;
  4752. tagNEWTEXTMETRICEX = NEWTEXTMETRICEX;
  4753. TNEWTEXTMETRICEX = NEWTEXTMETRICEX;
  4754. PNEWTEXTMETRICEX = ^NEWTEXTMETRICEX;
  4755. NM_LISTVIEW = record
  4756. hdr : NMHDR;
  4757. iItem : longint;
  4758. iSubItem : longint;
  4759. uNewState : UINT;
  4760. uOldState : UINT;
  4761. uChanged : UINT;
  4762. ptAction : POINT;
  4763. lParam : LPARAM;
  4764. end;
  4765. tagNM_LISTVIEW = NM_LISTVIEW;
  4766. TNMLISTVIEW = NM_LISTVIEW;
  4767. PNMLISTVIEW = ^NM_LISTVIEW;
  4768. TV_ITEM = record
  4769. mask : UINT;
  4770. hItem : HTREEITEM;
  4771. state : UINT;
  4772. stateMask : UINT;
  4773. pszText : LPTSTR;
  4774. cchTextMax : longint;
  4775. iImage : longint;
  4776. iSelectedImage : longint;
  4777. cChildren : longint;
  4778. lParam : LPARAM;
  4779. end;
  4780. LPTV_ITEM = ^TV_ITEM;
  4781. _TV_ITEM = TV_ITEM;
  4782. TTVITEM = TV_ITEM;
  4783. PTVITEM = ^TV_ITEM;
  4784. NM_TREEVIEW = record
  4785. hdr : NMHDR;
  4786. action : UINT;
  4787. itemOld : TV_ITEM;
  4788. itemNew : TV_ITEM;
  4789. ptDrag : POINT;
  4790. end;
  4791. LPNM_TREEVIEW = ^NM_TREEVIEW;
  4792. _NM_TREEVIEW = NM_TREEVIEW;
  4793. TNMTREEVIEW = NM_TREEVIEW;
  4794. PNMTREEVIEW = ^NM_TREEVIEW;
  4795. NM_UPDOWNW = record
  4796. hdr : NMHDR;
  4797. iPos : longint;
  4798. iDelta : longint;
  4799. end;
  4800. _NM_UPDOWN = NM_UPDOWNW;
  4801. TNMUPDOWN = NM_UPDOWNW;
  4802. PNMUPDOWN = ^NM_UPDOWNW;
  4803. NONCLIENTMETRICS = record
  4804. cbSize : UINT;
  4805. iBorderWidth : longint;
  4806. iScrollWidth : longint;
  4807. iScrollHeight : longint;
  4808. iCaptionWidth : longint;
  4809. iCaptionHeight : longint;
  4810. lfCaptionFont : LOGFONT;
  4811. iSmCaptionWidth : longint;
  4812. iSmCaptionHeight : longint;
  4813. lfSmCaptionFont : LOGFONT;
  4814. iMenuWidth : longint;
  4815. iMenuHeight : longint;
  4816. lfMenuFont : LOGFONT;
  4817. lfStatusFont : LOGFONT;
  4818. lfMessageFont : LOGFONT;
  4819. end;
  4820. LPNONCLIENTMETRICS = ^NONCLIENTMETRICS;
  4821. tagNONCLIENTMETRICS = NONCLIENTMETRICS;
  4822. TNONCLIENTMETRICS = NONCLIENTMETRICS;
  4823. PNONCLIENTMETRICS = ^NONCLIENTMETRICS;
  4824. SERVICE_ADDRESS = record
  4825. dwAddressType : DWORD;
  4826. dwAddressFlags : DWORD;
  4827. dwAddressLength : DWORD;
  4828. dwPrincipalLength : DWORD;
  4829. lpAddress : ^BYTE;
  4830. lpPrincipal : ^BYTE;
  4831. end;
  4832. _SERVICE_ADDRESS = SERVICE_ADDRESS;
  4833. TSERVICEADDRESS = SERVICE_ADDRESS;
  4834. PSERVICEADDRESS = ^SERVICE_ADDRESS;
  4835. SERVICE_ADDRESSES = record
  4836. dwAddressCount : DWORD;
  4837. Addresses : array[0..0] of SERVICE_ADDRESS;
  4838. end;
  4839. LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;
  4840. _SERVICE_ADDRESSES = SERVICE_ADDRESSES;
  4841. TSERVICEADDRESSES = SERVICE_ADDRESSES;
  4842. PSERVICEADDRESSES = ^SERVICE_ADDRESSES;
  4843. GUID = system.tguid; //winnt
  4844. LPGUID = ^GUID;
  4845. _GUID = GUID;
  4846. TGUID = GUID;
  4847. PGUID = ^GUID;
  4848. CLSID = GUID;
  4849. LPCLSID = ^CLSID;
  4850. TCLSID = CLSID;
  4851. PCLSID = ^CLSID;
  4852. SERVICE_INFO = record
  4853. lpServiceType : LPGUID;
  4854. lpServiceName : LPTSTR;
  4855. lpComment : LPTSTR;
  4856. lpLocale : LPTSTR;
  4857. dwDisplayHint : DWORD;
  4858. dwVersion : DWORD;
  4859. dwTime : DWORD;
  4860. lpMachineName : LPTSTR;
  4861. lpServiceAddress : LPSERVICE_ADDRESSES;
  4862. ServiceSpecificInfo : BLOB;
  4863. end;
  4864. _SERVICE_INFO = SERVICE_INFO;
  4865. TSERVICEINFO = SERVICE_INFO;
  4866. PSERVICEINFO = ^SERVICE_INFO;
  4867. NS_SERVICE_INFO = record
  4868. dwNameSpace : DWORD;
  4869. ServiceInfo : SERVICE_INFO;
  4870. end;
  4871. _NS_SERVICE_INFO = NS_SERVICE_INFO;
  4872. TNSSERVICEINFO = NS_SERVICE_INFO;
  4873. PNSSERVICEINFO = ^NS_SERVICE_INFO;
  4874. NUMBERFMT = record
  4875. NumDigits : UINT;
  4876. LeadingZero : UINT;
  4877. Grouping : UINT;
  4878. lpDecimalSep : LPTSTR;
  4879. lpThousandSep : LPTSTR;
  4880. NegativeOrder : UINT;
  4881. end;
  4882. _numberfmt = NUMBERFMT;
  4883. Tnumberfmt = NUMBERFMT;
  4884. Pnumberfmt = ^NUMBERFMT;
  4885. OFSTRUCT = record
  4886. cBytes : BYTE;
  4887. fFixedDisk : BYTE;
  4888. nErrCode : WORD;
  4889. Reserved1 : WORD;
  4890. Reserved2 : WORD;
  4891. szPathName : array[0..(OFS_MAXPATHNAME)-1] of CHAR;
  4892. end;
  4893. LPOFSTRUCT = ^OFSTRUCT;
  4894. _OFSTRUCT = OFSTRUCT;
  4895. TOFSTRUCT = OFSTRUCT;
  4896. POFSTRUCT = ^OFSTRUCT;
  4897. OPENFILENAMEW = record //+commdlg
  4898. lStructSize : DWORD;
  4899. hwndOwner : HWND;
  4900. hInstance : HINST;
  4901. lpstrFilter : LPCWSTR;
  4902. lpstrCustomFilter : LPWSTR;
  4903. nMaxCustFilter : DWORD;
  4904. nFilterIndex : DWORD;
  4905. lpstrFile : LPWSTR;
  4906. nMaxFile : DWORD;
  4907. lpstrFileTitle : LPWSTR;
  4908. nMaxFileTitle : DWORD;
  4909. lpstrInitialDir : LPCWSTR;
  4910. lpstrTitle : LPCWSTR;
  4911. Flags : DWORD;
  4912. nFileOffset : WORD;
  4913. nFileExtension : WORD;
  4914. lpstrDefExt : LPCWSTR;
  4915. lCustData : LPARAM;
  4916. lpfnHook : LPOFNHOOKPROC;
  4917. lpTemplateName : LPCWSTR;
  4918. end;
  4919. LPOPENFILENAMEW = ^OPENFILENAMEW; //+commdlg
  4920. tagOFNW = OPENFILENAMEW; //+commdlg
  4921. LPOPENFILENAME = ^OPENFILENAMEW;
  4922. TOPENFILENAME = OPENFILENAMEW;
  4923. POPENFILENAME = ^OPENFILENAMEW;
  4924. TOPENFILENAMEW = OPENFILENAMEW;
  4925. POPENFILENAMEW = ^OPENFILENAMEW;
  4926. tagOFN = OPENFILENAMEW;
  4927. TOFN = OPENFILENAMEW;
  4928. POFN = ^OPENFILENAMEW;
  4929. OFNOTIFY = record
  4930. hdr : NMHDR;
  4931. lpOFN : LPOPENFILENAME;
  4932. pszFile : LPTSTR;
  4933. end;
  4934. LPOFNOTIFY = ^OFNOTIFY;
  4935. _OFNOTIFY = OFNOTIFY;
  4936. TOFNOTIFY = OFNOTIFY;
  4937. POFNOTIFY = ^OFNOTIFY;
  4938. OSVERSIONINFO = record
  4939. dwOSVersionInfoSize : DWORD;
  4940. dwMajorVersion : DWORD;
  4941. dwMinorVersion : DWORD;
  4942. dwBuildNumber : DWORD;
  4943. dwPlatformId : DWORD;
  4944. szCSDVersion : array[0..127] of TCHAR;
  4945. end;
  4946. LPOSVERSIONINFO = ^OSVERSIONINFO;
  4947. _OSVERSIONINFO = OSVERSIONINFO;
  4948. TOSVERSIONINFO = OSVERSIONINFO;
  4949. POSVERSIONINFO = ^OSVERSIONINFO;
  4950. OSVERSIONINFOW = record
  4951. dwOSVersionInfoSize : DWORD;
  4952. dwMajorVersion : DWORD;
  4953. dwMinorVersion : DWORD;
  4954. dwBuildNumber : DWORD;
  4955. dwPlatformId : DWORD;
  4956. szCSDVersion : array[0..127] of WCHAR;
  4957. end;
  4958. LPOSVERSIONINFOW = ^OSVERSIONINFOW;
  4959. _OSVERSIONINFOW = OSVERSIONINFOW;
  4960. TOSVERSIONINFOW = OSVERSIONINFOW;
  4961. POSVERSIONINFOW = ^OSVERSIONINFOW;
  4962. TEXTMETRIC = record
  4963. tmHeight : LONG;
  4964. tmAscent : LONG;
  4965. tmDescent : LONG;
  4966. tmInternalLeading : LONG;
  4967. tmExternalLeading : LONG;
  4968. tmAveCharWidth : LONG;
  4969. tmMaxCharWidth : LONG;
  4970. tmWeight : LONG;
  4971. tmOverhang : LONG;
  4972. tmDigitizedAspectX : LONG;
  4973. tmDigitizedAspectY : LONG;
  4974. tmFirstChar : BCHAR;
  4975. tmLastChar : BCHAR;
  4976. tmDefaultChar : BCHAR;
  4977. tmBreakChar : BCHAR;
  4978. tmItalic : BYTE;
  4979. tmUnderlined : BYTE;
  4980. tmStruckOut : BYTE;
  4981. tmPitchAndFamily : BYTE;
  4982. tmCharSet : BYTE;
  4983. end;
  4984. LPTEXTMETRIC = ^TEXTMETRIC;
  4985. tagTEXTMETRIC = TEXTMETRIC;
  4986. TTEXTMETRIC = TEXTMETRIC;
  4987. PTEXTMETRIC = ^TEXTMETRIC;
  4988. TEXTMETRICW = record
  4989. tmHeight : LONG;
  4990. tmAscent : LONG;
  4991. tmDescent : LONG;
  4992. tmInternalLeading : LONG;
  4993. tmExternalLeading : LONG;
  4994. tmAveCharWidth : LONG;
  4995. tmMaxCharWidth : LONG;
  4996. tmWeight : LONG;
  4997. tmOverhang : LONG;
  4998. tmDigitizedAspectX : LONG;
  4999. tmDigitizedAspectY : LONG;
  5000. tmFirstChar : WCHAR;
  5001. tmLastChar : WCHAR;
  5002. tmDefaultChar : WCHAR;
  5003. tmBreakChar : WCHAR;
  5004. tmItalic : BYTE;
  5005. tmUnderlined : BYTE;
  5006. tmStruckOut : BYTE;
  5007. tmPitchAndFamily : BYTE;
  5008. tmCharSet : BYTE;
  5009. end;
  5010. LPTEXTMETRICW = ^TEXTMETRICW;
  5011. tagTEXTMETRICW = TEXTMETRICW;
  5012. TTEXTMETRICW = TEXTMETRICW;
  5013. PTEXTMETRICW = ^TEXTMETRICW;
  5014. OUTLINETEXTMETRIC = record
  5015. otmSize : UINT;
  5016. otmTextMetrics : TEXTMETRIC;
  5017. otmFiller : BYTE;
  5018. otmPanoseNumber : PANOSE;
  5019. otmfsSelection : UINT;
  5020. otmfsType : UINT;
  5021. otmsCharSlopeRise : longint;
  5022. otmsCharSlopeRun : longint;
  5023. otmItalicAngle : longint;
  5024. otmEMSquare : UINT;
  5025. otmAscent : longint;
  5026. otmDescent : longint;
  5027. otmLineGap : UINT;
  5028. otmsCapEmHeight : UINT;
  5029. otmsXHeight : UINT;
  5030. otmrcFontBox : RECT;
  5031. otmMacAscent : longint;
  5032. otmMacDescent : longint;
  5033. otmMacLineGap : UINT;
  5034. otmusMinimumPPEM : UINT;
  5035. otmptSubscriptSize : POINT;
  5036. otmptSubscriptOffset : POINT;
  5037. otmptSuperscriptSize : POINT;
  5038. otmptSuperscriptOffset : POINT;
  5039. otmsStrikeoutSize : UINT;
  5040. otmsStrikeoutPosition : longint;
  5041. otmsUnderscoreSize : longint;
  5042. otmsUnderscorePosition : longint;
  5043. otmpFamilyName : PSTR;
  5044. otmpFaceName : PSTR;
  5045. otmpStyleName : PSTR;
  5046. otmpFullName : PSTR;
  5047. end;
  5048. LPOUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC;
  5049. _OUTLINETEXTMETRIC = OUTLINETEXTMETRIC;
  5050. TOUTLINETEXTMETRIC = OUTLINETEXTMETRIC;
  5051. POUTLINETEXTMETRIC = ^OUTLINETEXTMETRIC;
  5052. OVERLAPPED = record
  5053. Internal : DWORD;
  5054. InternalHigh : DWORD;
  5055. Offset : DWORD;
  5056. OffsetHigh : DWORD;
  5057. hEvent : HANDLE;
  5058. end;
  5059. LPOVERLAPPED = ^OVERLAPPED;
  5060. _OVERLAPPED = OVERLAPPED;
  5061. TOVERLAPPED = OVERLAPPED;
  5062. POVERLAPPED = ^OVERLAPPED;
  5063. {PAGESETUPDLG = record conflicts with function PageSetupDlg }
  5064. TPAGESETUPDLG = record
  5065. lStructSize : DWORD;
  5066. hwndOwner : HWND;
  5067. hDevMode : HGLOBAL;
  5068. hDevNames : HGLOBAL;
  5069. Flags : DWORD;
  5070. ptPaperSize : POINT;
  5071. rtMinMargin : RECT;
  5072. rtMargin : RECT;
  5073. hInstance : HINST;
  5074. lCustData : LPARAM;
  5075. lpfnPageSetupHook : LPPAGESETUPHOOK;
  5076. lpfnPagePaintHook : LPPAGEPAINTHOOK;
  5077. lpPageSetupTemplateName : LPCTSTR;
  5078. hPageSetupTemplate : HGLOBAL;
  5079. end;
  5080. LPPAGESETUPDLG = ^TPAGESETUPDLG;
  5081. PPAGESETUPDLG = ^TPAGESETUPDLG;
  5082. tagPSD = TPAGESETUPDLG;
  5083. TPSD = TPAGESETUPDLG;
  5084. PPSD = ^TPAGESETUPDLG;
  5085. TPAGESETUPDLGW = record //+commdlg
  5086. lStructSize : DWORD;
  5087. hwndOwner : HWND;
  5088. hDevMode : HGLOBAL;
  5089. hDevNames : HGLOBAL;
  5090. Flags : DWORD;
  5091. ptPaperSize : POINT; // ignored in CE
  5092. rtMinMargin : RECT;
  5093. rtMargin : RECT;
  5094. hInstance : HINST;
  5095. lCustData : LPARAM;
  5096. lpfnPageSetupHook : LPPAGESETUPHOOK;
  5097. lpfnPagePaintHook : LPPAGEPAINTHOOK; // ignored in CE
  5098. lpPageSetupTemplateName : LPCWSTR;
  5099. hPageSetupTemplate : HGLOBAL;
  5100. end;
  5101. LPPAGESETUPDLGW = ^TPAGESETUPDLGW; //+commdlg
  5102. tagPSDW = TPAGESETUPDLGW; //+commdlg
  5103. PAINTSTRUCT = record
  5104. hdc : HDC;
  5105. fErase : WINBOOL;
  5106. rcPaint : RECT;
  5107. fRestore : WINBOOL;
  5108. fIncUpdate : WINBOOL;
  5109. rgbReserved : array[0..31] of BYTE;
  5110. end;
  5111. LPPAINTSTRUCT = ^PAINTSTRUCT;
  5112. tagPAINTSTRUCT = PAINTSTRUCT;
  5113. TPAINTSTRUCT = PAINTSTRUCT;
  5114. PPAINTSTRUCT = ^PAINTSTRUCT;
  5115. PARAFORMAT = record
  5116. cbSize : UINT;
  5117. dwMask : DWORD;
  5118. wNumbering : WORD;
  5119. wReserved : WORD;
  5120. dxStartIndent : LONG;
  5121. dxRightIndent : LONG;
  5122. dxOffset : LONG;
  5123. wAlignment : WORD;
  5124. cTabCount : SHORT;
  5125. rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;
  5126. end;
  5127. _paraformat = PARAFORMAT;
  5128. Tparaformat = PARAFORMAT;
  5129. Pparaformat = ^PARAFORMAT;
  5130. PERF_COUNTER_BLOCK = record
  5131. ByteLength : DWORD;
  5132. end;
  5133. _PERF_COUNTER_BLOCK = PERF_COUNTER_BLOCK;
  5134. TPERFCOUNTERBLOCK = PERF_COUNTER_BLOCK;
  5135. PPERFCOUNTERBLOCK = ^PERF_COUNTER_BLOCK;
  5136. PERF_COUNTER_DEFINITION = record
  5137. ByteLength : DWORD;
  5138. CounterNameTitleIndex : DWORD;
  5139. CounterNameTitle : LPWSTR;
  5140. CounterHelpTitleIndex : DWORD;
  5141. CounterHelpTitle : LPWSTR;
  5142. DefaultScale : DWORD;
  5143. DetailLevel : DWORD;
  5144. CounterType : DWORD;
  5145. CounterSize : DWORD;
  5146. CounterOffset : DWORD;
  5147. end;
  5148. _PERF_COUNTER_DEFINITION = PERF_COUNTER_DEFINITION;
  5149. TPERFCOUNTERDEFINITION = PERF_COUNTER_DEFINITION;
  5150. PPERFCOUNTERDEFINITION = ^PERF_COUNTER_DEFINITION;
  5151. PERF_DATA_BLOCK = record
  5152. Signature : array[0..3] of WCHAR;
  5153. LittleEndian : DWORD;
  5154. Version : DWORD;
  5155. Revision : DWORD;
  5156. TotalByteLength : DWORD;
  5157. HeaderLength : DWORD;
  5158. NumObjectTypes : DWORD;
  5159. DefaultObject : DWORD;
  5160. SystemTime : SYSTEMTIME;
  5161. PerfTime : LARGE_INTEGER;
  5162. PerfFreq : LARGE_INTEGER;
  5163. PerfTime100nSec : LARGE_INTEGER;
  5164. SystemNameLength : DWORD;
  5165. SystemNameOffset : DWORD;
  5166. end;
  5167. _PERF_DATA_BLOCK = PERF_DATA_BLOCK;
  5168. TPERFDATABLOCK = PERF_DATA_BLOCK;
  5169. PPERFDATABLOCK = ^PERF_DATA_BLOCK;
  5170. PERF_INSTANCE_DEFINITION = record
  5171. ByteLength : DWORD;
  5172. ParentObjectTitleIndex : DWORD;
  5173. ParentObjectInstance : DWORD;
  5174. UniqueID : DWORD;
  5175. NameOffset : DWORD;
  5176. NameLength : DWORD;
  5177. end;
  5178. _PERF_INSTANCE_DEFINITION = PERF_INSTANCE_DEFINITION;
  5179. TPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION;
  5180. PPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION;
  5181. PERF_OBJECT_TYPE = record
  5182. TotalByteLength : DWORD;
  5183. DefinitionLength : DWORD;
  5184. HeaderLength : DWORD;
  5185. ObjectNameTitleIndex : DWORD;
  5186. ObjectNameTitle : LPWSTR;
  5187. ObjectHelpTitleIndex : DWORD;
  5188. ObjectHelpTitle : LPWSTR;
  5189. DetailLevel : DWORD;
  5190. NumCounters : DWORD;
  5191. DefaultCounter : DWORD;
  5192. NumInstances : DWORD;
  5193. CodePage : DWORD;
  5194. PerfTime : LARGE_INTEGER;
  5195. PerfFreq : LARGE_INTEGER;
  5196. end;
  5197. _PERF_OBJECT_TYPE = PERF_OBJECT_TYPE;
  5198. TPERFOBJECTTYPE = PERF_OBJECT_TYPE;
  5199. PPERFOBJECTTYPE = ^PERF_OBJECT_TYPE;
  5200. POLYTEXT = record
  5201. x : longint;
  5202. y : longint;
  5203. n : UINT;
  5204. lpstr : LPCTSTR;
  5205. uiFlags : UINT;
  5206. rcl : RECT;
  5207. pdx : ^longint;
  5208. end;
  5209. _POLYTEXT = POLYTEXT;
  5210. TPOLYTEXT = POLYTEXT;
  5211. PPOLYTEXT = ^POLYTEXT;
  5212. PORT_INFO_1 = record
  5213. pName : LPTSTR;
  5214. end;
  5215. _PORT_INFO_1 = PORT_INFO_1;
  5216. TPORTINFO1 = PORT_INFO_1;
  5217. PPORTINFO1 = ^PORT_INFO_1;
  5218. PORT_INFO_2 = record
  5219. pPortName : LPSTR;
  5220. pMonitorName : LPSTR;
  5221. pDescription : LPSTR;
  5222. fPortType : DWORD;
  5223. Reserved : DWORD;
  5224. end;
  5225. _PORT_INFO_2 = PORT_INFO_2;
  5226. TPORTINFO2 = PORT_INFO_2;
  5227. PPORTINFO2 = ^PORT_INFO_2;
  5228. PREVENT_MEDIA_REMOVAL = record
  5229. PreventMediaRemoval : BOOLEAN;
  5230. end;
  5231. _PREVENT_MEDIA_REMOVAL = PREVENT_MEDIA_REMOVAL;
  5232. TPREVENTMEDIAREMOVAL = PREVENT_MEDIA_REMOVAL;
  5233. PPREVENTMEDIAREMOVAL = ^PREVENT_MEDIA_REMOVAL;
  5234. {PRINTDLG = record conflicts with PrintDlg function }
  5235. TPRINTDLG = packed record
  5236. lStructSize : DWORD;
  5237. hwndOwner : HWND;
  5238. hDevMode : HANDLE;
  5239. hDevNames : HANDLE;
  5240. hDC : HDC;
  5241. Flags : DWORD;
  5242. nFromPage : WORD;
  5243. nToPage : WORD;
  5244. nMinPage : WORD;
  5245. nMaxPage : WORD;
  5246. nCopies : WORD;
  5247. hInstance : HINST;
  5248. lCustData : DWORD;
  5249. lpfnPrintHook : LPPRINTHOOKPROC;
  5250. lpfnSetupHook : LPSETUPHOOKPROC;
  5251. lpPrintTemplateName : LPCTSTR;
  5252. lpSetupTemplateName : LPCTSTR;
  5253. hPrintTemplate : HANDLE;
  5254. hSetupTemplate : HANDLE;
  5255. end;
  5256. LPPRINTDLG = ^TPRINTDLG;
  5257. PPRINTDLG = ^TPRINTDLG;
  5258. tagPD = TPRINTDLG;
  5259. TPD = TPRINTDLG;
  5260. PPD = ^TPRINTDLG;
  5261. PRINTER_DEFAULTS = record
  5262. pDatatype : LPTSTR;
  5263. pDevMode : LPDEVMODE;
  5264. DesiredAccess : ACCESS_MASK;
  5265. end;
  5266. _PRINTER_DEFAULTS = PRINTER_DEFAULTS;
  5267. TPRINTERDEFAULTS = PRINTER_DEFAULTS;
  5268. PPRINTERDEFAULTS = ^PRINTER_DEFAULTS;
  5269. PRINTER_INFO_1 = record
  5270. Flags : DWORD;
  5271. pDescription : LPTSTR;
  5272. pName : LPTSTR;
  5273. pComment : LPTSTR;
  5274. end;
  5275. LPPRINTER_INFO_1 = ^PRINTER_INFO_1;
  5276. PPRINTER_INFO_1 = ^PRINTER_INFO_1;
  5277. _PRINTER_INFO_1 = PRINTER_INFO_1;
  5278. TPRINTERINFO1 = PRINTER_INFO_1;
  5279. PPRINTERINFO1 = ^PRINTER_INFO_1;
  5280. PRINTER_INFO_2 = record
  5281. pServerName : LPTSTR;
  5282. pPrinterName : LPTSTR;
  5283. pShareName : LPTSTR;
  5284. pPortName : LPTSTR;
  5285. pDriverName : LPTSTR;
  5286. pComment : LPTSTR;
  5287. pLocation : LPTSTR;
  5288. pDevMode : LPDEVMODE;
  5289. pSepFile : LPTSTR;
  5290. pPrintProcessor : LPTSTR;
  5291. pDatatype : LPTSTR;
  5292. pParameters : LPTSTR;
  5293. pSecurityDescriptor : PSECURITY_DESCRIPTOR;
  5294. Attributes : DWORD;
  5295. Priority : DWORD;
  5296. DefaultPriority : DWORD;
  5297. StartTime : DWORD;
  5298. UntilTime : DWORD;
  5299. Status : DWORD;
  5300. cJobs : DWORD;
  5301. AveragePPM : DWORD;
  5302. end;
  5303. _PRINTER_INFO_2 = PRINTER_INFO_2;
  5304. TPRINTERINFO2 = PRINTER_INFO_2;
  5305. PPRINTERINFO2 = ^PRINTER_INFO_2;
  5306. PRINTER_INFO_3 = record
  5307. pSecurityDescriptor : PSECURITY_DESCRIPTOR;
  5308. end;
  5309. _PRINTER_INFO_3 = PRINTER_INFO_3;
  5310. TPRINTERINFO3 = PRINTER_INFO_3;
  5311. PPRINTERINFO3 = ^PRINTER_INFO_3;
  5312. PRINTER_INFO_4 = record
  5313. pPrinterName : LPTSTR;
  5314. pServerName : LPTSTR;
  5315. Attributes : DWORD;
  5316. end;
  5317. _PRINTER_INFO_4 = PRINTER_INFO_4;
  5318. TPRINTERINFO4 = PRINTER_INFO_4;
  5319. PPRINTERINFO4 = ^PRINTER_INFO_4;
  5320. PRINTER_INFO_5 = record
  5321. pPrinterName : LPTSTR;
  5322. pPortName : LPTSTR;
  5323. Attributes : DWORD;
  5324. DeviceNotSelectedTimeout : DWORD;
  5325. TransmissionRetryTimeout : DWORD;
  5326. end;
  5327. _PRINTER_INFO_5 = PRINTER_INFO_5;
  5328. TPRINTERINFO5 = PRINTER_INFO_5;
  5329. PPRINTERINFO5 = ^PRINTER_INFO_5;
  5330. PRINTER_NOTIFY_INFO_DATA = record
  5331. _Type : WORD;
  5332. Field : WORD;
  5333. Reserved : DWORD;
  5334. Id : DWORD;
  5335. NotifyData : record
  5336. case longint of
  5337. 0 : ( adwData : array[0..1] of DWORD );
  5338. 1 : ( Data : record
  5339. cbBuf : DWORD;
  5340. pBuf : LPVOID;
  5341. end );
  5342. end;
  5343. end;
  5344. _PRINTER_NOTIFY_INFO_DATA = PRINTER_NOTIFY_INFO_DATA;
  5345. TPRINTERNOTIFYINFODATA = PRINTER_NOTIFY_INFO_DATA;
  5346. PPRINTERNOTIFYINFODATA = ^PRINTER_NOTIFY_INFO_DATA;
  5347. PRINTER_NOTIFY_INFO = record
  5348. Version : DWORD;
  5349. Flags : DWORD;
  5350. Count : DWORD;
  5351. aData : array[0..0] of PRINTER_NOTIFY_INFO_DATA;
  5352. end;
  5353. _PRINTER_NOTIFY_INFO = PRINTER_NOTIFY_INFO;
  5354. TPRINTERNOTIFYINFO = PRINTER_NOTIFY_INFO;
  5355. PPRINTERNOTIFYINFO = ^PRINTER_NOTIFY_INFO;
  5356. PRINTER_NOTIFY_OPTIONS_TYPE = record
  5357. _Type : WORD;
  5358. Reserved0 : WORD;
  5359. Reserved1 : DWORD;
  5360. Reserved2 : DWORD;
  5361. Count : DWORD;
  5362. pFields : PWORD;
  5363. end;
  5364. PPRINTER_NOTIFY_OPTIONS_TYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE;
  5365. _PRINTER_NOTIFY_OPTIONS_TYPE = PRINTER_NOTIFY_OPTIONS_TYPE;
  5366. TPRINTERNOTIFYOPTIONSTYPE = PRINTER_NOTIFY_OPTIONS_TYPE;
  5367. PPRINTERNOTIFYOPTIONSTYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE;
  5368. PRINTER_NOTIFY_OPTIONS = record
  5369. Version : DWORD;
  5370. Flags : DWORD;
  5371. Count : DWORD;
  5372. pTypes : PPRINTER_NOTIFY_OPTIONS_TYPE;
  5373. end;
  5374. _PRINTER_NOTIFY_OPTIONS = PRINTER_NOTIFY_OPTIONS;
  5375. TPRINTERNOTIFYOPTIONS = PRINTER_NOTIFY_OPTIONS;
  5376. PPRINTERNOTIFYOPTIONS = ^PRINTER_NOTIFY_OPTIONS;
  5377. PRINTPROCESSOR_INFO_1 = record
  5378. pName : LPTSTR;
  5379. end;
  5380. _PRINTPROCESSOR_INFO_1 = PRINTPROCESSOR_INFO_1;
  5381. TPRINTPROCESSORINFO1 = PRINTPROCESSOR_INFO_1;
  5382. PPRINTPROCESSORINFO1 = ^PRINTPROCESSOR_INFO_1;
  5383. PRIVILEGE_SET = record
  5384. PrivilegeCount : DWORD;
  5385. Control : DWORD;
  5386. Privilege : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;
  5387. end;
  5388. LPPRIVILEGE_SET = ^PRIVILEGE_SET;
  5389. PPRIVILEGE_SET = ^PRIVILEGE_SET;
  5390. _PRIVILEGE_SET = PRIVILEGE_SET;
  5391. TPRIVILEGESET = PRIVILEGE_SET;
  5392. PPRIVILEGESET = ^PRIVILEGE_SET;
  5393. PROCESS_HEAPENTRY = record
  5394. lpData : PVOID;
  5395. cbData : DWORD;
  5396. cbOverhead : BYTE;
  5397. iRegionIndex : BYTE;
  5398. wFlags : WORD;
  5399. dwCommittedSize : DWORD;
  5400. dwUnCommittedSize : DWORD;
  5401. lpFirstBlock : LPVOID;
  5402. lpLastBlock : LPVOID;
  5403. hMem : HANDLE;
  5404. end;
  5405. LPPROCESS_HEAP_ENTRY = ^PROCESS_HEAPENTRY;
  5406. _PROCESS_HEAP_ENTRY = PROCESS_HEAPENTRY;
  5407. TPROCESSHEAPENTRY = PROCESS_HEAPENTRY;
  5408. PPROCESSHEAPENTRY = ^PROCESS_HEAPENTRY;
  5409. PROCESS_INFORMATION = record
  5410. hProcess : HANDLE;
  5411. hThread : HANDLE;
  5412. dwProcessId : DWORD;
  5413. dwThreadId : DWORD;
  5414. end;
  5415. LPPROCESS_INFORMATION = ^PROCESS_INFORMATION;
  5416. _PROCESS_INFORMATION = PROCESS_INFORMATION;
  5417. TPROCESSINFORMATION = PROCESS_INFORMATION;
  5418. PPROCESSINFORMATION = ^PROCESS_INFORMATION;
  5419. LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT;
  5420. TFNPSPCALLBACK = LPFNPSPCALLBACK;
  5421. PROPSHEETPAGEA = record
  5422. dwSize : DWORD;
  5423. dwFlags : DWORD;
  5424. hInstance : HINST;
  5425. case longint of
  5426. 0 : (pszTemplate : LPCTSTR);
  5427. 1 : (pResource : LPCDLGTEMPLATE;
  5428. case longint of
  5429. 0 : (hIcon : HICON);
  5430. 1 : (pszIcon : LPCTSTR;
  5431. pszTitle : LPCTSTR;
  5432. pfnDlgProc : DLGPROC;
  5433. lParam : LPARAM;
  5434. pfnCallback : LPFNPSPCALLBACK;
  5435. pcRefParent : ^UINT;
  5436. );
  5437. );
  5438. end;
  5439. LPPROPSHEETPAGEA = ^PROPSHEETPAGEA;
  5440. LPCPROPSHEETPAGEA = ^PROPSHEETPAGEA;
  5441. PROPSHEETPAGEW = record
  5442. dwSize : DWORD;
  5443. dwFlags : DWORD;
  5444. hInstance : HINST;
  5445. case longint of
  5446. 0 : (pszTemplate : LPCWSTR);
  5447. 1 : (pResource : LPCDLGTEMPLATE;
  5448. case longint of
  5449. 0 : (hIcon : HICON);
  5450. 1 : (pszIcon : LPCWSTR;
  5451. pszTitle : LPCWSTR;
  5452. pfnDlgProc : DLGPROC;
  5453. lParam : LPARAM;
  5454. pfnCallback : LPFNPSPCALLBACK;
  5455. pcRefParent : ^UINT;
  5456. );
  5457. );
  5458. end;
  5459. LPPROPSHEETPAGEW = ^PROPSHEETPAGEW;
  5460. LPCPROPSHEETPAGEW = ^PROPSHEETPAGEW;
  5461. {$IFDEF UNICODE}
  5462. LPPROPSHEETPAGE = ^PROPSHEETPAGEW;
  5463. LPCPROPSHEETPAGE = ^PROPSHEETPAGEW;
  5464. _PROPSHEETPAGE = PROPSHEETPAGEW;
  5465. PROPSHEETPAGE = PROPSHEETPAGEW;
  5466. TPROPSHEETPAGE = PROPSHEETPAGEW;
  5467. PPROPSHEETPAGE = ^PROPSHEETPAGEW;
  5468. {$ELSE UNICODE}
  5469. LPPROPSHEETPAGE = ^PROPSHEETPAGEA;
  5470. LPCPROPSHEETPAGE = ^PROPSHEETPAGEA;
  5471. _PROPSHEETPAGE = PROPSHEETPAGEA;
  5472. PROPSHEETPAGE = PROPSHEETPAGEA;
  5473. TPROPSHEETPAGE = PROPSHEETPAGEA;
  5474. PPROPSHEETPAGE = ^PROPSHEETPAGEA;
  5475. {$ENDIF UNICODE}
  5476. emptyrecord = record
  5477. end;
  5478. lpemptyrecord = ^emptyrecord;
  5479. HPROPSHEETPAGE = ^emptyrecord;
  5480. PROPSHEETHEADERA = record //prsht
  5481. dwSize : DWORD;
  5482. dwFlags : DWORD;
  5483. hwndParent : HWND;
  5484. hInstance : HINST;
  5485. case longint of
  5486. 0 : (hIcon : HICON);
  5487. 1 : (pszIcon : LPCTSTR;
  5488. pszCaption : LPCTSTR;
  5489. nPages : UINT;
  5490. case longint of
  5491. 0 : (nStartPage : UINT);
  5492. 1 : (pStartPage : LPCTSTR;
  5493. case longint of
  5494. 0 : (ppsp : LPCPROPSHEETPAGE);
  5495. 1 : (phpage : ^HPROPSHEETPAGE;
  5496. pfnCallback : PFNPROPSHEETCALLBACK;
  5497. case longint of
  5498. 0 : (hbmWatermark : HBITMAP);
  5499. 1 : (pszbmWatermark : LPCTSTR;
  5500. hplWatermark : HPALETTE;
  5501. case longint of
  5502. 0 : (hbmHeader : HBITMAP);
  5503. 1 : (pszbmHeader: PAnsiChar);
  5504. );
  5505. );
  5506. );
  5507. );
  5508. end;
  5509. LPPROPSHEETHEADERA = ^PROPSHEETHEADERA;
  5510. LPCPROPSHEETHEADERA = ^PROPSHEETHEADERA;
  5511. PPROPSHEETHEADERA = ^PROPSHEETHEADERA;
  5512. PROPSHEETHEADERW = record //prsht
  5513. dwSize : DWORD;
  5514. dwFlags : DWORD;
  5515. hwndParent : HWND;
  5516. hInstance : HINST;
  5517. case longint of
  5518. 0 : (hIcon : HICON);
  5519. 1 : (pszIcon : LPCWSTR;
  5520. pszCaption : LPCWSTR;
  5521. nPages : UINT;
  5522. case longint of
  5523. 0 : (nStartPage : UINT);
  5524. 1 : (pStartPage : LPCWSTR;
  5525. case longint of
  5526. 0 : (ppsp : LPCPROPSHEETPAGE);
  5527. 1 : (phpage : ^HPROPSHEETPAGE;
  5528. pfnCallback : PFNPROPSHEETCALLBACK;
  5529. );
  5530. );
  5531. );
  5532. end;
  5533. LPPROPSHEETHEADERW = ^PROPSHEETHEADERW;
  5534. LPCPROPSHEETHEADERW = ^PROPSHEETHEADERW;
  5535. PPROPSHEETHEADERW = ^PROPSHEETHEADERW;
  5536. {$IFDEF UNICODE}
  5537. _PROPSHEETHEADER = PROPSHEETHEADERW;
  5538. PROPSHEETHEADER = PROPSHEETHEADERW;
  5539. TPROPSHEETHEADER = PROPSHEETHEADERW;
  5540. PPROPSHEETHEADER = ^PROPSHEETHEADERW;
  5541. LPPROPSHEETHEADER = ^PROPSHEETHEADERW;
  5542. LPCPROPSHEETHEADER = ^PROPSHEETHEADERW;
  5543. {$ELSE UNICODE}
  5544. _PROPSHEETHEADER = PROPSHEETHEADERA;
  5545. PROPSHEETHEADER = PROPSHEETHEADERA;
  5546. TPROPSHEETHEADER = PROPSHEETHEADERA;
  5547. PPROPSHEETHEADER = ^PROPSHEETHEADERA;
  5548. LPPROPSHEETHEADER = ^PROPSHEETHEADERA;
  5549. LPCPROPSHEETHEADER = ^PROPSHEETHEADERA;
  5550. {$ENDIF UNICODE}
  5551. { PropertySheet callbacks }
  5552. LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL;
  5553. TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE;
  5554. LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL;
  5555. TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES;
  5556. PROTOCOL_INFO = record
  5557. dwServiceFlags : DWORD;
  5558. iAddressFamily : WINT;
  5559. iMaxSockAddr : WINT;
  5560. iMinSockAddr : WINT;
  5561. iSocketType : WINT;
  5562. iProtocol : WINT;
  5563. dwMessageSize : DWORD;
  5564. lpProtocol : LPTSTR;
  5565. end;
  5566. _PROTOCOL_INFO = PROTOCOL_INFO;
  5567. TPROTOCOLINFO = PROTOCOL_INFO;
  5568. PPROTOCOLINFO = ^PROTOCOL_INFO;
  5569. PROVIDOR_INFO_1 = record
  5570. pName : LPTSTR;
  5571. pEnvironment : LPTSTR;
  5572. pDLLName : LPTSTR;
  5573. end;
  5574. _PROVIDOR_INFO_1 = PROVIDOR_INFO_1;
  5575. TPROVIDORINFO1 = PROVIDOR_INFO_1;
  5576. PPROVIDORINFO1 = ^PROVIDOR_INFO_1;
  5577. PSHNOTIFY = record
  5578. hdr : NMHDR;
  5579. lParam : LPARAM;
  5580. end;
  5581. LPPSHNOTIFY = ^PSHNOTIFY;
  5582. _PSHNOTIFY = PSHNOTIFY;
  5583. TPSHNOTIFY = PSHNOTIFY;
  5584. PPSHNOTIFY = ^PSHNOTIFY;
  5585. PUNCTUATION = record
  5586. iSize : UINT;
  5587. szPunctuation : LPSTR;
  5588. end;
  5589. _punctuation = PUNCTUATION;
  5590. Tpunctuation = PUNCTUATION;
  5591. Ppunctuation = ^PUNCTUATION;
  5592. QUERY_SERVICE_CONFIG = record
  5593. dwServiceType : DWORD;
  5594. dwStartType : DWORD;
  5595. dwErrorControl : DWORD;
  5596. lpBinaryPathName : LPTSTR;
  5597. lpLoadOrderGroup : LPTSTR;
  5598. dwTagId : DWORD;
  5599. lpDependencies : LPTSTR;
  5600. lpServiceStartName : LPTSTR;
  5601. lpDisplayName : LPTSTR;
  5602. end;
  5603. LPQUERY_SERVICE_CONFIG = ^QUERY_SERVICE_CONFIG;
  5604. _QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIG;
  5605. TQUERYSERVICECONFIG = QUERY_SERVICE_CONFIG;
  5606. PQUERYSERVICECONFIG = ^QUERY_SERVICE_CONFIG;
  5607. QUERY_SERVICE_LOCK_STATUS = record
  5608. fIsLocked : DWORD;
  5609. lpLockOwner : LPTSTR;
  5610. dwLockDuration : DWORD;
  5611. end;
  5612. LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUS;
  5613. _QUERY_SERVICE_LOCK_STATUS = QUERY_SERVICE_LOCK_STATUS;
  5614. TQUERYSERVICELOCKSTATUS = QUERY_SERVICE_LOCK_STATUS;
  5615. PQUERYSERVICELOCKSTATUS = ^QUERY_SERVICE_LOCK_STATUS;
  5616. RASAMB = record
  5617. dwSize : DWORD;
  5618. dwError : DWORD;
  5619. szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR;
  5620. bLana : BYTE;
  5621. end;
  5622. _RASAMB = RASAMB;
  5623. TRASAMB = RASAMB;
  5624. PRASAMB = ^RASAMB;
  5625. RASCONN = record
  5626. dwSize : DWORD;
  5627. hrasconn : HRASCONN;
  5628. szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR;
  5629. szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of CHAR;
  5630. szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of CHAR;
  5631. end;
  5632. _RASCONN = RASCONN;
  5633. TRASCONN = RASCONN;
  5634. PRASCONN = ^RASCONN;
  5635. RASCONNSTATUS = record
  5636. dwSize : DWORD;
  5637. rasconnstate : RASCONNSTATE;
  5638. dwError : DWORD;
  5639. szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of TCHAR;
  5640. szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of TCHAR;
  5641. end;
  5642. _RASCONNSTATUS = RASCONNSTATUS;
  5643. TRASCONNSTATUS = RASCONNSTATUS;
  5644. PRASCONNSTATUS = ^RASCONNSTATUS;
  5645. RASDIALEXTENSIONS = record
  5646. dwSize : DWORD;
  5647. dwfOptions : DWORD;
  5648. hwndParent : HWND;
  5649. reserved : DWORD;
  5650. end;
  5651. _RASDIALEXTENSIONS = RASDIALEXTENSIONS;
  5652. TRASDIALEXTENSIONS = RASDIALEXTENSIONS;
  5653. PRASDIALEXTENSIONS = ^RASDIALEXTENSIONS;
  5654. RASDIALPARAMS = record
  5655. dwSize : DWORD;
  5656. szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR;
  5657. szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of TCHAR;
  5658. szCallbackNumber : array[0..(RAS_MaxCallbackNumber + 1)-1] of TCHAR;
  5659. szUserName : array[0..(UNLEN + 1)-1] of TCHAR;
  5660. szPassword : array[0..(PWLEN + 1)-1] of TCHAR;
  5661. szDomain : array[0..(DNLEN + 1)-1] of TCHAR;
  5662. end;
  5663. _RASDIALPARAMS = RASDIALPARAMS;
  5664. TRASDIALPARAMS = RASDIALPARAMS;
  5665. PRASDIALPARAMS = ^RASDIALPARAMS;
  5666. RASENTRYNAME = record
  5667. dwSize : DWORD;
  5668. szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of TCHAR;
  5669. end;
  5670. _RASENTRYNAME = RASENTRYNAME;
  5671. TRASENTRYNAME = RASENTRYNAME;
  5672. PRASENTRYNAME = ^RASENTRYNAME;
  5673. RASPPPIP = record
  5674. dwSize : DWORD;
  5675. dwError : DWORD;
  5676. szIpAddress : array[0..(RAS_MaxIpAddress + 1)-1] of TCHAR;
  5677. end;
  5678. _RASPPPIP = RASPPPIP;
  5679. TRASPPPIP = RASPPPIP;
  5680. PRASPPPIP = ^RASPPPIP;
  5681. RASPPPIPX = record
  5682. dwSize : DWORD;
  5683. dwError : DWORD;
  5684. szIpxAddress : array[0..(RAS_MaxIpxAddress + 1)-1] of TCHAR;
  5685. end;
  5686. _RASPPPIPX = RASPPPIPX;
  5687. TRASPPPIPX = RASPPPIPX;
  5688. PRASPPPIPX = ^RASPPPIPX;
  5689. RASPPPNBF = record
  5690. dwSize : DWORD;
  5691. dwError : DWORD;
  5692. dwNetBiosError : DWORD;
  5693. szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR;
  5694. szWorkstationName : array[0..(NETBIOS_NAME_LEN + 1)-1] of TCHAR;
  5695. bLana : BYTE;
  5696. end;
  5697. _RASPPPNBF = RASPPPNBF;
  5698. TRASPPPNBF = RASPPPNBF;
  5699. PRASPPPNBF = ^RASPPPNBF;
  5700. RASTERIZER_STATUS = record
  5701. nSize : integer;
  5702. wFlags : integer;
  5703. nLanguageID : integer;
  5704. end;
  5705. LPRASTERIZER_STATUS = ^RASTERIZER_STATUS;
  5706. _RASTERIZER_STATUS = RASTERIZER_STATUS;
  5707. TRASTERIZERSTATUS = RASTERIZER_STATUS;
  5708. PRASTERIZERSTATUS = ^RASTERIZER_STATUS;
  5709. REASSIGN_BLOCKS = record
  5710. Reserved : WORD;
  5711. Count : WORD;
  5712. BlockNumber : array[0..0] of DWORD;
  5713. end;
  5714. _REASSIGN_BLOCKS = REASSIGN_BLOCKS;
  5715. TREASSIGNBLOCKS = REASSIGN_BLOCKS;
  5716. PREASSIGNBLOCKS = ^REASSIGN_BLOCKS;
  5717. REMOTE_NAME_INFO = record
  5718. lpUniversalName : LPTSTR;
  5719. lpConnectionName : LPTSTR;
  5720. lpRemainingPath : LPTSTR;
  5721. end;
  5722. _REMOTE_NAME_INFO = REMOTE_NAME_INFO;
  5723. TREMOTENAMEINFO = REMOTE_NAME_INFO;
  5724. PREMOTENAMEINFO = ^REMOTE_NAME_INFO;
  5725. (*
  5726. TODO: OLE
  5727. typedef struct _reobject {
  5728. DWORD cbStruct;
  5729. LONG cp;
  5730. CLSID clsid;
  5731. LPOLEOBJECT poleobj;
  5732. LPSTORAGE pstg;
  5733. LPOLECLIENTSITE polesite;
  5734. SIZEL sizel;
  5735. DWORD dvaspect;
  5736. DWORD dwFlags;
  5737. DWORD dwUser;
  5738. } REOBJECT;
  5739. *)
  5740. REPASTESPECIAL = record
  5741. dwAspect : DWORD;
  5742. dwParam : DWORD;
  5743. end;
  5744. _repastespecial = REPASTESPECIAL;
  5745. Trepastespecial = REPASTESPECIAL;
  5746. Prepastespecial = ^REPASTESPECIAL;
  5747. REQRESIZE = record
  5748. nmhdr : NMHDR;
  5749. rc : RECT;
  5750. end;
  5751. _reqresize = REQRESIZE;
  5752. Treqresize = REQRESIZE;
  5753. Preqresize = ^REQRESIZE;
  5754. RGNDATAHEADER = record
  5755. dwSize : DWORD;
  5756. iType : DWORD;
  5757. nCount : DWORD;
  5758. nRgnSize : DWORD;
  5759. rcBound : RECT;
  5760. end;
  5761. _RGNDATAHEADER = RGNDATAHEADER;
  5762. TRGNDATAHEADER = RGNDATAHEADER;
  5763. PRGNDATAHEADER = ^RGNDATAHEADER;
  5764. RGNDATA = record
  5765. rdh : RGNDATAHEADER;
  5766. Buffer : array[0..0] of char;
  5767. end;
  5768. LPRGNDATA = ^RGNDATA;
  5769. _RGNDATA = RGNDATA;
  5770. TRGNDATA = RGNDATA;
  5771. PRGNDATA = ^RGNDATA;
  5772. SCROLLINFO = record
  5773. cbSize : UINT;
  5774. fMask : UINT;
  5775. nMin : longint;
  5776. nMax : longint;
  5777. nPage : UINT;
  5778. nPos : longint;
  5779. nTrackPos : longint;
  5780. end;
  5781. LPSCROLLINFO = ^SCROLLINFO;
  5782. LPCSCROLLINFO = ^SCROLLINFO;
  5783. tagSCROLLINFO = SCROLLINFO;
  5784. TSCROLLINFO = SCROLLINFO;
  5785. PSCROLLINFO = ^SCROLLINFO;
  5786. SECURITY_ATTRIBUTES = record
  5787. nLength : DWORD;
  5788. lpSecurityDescriptor : LPVOID;
  5789. bInheritHandle : WINBOOL;
  5790. end;
  5791. LPSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES;
  5792. _SECURITY_ATTRIBUTES = SECURITY_ATTRIBUTES;
  5793. TSECURITYATTRIBUTES = SECURITY_ATTRIBUTES;
  5794. PSECURITYATTRIBUTES = ^SECURITY_ATTRIBUTES;
  5795. SECURITY_INFORMATION = DWORD;
  5796. PSECURITY_INFORMATION = ^SECURITY_INFORMATION;
  5797. TSECURITYINFORMATION = SECURITY_INFORMATION;
  5798. PSECURITYINFORMATION = ^SECURITY_INFORMATION;
  5799. SELCHANGE = record
  5800. nmhdr : NMHDR;
  5801. chrg : CHARRANGE;
  5802. seltyp : WORD;
  5803. end;
  5804. _selchange = SELCHANGE;
  5805. Tselchange = SELCHANGE;
  5806. Pselchange = ^SELCHANGE;
  5807. SERIALKEYS = record
  5808. cbSize : DWORD;
  5809. dwFlags : DWORD;
  5810. lpszActivePort : LPSTR;
  5811. lpszPort : LPSTR;
  5812. iBaudRate : DWORD;
  5813. iPortState : DWORD;
  5814. end;
  5815. LPSERIALKEYS = ^SERIALKEYS;
  5816. tagSERIALKEYS = SERIALKEYS;
  5817. TSERIALKEYS = SERIALKEYS;
  5818. PSERIALKEYS = ^SERIALKEYS;
  5819. SERVICE_TABLE_ENTRY = record
  5820. lpServiceName : LPTSTR;
  5821. lpServiceProc : LPSERVICE_MAIN_FUNCTION;
  5822. end;
  5823. LPSERVICE_TABLE_ENTRY = ^SERVICE_TABLE_ENTRY;
  5824. _SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRY;
  5825. TSERVICETABLEENTRY = SERVICE_TABLE_ENTRY;
  5826. PSERVICETABLEENTRY = ^SERVICE_TABLE_ENTRY;
  5827. SERVICE_TYPE_VALUE_ABS = record
  5828. dwNameSpace : DWORD;
  5829. dwValueType : DWORD;
  5830. dwValueSize : DWORD;
  5831. lpValueName : LPTSTR;
  5832. lpValue : PVOID;
  5833. end;
  5834. _SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABS;
  5835. TSERVICETYPEVALUEABS = SERVICE_TYPE_VALUE_ABS;
  5836. PSERVICETYPEVALUEABS = ^SERVICE_TYPE_VALUE_ABS;
  5837. SERVICE_TYPE_INFO_ABS = record
  5838. lpTypeName : LPTSTR;
  5839. dwValueCount : DWORD;
  5840. Values : array[0..0] of SERVICE_TYPE_VALUE_ABS;
  5841. end;
  5842. _SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABS;
  5843. TSERVICETYPEINFOABS = SERVICE_TYPE_INFO_ABS;
  5844. PSERVICETYPEINFOABS = ^SERVICE_TYPE_INFO_ABS;
  5845. SESSION_BUFFER = record
  5846. lsn : UCHAR;
  5847. state : UCHAR;
  5848. local_name : array[0..(NCBNAMSZ)-1] of UCHAR;
  5849. remote_name : array[0..(NCBNAMSZ)-1] of UCHAR;
  5850. rcvs_outstanding : UCHAR;
  5851. sends_outstanding : UCHAR;
  5852. end;
  5853. _SESSION_BUFFER = SESSION_BUFFER;
  5854. TSESSIONBUFFER = SESSION_BUFFER;
  5855. PSESSIONBUFFER = ^SESSION_BUFFER;
  5856. SESSION_HEADER = record
  5857. sess_name : UCHAR;
  5858. num_sess : UCHAR;
  5859. rcv_dg_outstanding : UCHAR;
  5860. rcv_any_outstanding : UCHAR;
  5861. end;
  5862. _SESSION_HEADER = SESSION_HEADER;
  5863. TSESSIONHEADER = SESSION_HEADER;
  5864. PSESSIONHEADER = ^SESSION_HEADER;
  5865. SET_PARTITION_INFORMATION = record
  5866. PartitionType : BYTE;
  5867. end;
  5868. _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION;
  5869. TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION;
  5870. PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION;
  5871. SHELLEXECUTEINFO = record //+shellapi
  5872. cbSize: DWORD;
  5873. fMask: ULONG;
  5874. hwnd: HWND;
  5875. lpVerb: LPCTSTR;
  5876. lpFile: LPCTSTR;
  5877. lpParameters: LPCTSTR;
  5878. lpDirectory: LPCTSTR;
  5879. nShow: Integer ;
  5880. hInstApp: HINST;
  5881. // Optional fields
  5882. lpIDList: LPVOID;
  5883. lpClass: LPCTSTR;
  5884. hkeyClass: HKEY;
  5885. dwHotKey: DWORD;
  5886. hIcon: HANDLE;
  5887. hProcess :HANDLE;
  5888. end;
  5889. _SHELLEXECUTEINFO=SHELLEXECUTEINFO; //+shellapi
  5890. LPSHELLEXECUTEINFO=^SHELLEXECUTEINFO; //+shellapi
  5891. SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64,
  5892. SHCONTF_INCLUDEHIDDEN := 128);
  5893. tagSHCONTF = SHCONTF;
  5894. TSHCONTF = SHCONTF;
  5895. SHFILEINFO = record
  5896. hIcon : HICON;
  5897. iIcon : longint;
  5898. dwAttributes : DWORD;
  5899. szDisplayName : array[0..MAX_PATH-1] of TCHAR;
  5900. szTypeName : array[0..79] of TCHAR;
  5901. end;
  5902. _SHFILEINFO = SHFILEINFO;
  5903. TSHFILEINFO = SHFILEINFO;
  5904. PSHFILEINFO = ^SHFILEINFO;
  5905. FILEOP_FLAGS = WORD;
  5906. TFILEOPFLAGS = FILEOP_FLAGS;
  5907. PFILEOPFLAGS = ^FILEOP_FLAGS;
  5908. SHFILEOPSTRUCTW = record //+shellapi
  5909. wnd : HWND;
  5910. wFunc : UINT;
  5911. pFrom : LPCWSTR;
  5912. pTo : LPCWSTR;
  5913. fFlags : FILEOP_FLAGS;
  5914. fAnyOperationsAborted : WINBOOL;
  5915. hNameMappings : LPVOID;
  5916. lpszProgressTitle : LPCWSTR;
  5917. end;
  5918. LPSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW;
  5919. _SHFILEOPSTRUCT = SHFILEOPSTRUCTW;
  5920. TSHFILEOPSTRUCT = SHFILEOPSTRUCTW;
  5921. PSHFILEOPSTRUCT = ^SHFILEOPSTRUCTW;
  5922. TSHFILEOPSTRUCTW = SHFILEOPSTRUCTW;
  5923. PSHFILEOPSTRUCTW = ^SHFILEOPSTRUCTW;
  5924. SHGNO = (SHGDN_NORMAL := 0,SHGDN_INFOLDER := 1,
  5925. SHGDN_FORPARSING := $8000);
  5926. tagSHGDN = SHGNO;
  5927. TSHGDN = SHGNO;
  5928. SHNAMEMAPPING = record
  5929. pszOldPath : LPSTR;
  5930. pszNewPath : LPSTR;
  5931. cchOldPath : longint;
  5932. cchNewPath : longint;
  5933. end;
  5934. LPSHNAMEMAPPING = ^SHNAMEMAPPING;
  5935. _SHNAMEMAPPING = SHNAMEMAPPING;
  5936. TSHNAMEMAPPING = SHNAMEMAPPING;
  5937. PSHNAMEMAPPING = ^SHNAMEMAPPING;
  5938. SINGLE_LIST_ENTRY = record
  5939. Next : ^_SINGLE_LIST_ENTRY;
  5940. end;
  5941. _SINGLE_LIST_ENTRY = SINGLE_LIST_ENTRY;
  5942. TSINGLELISTENTRY = SINGLE_LIST_ENTRY;
  5943. PSINGLELISTENTRY = ^SINGLE_LIST_ENTRY;
  5944. SOUNDSENTRY = record
  5945. cbSize : UINT;
  5946. dwFlags : DWORD;
  5947. iFSTextEffect : DWORD;
  5948. iFSTextEffectMSec : DWORD;
  5949. iFSTextEffectColorBits : DWORD;
  5950. iFSGrafEffect : DWORD;
  5951. iFSGrafEffectMSec : DWORD;
  5952. iFSGrafEffectColor : DWORD;
  5953. iWindowsEffect : DWORD;
  5954. iWindowsEffectMSec : DWORD;
  5955. lpszWindowsEffectDLL : LPTSTR;
  5956. iWindowsEffectOrdinal : DWORD;
  5957. end;
  5958. LPSOUNDSENTRY = ^SOUNDSENTRY;
  5959. tagSOUNDSENTRY = SOUNDSENTRY;
  5960. TSOUNDSENTRY = SOUNDSENTRY;
  5961. PSOUNDSENTRY = ^SOUNDSENTRY;
  5962. STARTUPINFO = record
  5963. cb : DWORD;
  5964. lpReserved : LPTSTR;
  5965. lpDesktop : LPTSTR;
  5966. lpTitle : LPTSTR;
  5967. dwX : DWORD;
  5968. dwY : DWORD;
  5969. dwXSize : DWORD;
  5970. dwYSize : DWORD;
  5971. dwXCountChars : DWORD;
  5972. dwYCountChars : DWORD;
  5973. dwFillAttribute : DWORD;
  5974. dwFlags : DWORD;
  5975. wShowWindow : WORD;
  5976. cbReserved2 : WORD;
  5977. lpReserved2 : LPBYTE;
  5978. hStdInput : HANDLE;
  5979. hStdOutput : HANDLE;
  5980. hStdError : HANDLE;
  5981. end;
  5982. LPSTARTUPINFO = ^STARTUPINFO;
  5983. _STARTUPINFO = STARTUPINFO;
  5984. TSTARTUPINFO = STARTUPINFO;
  5985. PSTARTUPINFO = ^STARTUPINFO;
  5986. STICKYKEYS = record
  5987. cbSize : DWORD;
  5988. dwFlags : DWORD;
  5989. end;
  5990. LPSTICKYKEYS = ^STICKYKEYS;
  5991. tagSTICKYKEYS = STICKYKEYS;
  5992. TSTICKYKEYS = STICKYKEYS;
  5993. PSTICKYKEYS = ^STICKYKEYS;
  5994. STRRET = record
  5995. uType : UINT;
  5996. DUMMYUNIONNAME : record
  5997. case longint of
  5998. 0 : ( pOleStr : LPWSTR );
  5999. 1 : ( uOffset : UINT );
  6000. 2 : ( cStr : array[0..(MAX_PATH)-1] of char );
  6001. end;
  6002. end;
  6003. LPSTRRET = ^STRRET;
  6004. _STRRET = STRRET;
  6005. TSTRRET = STRRET;
  6006. PSTRRET = ^STRRET;
  6007. STYLEBUF = record
  6008. dwStyle : DWORD;
  6009. szDescription : array[0..31] of CHAR;
  6010. end;
  6011. LPSTYLEBUF = ^STYLEBUF;
  6012. _tagSTYLEBUF = STYLEBUF;
  6013. TSTYLEBUF = STYLEBUF;
  6014. PSTYLEBUF = ^STYLEBUF;
  6015. STYLESTRUCT = record
  6016. styleOld : DWORD;
  6017. styleNew : DWORD;
  6018. end;
  6019. LPSTYLESTRUCT = ^STYLESTRUCT;
  6020. tagSTYLESTRUCT = STYLESTRUCT;
  6021. TSTYLESTRUCT = STYLESTRUCT;
  6022. PSTYLESTRUCT = ^STYLESTRUCT;
  6023. SYSTEM_AUDIT_ACE = record
  6024. Header : ACE_HEADER;
  6025. Mask : ACCESS_MASK;
  6026. SidStart : DWORD;
  6027. end;
  6028. _SYSTEM_AUDIT_ACE = SYSTEM_AUDIT_ACE;
  6029. TSYSTEMAUDITACE = SYSTEM_AUDIT_ACE;
  6030. PSYSTEMAUDITACE = ^SYSTEM_AUDIT_ACE;
  6031. SYSTEM_INFO = record
  6032. u : record
  6033. case longint of
  6034. 0 : ( dwOemId : DWORD );
  6035. 1 : ( s : record
  6036. wProcessorArchitecture : WORD;
  6037. wReserved : WORD;
  6038. end );
  6039. end;
  6040. dwPageSize : DWORD;
  6041. lpMinimumApplicationAddress : LPVOID;
  6042. lpMaximumApplicationAddress : LPVOID;
  6043. dwActiveProcessorMask : DWORD;
  6044. dwNumberOfProcessors : DWORD;
  6045. dwProcessorType : DWORD;
  6046. dwAllocationGranularity : DWORD;
  6047. wProcessorLevel : WORD;
  6048. wProcessorRevision : WORD;
  6049. end;
  6050. LPSYSTEM_INFO = ^SYSTEM_INFO;
  6051. _SYSTEM_INFO = SYSTEM_INFO;
  6052. TSYSTEMINFO = SYSTEM_INFO;
  6053. PSYSTEMINFO = ^SYSTEM_INFO;
  6054. SYSTEM_POWER_STATUS = record
  6055. ACLineStatus : BYTE;
  6056. BatteryFlag : BYTE;
  6057. BatteryLifePercent : BYTE;
  6058. Reserved1 : BYTE;
  6059. BatteryLifeTime : DWORD;
  6060. BatteryFullLifeTime : DWORD;
  6061. end;
  6062. _SYSTEM_POWER_STATUS = SYSTEM_POWER_STATUS;
  6063. TSYSTEMPOWERSTATUS = SYSTEM_POWER_STATUS;
  6064. PSYSTEMPOWERSTATUS = ^SYSTEM_POWER_STATUS;
  6065. LPSYSTEM_POWER_STATUS = ^emptyrecord;
  6066. TAPE_ERASE = record
  6067. _Type : ULONG;
  6068. end;
  6069. _TAPE_ERASE = TAPE_ERASE;
  6070. TTAPEERASE = TAPE_ERASE;
  6071. PTAPEERASE = ^TAPE_ERASE;
  6072. TAPE_GET_DRIVE_PARAMETERS = record
  6073. ECC : BOOLEAN;
  6074. Compression : BOOLEAN;
  6075. DataPadding : BOOLEAN;
  6076. ReportSetmarks : BOOLEAN;
  6077. DefaultBlockSize : ULONG;
  6078. MaximumBlockSize : ULONG;
  6079. MinimumBlockSize : ULONG;
  6080. MaximumPartitionCount : ULONG;
  6081. FeaturesLow : ULONG;
  6082. FeaturesHigh : ULONG;
  6083. EOTWarningZoneSize : ULONG;
  6084. end;
  6085. _TAPE_GET_DRIVE_PARAMETERS = TAPE_GET_DRIVE_PARAMETERS;
  6086. TTAPEGETDRIVEPARAMETERS = TAPE_GET_DRIVE_PARAMETERS;
  6087. PTAPEGETDRIVEPARAMETERS = ^TAPE_GET_DRIVE_PARAMETERS;
  6088. TAPE_GET_MEDIA_PARAMETERS = record
  6089. Capacity : LARGE_INTEGER;
  6090. Remaining : LARGE_INTEGER;
  6091. BlockSize : DWORD;
  6092. PartitionCount : DWORD;
  6093. WriteProtected : BOOLEAN;
  6094. end;
  6095. _TAPE_GET_MEDIA_PARAMETERS = TAPE_GET_MEDIA_PARAMETERS;
  6096. TTAPEGETMEDIAPARAMETERS = TAPE_GET_MEDIA_PARAMETERS;
  6097. PTAPEGETMEDIAPARAMETERS = ^TAPE_GET_MEDIA_PARAMETERS;
  6098. TAPE_GET_POSITION = record
  6099. _Type : ULONG;
  6100. Partition : ULONG;
  6101. OffsetLow : ULONG;
  6102. OffsetHigh : ULONG;
  6103. end;
  6104. _TAPE_GET_POSITION = TAPE_GET_POSITION;
  6105. TTAPEGETPOSITION = TAPE_GET_POSITION;
  6106. PTAPEGETPOSITION = ^TAPE_GET_POSITION;
  6107. TAPE_PREPARE = record
  6108. Operation : ULONG;
  6109. end;
  6110. _TAPE_PREPARE = TAPE_PREPARE;
  6111. TTAPEPREPARE = TAPE_PREPARE;
  6112. PTAPEPREPARE = ^TAPE_PREPARE;
  6113. TAPE_SET_DRIVE_PARAMETERS = record
  6114. ECC : BOOLEAN;
  6115. Compression : BOOLEAN;
  6116. DataPadding : BOOLEAN;
  6117. ReportSetmarks : BOOLEAN;
  6118. EOTWarningZoneSize : ULONG;
  6119. end;
  6120. _TAPE_SET_DRIVE_PARAMETERS = TAPE_SET_DRIVE_PARAMETERS;
  6121. TTAPESETDRIVEPARAMETERS = TAPE_SET_DRIVE_PARAMETERS;
  6122. PTAPESETDRIVEPARAMETERS = ^TAPE_SET_DRIVE_PARAMETERS;
  6123. TAPE_SET_MEDIA_PARAMETERS = record
  6124. BlockSize : ULONG;
  6125. end;
  6126. _TAPE_SET_MEDIA_PARAMETERS = TAPE_SET_MEDIA_PARAMETERS;
  6127. TTAPESETMEDIAPARAMETERS = TAPE_SET_MEDIA_PARAMETERS;
  6128. PTAPESETMEDIAPARAMETERS = ^TAPE_SET_MEDIA_PARAMETERS;
  6129. TAPE_SET_POSITION = record
  6130. Method : ULONG;
  6131. Partition : ULONG;
  6132. OffsetLow : ULONG;
  6133. OffsetHigh : ULONG;
  6134. end;
  6135. _TAPE_SET_POSITION = TAPE_SET_POSITION;
  6136. TTAPESETPOSITION = TAPE_SET_POSITION;
  6137. PTAPESETPOSITION = ^TAPE_SET_POSITION;
  6138. TAPE_WRITE_MARKS = record
  6139. _Type : ULONG;
  6140. Count : ULONG;
  6141. end;
  6142. _TAPE_WRITE_MARKS = TAPE_WRITE_MARKS;
  6143. TTAPEWRITEMARKS = TAPE_WRITE_MARKS;
  6144. PTAPEWRITEMARKS = ^TAPE_WRITE_MARKS;
  6145. TBADDBITMAP = record
  6146. hInst : HINST;
  6147. nID : UINT;
  6148. end;
  6149. LPTBADDBITMAP = ^TBADDBITMAP;
  6150. TTBADDBITMAP = TBADDBITMAP;
  6151. PTBADDBITMAP = ^TBADDBITMAP;
  6152. TBBUTTON = record
  6153. iBitmap : longint;
  6154. idCommand : longint;
  6155. fsState : BYTE;
  6156. fsStyle : BYTE;
  6157. dwData : DWORD;
  6158. iString : longint;
  6159. end;
  6160. LPTBBUTTON = ^TBBUTTON;
  6161. LPCTBBUTTON = ^TBBUTTON;
  6162. _TBBUTTON = TBBUTTON;
  6163. TTBBUTTON = TBBUTTON;
  6164. PTBBUTTON = ^TBBUTTON;
  6165. TBNOTIFY = record
  6166. hdr : NMHDR;
  6167. iItem : longint;
  6168. tbButton : TBBUTTON;
  6169. cchText : longint;
  6170. pszText : LPTSTR;
  6171. end;
  6172. LPTBNOTIFY = ^TBNOTIFY;
  6173. TTBNOTIFY = TBNOTIFY;
  6174. PTBNOTIFY = ^TBNOTIFY;
  6175. TBSAVEPARAMS = record
  6176. hkr : HKEY;
  6177. pszSubKey : LPCTSTR;
  6178. pszValueName : LPCTSTR;
  6179. end;
  6180. TTBSAVEPARAMS = TBSAVEPARAMS;
  6181. PTBSAVEPARAMS = ^TBSAVEPARAMS;
  6182. TC_HITTESTINFO = record
  6183. pt : POINT;
  6184. flags : UINT;
  6185. end;
  6186. _TC_HITTESTINFO = TC_HITTESTINFO;
  6187. TTCHITTESTINFO = TC_HITTESTINFO;
  6188. PTCHITTESTINFO = ^TC_HITTESTINFO;
  6189. TC_ITEM = record
  6190. mask : UINT;
  6191. lpReserved1 : UINT;
  6192. lpReserved2 : UINT;
  6193. pszText : LPTSTR;
  6194. cchTextMax : longint;
  6195. iImage : longint;
  6196. lParam : LPARAM;
  6197. end;
  6198. _TC_ITEM = TC_ITEM;
  6199. TTCITEM = TC_ITEM;
  6200. PTCITEM = ^TC_ITEM;
  6201. TC_ITEMHEADER = record
  6202. mask : UINT;
  6203. lpReserved1 : UINT;
  6204. lpReserved2 : UINT;
  6205. pszText : LPTSTR;
  6206. cchTextMax : longint;
  6207. iImage : longint;
  6208. end;
  6209. _TC_ITEMHEADER = TC_ITEMHEADER;
  6210. TTCITEMHEADER = TC_ITEMHEADER;
  6211. PTCITEMHEADER = ^TC_ITEMHEADER;
  6212. TC_KEYDOWN = record
  6213. hdr : NMHDR;
  6214. wVKey : WORD;
  6215. flags : UINT;
  6216. end;
  6217. _TC_KEYDOWN = TC_KEYDOWN;
  6218. TTCKEYDOWN = TC_KEYDOWN;
  6219. PTCKEYDOWN = ^TC_KEYDOWN;
  6220. TEXTRANGE = record
  6221. chrg : CHARRANGE;
  6222. lpstrText : LPSTR;
  6223. end;
  6224. _textrange = TEXTRANGE;
  6225. Ttextrange = TEXTRANGE;
  6226. Ptextrange = ^TEXTRANGE;
  6227. TIME_ZONE_INFORMATION = record
  6228. Bias : LONG;
  6229. StandardName : array[0..31] of WCHAR;
  6230. StandardDate : SYSTEMTIME;
  6231. StandardBias : LONG;
  6232. DaylightName : array[0..31] of WCHAR;
  6233. DaylightDate : SYSTEMTIME;
  6234. DaylightBias : LONG;
  6235. end;
  6236. LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;
  6237. _TIME_ZONE_INFORMATION = TIME_ZONE_INFORMATION;
  6238. TTIMEZONEINFORMATION = TIME_ZONE_INFORMATION;
  6239. PTIMEZONEINFORMATION = ^TIME_ZONE_INFORMATION;
  6240. TOGGLEKEYS = record
  6241. cbSize : DWORD;
  6242. dwFlags : DWORD;
  6243. end;
  6244. tagTOGGLEKEYS = TOGGLEKEYS;
  6245. TTOGGLEKEYS = TOGGLEKEYS;
  6246. PTOGGLEKEYS = ^TOGGLEKEYS;
  6247. TOKEN_SOURCE = record
  6248. SourceName : array[0..7] of CHAR;
  6249. SourceIdentifier : LUID;
  6250. end;
  6251. _TOKEN_SOURCE = TOKEN_SOURCE;
  6252. TTOKENSOURCE = TOKEN_SOURCE;
  6253. PTOKENSOURCE = ^TOKEN_SOURCE;
  6254. TOKEN_CONTROL = record
  6255. TokenId : LUID;
  6256. AuthenticationId : LUID;
  6257. ModifiedId : LUID;
  6258. TokenSource : TOKEN_SOURCE;
  6259. end;
  6260. _TOKEN_CONTROL = TOKEN_CONTROL;
  6261. TTOKENCONTROL = TOKEN_CONTROL;
  6262. PTOKENCONTROL = ^TOKEN_CONTROL;
  6263. TOKEN_DEFAULT_DACL = record
  6264. DefaultDacl : PACL;
  6265. end;
  6266. _TOKEN_DEFAULT_DACL = TOKEN_DEFAULT_DACL;
  6267. TTOKENDEFAULTDACL = TOKEN_DEFAULT_DACL;
  6268. PTOKENDEFAULTDACL = ^TOKEN_DEFAULT_DACL;
  6269. TOKEN_GROUPS = record
  6270. GroupCount : DWORD;
  6271. Groups : array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES;
  6272. end;
  6273. PTOKEN_GROUPS = ^TOKEN_GROUPS;
  6274. LPTOKEN_GROUPS = ^TOKEN_GROUPS;
  6275. _TOKEN_GROUPS = TOKEN_GROUPS;
  6276. TTOKENGROUPS = TOKEN_GROUPS;
  6277. PTOKENGROUPS = ^TOKEN_GROUPS;
  6278. TOKEN_OWNER = record
  6279. Owner : PSID;
  6280. end;
  6281. _TOKEN_OWNER = TOKEN_OWNER;
  6282. TTOKENOWNER = TOKEN_OWNER;
  6283. PTOKENOWNER = ^TOKEN_OWNER;
  6284. TOKEN_PRIMARY_GROUP = record
  6285. PrimaryGroup : PSID;
  6286. end;
  6287. _TOKEN_PRIMARY_GROUP = TOKEN_PRIMARY_GROUP;
  6288. TTOKENPRIMARYGROUP = TOKEN_PRIMARY_GROUP;
  6289. PTOKENPRIMARYGROUP = ^TOKEN_PRIMARY_GROUP;
  6290. TOKEN_PRIVILEGES = packed record
  6291. PrivilegeCount : DWORD;
  6292. Privileges : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;
  6293. end;
  6294. PTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES;
  6295. LPTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES;
  6296. _TOKEN_PRIVILEGES = TOKEN_PRIVILEGES;
  6297. TTOKENPRIVILEGES = TOKEN_PRIVILEGES;
  6298. PTOKENPRIVILEGES = ^TOKEN_PRIVILEGES;
  6299. TOKEN_STATISTICS = record
  6300. TokenId : LUID;
  6301. AuthenticationId : LUID;
  6302. ExpirationTime : LARGE_INTEGER;
  6303. TokenType : TOKEN_TYPE;
  6304. ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL;
  6305. DynamicCharged : DWORD;
  6306. DynamicAvailable : DWORD;
  6307. GroupCount : DWORD;
  6308. PrivilegeCount : DWORD;
  6309. ModifiedId : LUID;
  6310. end;
  6311. _TOKEN_STATISTICS = TOKEN_STATISTICS;
  6312. TTOKENSTATISTICS = TOKEN_STATISTICS;
  6313. PTOKENSTATISTICS = ^TOKEN_STATISTICS;
  6314. TOKEN_USER = record
  6315. User : SID_AND_ATTRIBUTES;
  6316. end;
  6317. _TOKEN_USER = TOKEN_USER;
  6318. TTOKENUSER = TOKEN_USER;
  6319. PTOKENUSER = ^TOKEN_USER;
  6320. TOOLINFO = record
  6321. cbSize : UINT;
  6322. uFlags : UINT;
  6323. hwnd : HWND;
  6324. uId : UINT;
  6325. rect : RECT;
  6326. hinst : HINST;
  6327. lpszText : LPTSTR;
  6328. end;
  6329. LPTOOLINFO = ^TOOLINFO;
  6330. TTOOLINFO = TOOLINFO;
  6331. PTOOLINFO = ^TOOLINFO;
  6332. TPMPARAMS = record
  6333. cbSize : UINT;
  6334. rcExclude : RECT;
  6335. end;
  6336. LPTPMPARAMS = ^TPMPARAMS;
  6337. tagTPMPARAMS = TPMPARAMS;
  6338. TTPMPARAMS = TPMPARAMS;
  6339. PTPMPARAMS = ^TPMPARAMS;
  6340. TRANSMIT_FILE_BUFFERS = record
  6341. Head : PVOID;
  6342. HeadLength : DWORD;
  6343. Tail : PVOID;
  6344. TailLength : DWORD;
  6345. end;
  6346. _TRANSMIT_FILE_BUFFERS = TRANSMIT_FILE_BUFFERS;
  6347. TTRANSMITFILEBUFFERS = TRANSMIT_FILE_BUFFERS;
  6348. PTRANSMITFILEBUFFERS = ^TRANSMIT_FILE_BUFFERS;
  6349. TTHITTESTINFO = record
  6350. hwnd : HWND;
  6351. pt : POINT;
  6352. ti : TOOLINFO;
  6353. end;
  6354. LPHITTESTINFO = ^TTHITTESTINFO;
  6355. _TT_HITTESTINFO = TTHITTESTINFO;
  6356. TTTHITTESTINFO = TTHITTESTINFO;
  6357. PTTHITTESTINFO = ^TTHITTESTINFO;
  6358. TTPOLYCURVE = record
  6359. wType : WORD;
  6360. cpfx : WORD;
  6361. apfx : array[0..0] of POINTFX;
  6362. end;
  6363. LPTTPOLYCURVE = ^TTPOLYCURVE;
  6364. tagTTPOLYCURVE = TTPOLYCURVE;
  6365. TTTPOLYCURVE = TTPOLYCURVE;
  6366. PTTPOLYCURVE = ^TTPOLYCURVE;
  6367. TTPOLYGONHEADER = record
  6368. cb : DWORD;
  6369. dwType : DWORD;
  6370. pfxStart : POINTFX;
  6371. end;
  6372. LPTTPOLYGONHEADER = ^TTPOLYGONHEADER;
  6373. _TTPOLYGONHEADER = TTPOLYGONHEADER;
  6374. TTTPOLYGONHEADER = TTPOLYGONHEADER;
  6375. PTTPOLYGONHEADER = ^TTPOLYGONHEADER;
  6376. TV_DISPINFO = record
  6377. hdr : NMHDR;
  6378. item : TV_ITEM;
  6379. end;
  6380. _TV_DISPINFO = TV_DISPINFO;
  6381. TTVDISPINFO = TV_DISPINFO;
  6382. PTVDISPINFO = ^TV_DISPINFO;
  6383. TV_HITTESTINFO = record
  6384. pt : POINT;
  6385. flags : UINT;
  6386. hItem : HTREEITEM;
  6387. end;
  6388. LPTV_HITTESTINFO = ^TV_HITTESTINFO;
  6389. _TVHITTESTINFO = TV_HITTESTINFO;
  6390. TTVHITTESTINFO = TV_HITTESTINFO;
  6391. PTVHITTESTINFO = ^TV_HITTESTINFO;
  6392. TV_INSERTSTRUCT = record
  6393. hParent : HTREEITEM;
  6394. hInsertAfter : HTREEITEM;
  6395. item : TV_ITEM;
  6396. end;
  6397. LPTV_INSERTSTRUCT = ^TV_INSERTSTRUCT;
  6398. _TV_INSERTSTRUCT = TV_INSERTSTRUCT;
  6399. TTVINSERTSTRUCT = TV_INSERTSTRUCT;
  6400. PTVINSERTSTRUCT = ^TV_INSERTSTRUCT;
  6401. TV_KEYDOWN = record
  6402. hdr : NMHDR;
  6403. wVKey : WORD;
  6404. flags : UINT;
  6405. end;
  6406. _TV_KEYDOWN = TV_KEYDOWN;
  6407. TTVKEYDOWN = TV_KEYDOWN;
  6408. PTVKEYDOWN = ^TV_KEYDOWN;
  6409. TV_SORTCB = record
  6410. hParent : HTREEITEM;
  6411. lpfnCompare : PFNTVCOMPARE;
  6412. lParam : LPARAM;
  6413. end;
  6414. LPTV_SORTCB = ^TV_SORTCB;
  6415. _TV_SORTCB = TV_SORTCB;
  6416. TTVSORTCB = TV_SORTCB;
  6417. PTVSORTCB = ^TV_SORTCB;
  6418. UDACCEL = record
  6419. nSec : UINT;
  6420. nInc : UINT;
  6421. end;
  6422. TUDACCEL = UDACCEL;
  6423. PUDACCEL = ^UDACCEL;
  6424. UNIVERSAL_NAME_INFO = record
  6425. lpUniversalName : LPTSTR;
  6426. end;
  6427. _UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFO;
  6428. TUNIVERSALNAMEINFO = UNIVERSAL_NAME_INFO;
  6429. PUNIVERSALNAMEINFO = ^UNIVERSAL_NAME_INFO;
  6430. USEROBJECTFLAGS = record
  6431. fInherit : WINBOOL;
  6432. fReserved : WINBOOL;
  6433. dwFlags : DWORD;
  6434. end;
  6435. tagUSEROBJECTFLAGS = USEROBJECTFLAGS;
  6436. TUSEROBJECTFLAGS = USEROBJECTFLAGS;
  6437. PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
  6438. VALENT = record
  6439. ve_valuename : LPTSTR;
  6440. ve_valuelen : DWORD;
  6441. ve_valueptr : DWORD;
  6442. ve_type : DWORD;
  6443. end;
  6444. TVALENT = VALENT;
  6445. PVALENT = ^VALENT;
  6446. value_ent = VALENT;
  6447. Tvalue_ent = VALENT;
  6448. Pvalue_ent = ^VALENT;
  6449. VERIFY_INFORMATION = record
  6450. StartingOffset : LARGE_INTEGER;
  6451. Length : DWORD;
  6452. end;
  6453. _VERIFY_INFORMATION = VERIFY_INFORMATION;
  6454. TVERIFYINFORMATION = VERIFY_INFORMATION;
  6455. PVERIFYINFORMATION = ^VERIFY_INFORMATION;
  6456. VS_FIXEDFILEINFO = record
  6457. dwSignature : DWORD;
  6458. dwStrucVersion : DWORD;
  6459. dwFileVersionMS : DWORD;
  6460. dwFileVersionLS : DWORD;
  6461. dwProductVersionMS : DWORD;
  6462. dwProductVersionLS : DWORD;
  6463. dwFileFlagsMask : DWORD;
  6464. dwFileFlags : DWORD;
  6465. dwFileOS : DWORD;
  6466. dwFileType : DWORD;
  6467. dwFileSubtype : DWORD;
  6468. dwFileDateMS : DWORD;
  6469. dwFileDateLS : DWORD;
  6470. end;
  6471. _VS_FIXEDFILEINFO = VS_FIXEDFILEINFO;
  6472. TVSFIXEDFILEINFO = VS_FIXEDFILEINFO;
  6473. PVSFIXEDFILEINFO = ^VS_FIXEDFILEINFO;
  6474. WIN32_FIND_DATAW = record
  6475. dwFileAttributes : DWORD;
  6476. ftCreationTime : FILETIME;
  6477. ftLastAccessTime : FILETIME;
  6478. ftLastWriteTime : FILETIME;
  6479. nFileSizeHigh : DWORD;
  6480. nFileSizeLow : DWORD;
  6481. dwOID: DWORD;
  6482. cFileName : array[0..MAX_PATH] of WCHAR;
  6483. end;
  6484. LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
  6485. PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
  6486. _WIN32_FIND_DATAW = WIN32_FIND_DATAW;
  6487. TWIN32FINDDATAW = WIN32_FIND_DATAW;
  6488. PWIN32FINDDATAW = ^WIN32_FIND_DATAW;
  6489. WIN32_FIND_DATA = WIN32_FIND_DATAW;
  6490. LPWIN32_FIND_DATA = ^WIN32_FIND_DATAW;
  6491. PWIN32_FIND_DATA = ^WIN32_FIND_DATAW;
  6492. _WIN32_FIND_DATA = WIN32_FIND_DATAW;
  6493. TWIN32FINDDATA = WIN32_FIND_DATAW;
  6494. PWIN32FINDDATA = ^WIN32_FIND_DATAW;
  6495. WIN32_STREAM_ID = record
  6496. dwStreamId : DWORD;
  6497. dwStreamAttributes : DWORD;
  6498. Size : LARGE_INTEGER;
  6499. dwStreamNameSize : DWORD;
  6500. cStreamName : ^WCHAR;
  6501. end;
  6502. _WIN32_STREAM_ID = WIN32_STREAM_ID;
  6503. TWIN32STREAMID = WIN32_STREAM_ID;
  6504. PWIN32STREAMID = ^WIN32_STREAM_ID;
  6505. WINDOWPLACEMENT = record
  6506. length : UINT;
  6507. flags : UINT;
  6508. showCmd : UINT;
  6509. ptMinPosition : POINT;
  6510. ptMaxPosition : POINT;
  6511. rcNormalPosition : RECT;
  6512. end;
  6513. _WINDOWPLACEMENT = WINDOWPLACEMENT;
  6514. TWINDOWPLACEMENT = WINDOWPLACEMENT;
  6515. PWINDOWPLACEMENT = ^WINDOWPLACEMENT;
  6516. WNDCLASS = record
  6517. style : UINT;
  6518. lpfnWndProc : WNDPROC;
  6519. cbClsExtra : longint;
  6520. cbWndExtra : longint;
  6521. hInstance : HANDLE;
  6522. hIcon : HICON;
  6523. hCursor : HCURSOR;
  6524. hbrBackground : HBRUSH;
  6525. lpszMenuName : LPCTSTR;
  6526. lpszClassName : LPCTSTR;
  6527. end;
  6528. LPWNDCLASS = ^WNDCLASS;
  6529. _WNDCLASS = WNDCLASS;
  6530. TWNDCLASSA = WNDCLASS;
  6531. WNDCLASSW = record
  6532. style : UINT;
  6533. lpfnWndProc : WNDPROC;
  6534. cbClsExtra : longint;
  6535. cbWndExtra : longint;
  6536. hInstance : HANDLE;
  6537. hIcon : HICON;
  6538. hCursor : HCURSOR;
  6539. hbrBackground : HBRUSH;
  6540. lpszMenuName : LPCWSTR;
  6541. lpszClassName : LPCWSTR;
  6542. end;
  6543. LPWNDCLASSW = ^WNDCLASSW;
  6544. _WNDCLASSW = WNDCLASSW;
  6545. TWNDCLASSW = WNDCLASSW;
  6546. PWNDCLASSW = ^WNDCLASSW;
  6547. TWNDCLASS = WNDCLASSW;
  6548. PWNDCLASS = ^WNDCLASSW;
  6549. WNDCLASSEX = record
  6550. cbSize : UINT;
  6551. style : UINT;
  6552. lpfnWndProc : WNDPROC;
  6553. cbClsExtra : longint;
  6554. cbWndExtra : longint;
  6555. hInstance : HANDLE;
  6556. hIcon : HICON;
  6557. hCursor : HCURSOR;
  6558. hbrBackground : HBRUSH;
  6559. lpszMenuName : LPCTSTR;
  6560. lpszClassName : LPCTSTR;
  6561. hIconSm : HANDLE;
  6562. end;
  6563. LPWNDCLASSEX = ^WNDCLASSEX;
  6564. _WNDCLASSEX = WNDCLASSEX;
  6565. TWNDCLASSEX = WNDCLASSEX;
  6566. TWNDCLASSEXA = WNDCLASSEX;
  6567. PWNDCLASSEX = ^WNDCLASSEX;
  6568. WNDCLASSEXW = record
  6569. cbSize : UINT;
  6570. style : UINT;
  6571. lpfnWndProc : WNDPROC;
  6572. cbClsExtra : longint;
  6573. cbWndExtra : longint;
  6574. hInstance : HANDLE;
  6575. hIcon : HICON;
  6576. hCursor : HCURSOR;
  6577. hbrBackground : HBRUSH;
  6578. lpszMenuName : LPCWSTR;
  6579. lpszClassName : LPCWSTR;
  6580. hIconSm : HANDLE;
  6581. end;
  6582. LPWNDCLASSEXW = ^WNDCLASSEXW;
  6583. _WNDCLASSEXW = WNDCLASSEXW;
  6584. TWNDCLASSEXW = WNDCLASSEXW;
  6585. PWNDCLASSEXW = ^WNDCLASSEXW;
  6586. CONNECTDLGSTRUCT = record
  6587. cbStructure : DWORD;
  6588. hwndOwner : HWND;
  6589. lpConnRes : LPNETRESOURCE;
  6590. dwFlags : DWORD;
  6591. dwDevNum : DWORD;
  6592. end;
  6593. LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT;
  6594. _CONNECTDLGSTRUCT = CONNECTDLGSTRUCT;
  6595. TCONNECTDLGSTRUCT = CONNECTDLGSTRUCT;
  6596. PCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCT;
  6597. CONNECTDLGSTRUCTW = record //+winnetwk
  6598. cbStructure : DWORD;
  6599. hwndOwner : HWND;
  6600. lpConnRes : LPNETRESOURCEW;
  6601. dwFlags : DWORD;
  6602. dwDevNum : DWORD;
  6603. end;
  6604. LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW; //+winnetwk
  6605. _CONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW; //+winnetwk
  6606. DISCDLGSTRUCT = record
  6607. cbStructure : DWORD;
  6608. hwndOwner : HWND;
  6609. lpLocalName : LPTSTR;
  6610. lpRemoteName : LPTSTR;
  6611. dwFlags : DWORD;
  6612. end;
  6613. LPDISCDLGSTRUCT = ^DISCDLGSTRUCT;
  6614. _DISCDLGSTRUCT = DISCDLGSTRUCT;
  6615. TDISCDLGSTRUCT = DISCDLGSTRUCT;
  6616. TDISCDLGSTRUCTA = DISCDLGSTRUCT;
  6617. PDISCDLGSTRUCT = ^DISCDLGSTRUCT;
  6618. DISCDLGSTRUCTW = record //+winnetwk
  6619. cbStructure : DWORD;
  6620. hwndOwner : HWND;
  6621. lpLocalName : LPWSTR;
  6622. lpRemoteName : LPWSTR;
  6623. dwFlags : DWORD;
  6624. end;
  6625. LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW; //+winnetwk
  6626. _DISCDLGSTRUCTW = DISCDLGSTRUCTW; //+winnetwk
  6627. NETINFOSTRUCT = record
  6628. cbStructure : DWORD;
  6629. dwProviderVersion : DWORD;
  6630. dwStatus : DWORD;
  6631. dwCharacteristics : DWORD;
  6632. dwHandle : DWORD;
  6633. wNetType : WORD;
  6634. dwPrinters : DWORD;
  6635. dwDrives : DWORD;
  6636. end;
  6637. LPNETINFOSTRUCT = ^NETINFOSTRUCT;
  6638. _NETINFOSTRUCT = NETINFOSTRUCT;
  6639. TNETINFOSTRUCT = NETINFOSTRUCT;
  6640. PNETINFOSTRUCT = ^NETINFOSTRUCT;
  6641. NETCONNECTINFOSTRUCT = record
  6642. cbStructure : DWORD;
  6643. dwFlags : DWORD;
  6644. dwSpeed : DWORD;
  6645. dwDelay : DWORD;
  6646. dwOptDataSize : DWORD;
  6647. end;
  6648. LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
  6649. _NETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT;
  6650. TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT;
  6651. PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;
  6652. ENUMMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:METARECORD; _para4:longint; _para5:LPARAM):longint;
  6653. ENHMETAFILEPROC = function (_para1:HDC; _para2:HANDLETABLE; _para3:ENHMETARECORD; _para4:longint; _para5:LPARAM):longint;
  6654. ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;
  6655. FONTENUMPROC = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;
  6656. FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;
  6657. LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);
  6658. { Structures for the extensions to OpenGL }
  6659. POINTFLOAT = record
  6660. x : Single;
  6661. y : Single;
  6662. end;
  6663. _POINTFLOAT = POINTFLOAT;
  6664. TPOINTFLOAT = POINTFLOAT;
  6665. PPOINTFLOAT = ^POINTFLOAT;
  6666. GLYPHMETRICSFLOAT = record
  6667. gmfBlackBoxX : Single;
  6668. gmfBlackBoxY : Single;
  6669. gmfptGlyphOrigin : POINTFLOAT;
  6670. gmfCellIncX : Single;
  6671. gmfCellIncY : Single;
  6672. end;
  6673. LPGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT;
  6674. _GLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT;
  6675. TGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT;
  6676. PGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT;
  6677. LAYERPLANEDESCRIPTOR = record
  6678. nSize : WORD;
  6679. nVersion : WORD;
  6680. dwFlags : DWORD;
  6681. iPixelType : BYTE;
  6682. cColorBits : BYTE;
  6683. cRedBits : BYTE;
  6684. cRedShift : BYTE;
  6685. cGreenBits : BYTE;
  6686. cGreenShift : BYTE;
  6687. cBlueBits : BYTE;
  6688. cBlueShift : BYTE;
  6689. cAlphaBits : BYTE;
  6690. cAlphaShift : BYTE;
  6691. cAccumBits : BYTE;
  6692. cAccumRedBits : BYTE;
  6693. cAccumGreenBits : BYTE;
  6694. cAccumBlueBits : BYTE;
  6695. cAccumAlphaBits : BYTE;
  6696. cDepthBits : BYTE;
  6697. cStencilBits : BYTE;
  6698. cAuxBuffers : BYTE;
  6699. iLayerPlane : BYTE;
  6700. bReserved : BYTE;
  6701. crTransparent : COLORREF;
  6702. end;
  6703. LPLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR;
  6704. tagLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR;
  6705. TLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR;
  6706. PLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR;
  6707. PIXELFORMATDESCRIPTOR = record
  6708. nSize : WORD;
  6709. nVersion : WORD;
  6710. dwFlags : DWORD;
  6711. iPixelType : BYTE;
  6712. cColorBits : BYTE;
  6713. cRedBits : BYTE;
  6714. cRedShift : BYTE;
  6715. cGreenBits : BYTE;
  6716. cGreenShift : BYTE;
  6717. cBlueBits : BYTE;
  6718. cBlueShift : BYTE;
  6719. cAlphaBits : BYTE;
  6720. cAlphaShift : BYTE;
  6721. cAccumBits : BYTE;
  6722. cAccumRedBits : BYTE;
  6723. cAccumGreenBits : BYTE;
  6724. cAccumBlueBits : BYTE;
  6725. cAccumAlphaBits : BYTE;
  6726. cDepthBits : BYTE;
  6727. cStencilBits : BYTE;
  6728. cAuxBuffers : BYTE;
  6729. iLayerType : BYTE;
  6730. bReserved : BYTE;
  6731. dwLayerMask : DWORD;
  6732. dwVisibleMask : DWORD;
  6733. dwDamageMask : DWORD;
  6734. end;
  6735. LPPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR;
  6736. tagPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR;
  6737. TPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR;
  6738. PPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR;
  6739. USER_INFO_2 = record
  6740. usri2_name : LPWSTR;
  6741. usri2_password : LPWSTR;
  6742. usri2_password_age : DWORD;
  6743. usri2_priv : DWORD;
  6744. usri2_home_dir : LPWSTR;
  6745. usri2_comment : LPWSTR;
  6746. usri2_flags : DWORD;
  6747. usri2_script_path : LPWSTR;
  6748. usri2_auth_flags : DWORD;
  6749. usri2_full_name : LPWSTR;
  6750. usri2_usr_comment : LPWSTR;
  6751. usri2_parms : LPWSTR;
  6752. usri2_workstations : LPWSTR;
  6753. usri2_last_logon : DWORD;
  6754. usri2_last_logoff : DWORD;
  6755. usri2_acct_expires : DWORD;
  6756. usri2_max_storage : DWORD;
  6757. usri2_units_per_week : DWORD;
  6758. usri2_logon_hours : PBYTE;
  6759. usri2_bad_pw_count : DWORD;
  6760. usri2_num_logons : DWORD;
  6761. usri2_logon_server : LPWSTR;
  6762. usri2_country_code : DWORD;
  6763. usri2_code_page : DWORD;
  6764. end;
  6765. PUSER_INFO_2 = ^USER_INFO_2;
  6766. LPUSER_INFO_2 = ^USER_INFO_2;
  6767. TUSERINFO2 = USER_INFO_2;
  6768. PUSERINFO2 = ^USER_INFO_2;
  6769. USER_INFO_0 = record
  6770. usri0_name : LPWSTR;
  6771. end;
  6772. PUSER_INFO_0 = ^USER_INFO_0;
  6773. LPUSER_INFO_0 = ^USER_INFO_0;
  6774. TUSERINFO0 = USER_INFO_0;
  6775. PUSERINFO0 = ^USER_INFO_0;
  6776. USER_INFO_3 = record
  6777. usri3_name : LPWSTR;
  6778. usri3_password : LPWSTR;
  6779. usri3_password_age : DWORD;
  6780. usri3_priv : DWORD;
  6781. usri3_home_dir : LPWSTR;
  6782. usri3_comment : LPWSTR;
  6783. usri3_flags : DWORD;
  6784. usri3_script_path : LPWSTR;
  6785. usri3_auth_flags : DWORD;
  6786. usri3_full_name : LPWSTR;
  6787. usri3_usr_comment : LPWSTR;
  6788. usri3_parms : LPWSTR;
  6789. usri3_workstations : LPWSTR;
  6790. usri3_last_logon : DWORD;
  6791. usri3_last_logoff : DWORD;
  6792. usri3_acct_expires : DWORD;
  6793. usri3_max_storage : DWORD;
  6794. usri3_units_per_week : DWORD;
  6795. usri3_logon_hours : PBYTE;
  6796. usri3_bad_pw_count : DWORD;
  6797. usri3_num_logons : DWORD;
  6798. usri3_logon_server : LPWSTR;
  6799. usri3_country_code : DWORD;
  6800. usri3_code_page : DWORD;
  6801. usri3_user_id : DWORD;
  6802. usri3_primary_group_id : DWORD;
  6803. usri3_profile : LPWSTR;
  6804. usri3_home_dir_drive : LPWSTR;
  6805. usri3_password_expired : DWORD;
  6806. end;
  6807. PUSER_INFO_3 = ^USER_INFO_3;
  6808. LPUSER_INFO_3 = ^USER_INFO_3;
  6809. TUSERINFO3 = USER_INFO_3;
  6810. PUSERINFO3 = ^USER_INFO_3;
  6811. GROUP_INFO_2 = record
  6812. grpi2_name : LPWSTR;
  6813. grpi2_comment : LPWSTR;
  6814. grpi2_group_id : DWORD;
  6815. grpi2_attributes : DWORD;
  6816. end;
  6817. PGROUP_INFO_2 = ^GROUP_INFO_2;
  6818. TGROUPINFO2 = GROUP_INFO_2;
  6819. PGROUPINFO2 = ^GROUP_INFO_2;
  6820. LOCALGROUP_INFO_0 = record
  6821. lgrpi0_name : LPWSTR;
  6822. end;
  6823. PLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;
  6824. LPLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;
  6825. TLOCALGROUPINFO0 = LOCALGROUP_INFO_0;
  6826. PLOCALGROUPINFO0 = ^LOCALGROUP_INFO_0;
  6827. { PE executable header. }
  6828. { Magic number, 0x5a4d }
  6829. { Bytes on last page of file, 0x90 }
  6830. { Pages in file, 0x3 }
  6831. { Relocations, 0x0 }
  6832. { Size of header in paragraphs, 0x4 }
  6833. { Minimum extra paragraphs needed, 0x0 }
  6834. { Maximum extra paragraphs needed, 0xFFFF }
  6835. { Initial (relative) SS value, 0x0 }
  6836. { Initial SP value, 0xb8 }
  6837. { Checksum, 0x0 }
  6838. { Initial IP value, 0x0 }
  6839. { Initial (relative) CS value, 0x0 }
  6840. { File address of relocation table, 0x40 }
  6841. { Overlay number, 0x0 }
  6842. { Reserved words, all 0x0 }
  6843. { OEM identifier (for e_oeminfo), 0x0 }
  6844. { OEM information; e_oemid specific, 0x0 }
  6845. { Reserved words, all 0x0 }
  6846. { File address of new exe header, 0x80 }
  6847. { We leave out the next two fields, since they aren't in the header file }
  6848. { DWORD dos_message[16]; text which always follows dos header }
  6849. { DWORD nt_signature; required NT signature, 0x4550 }
  6850. IMAGE_DOS_HEADER = record
  6851. e_magic : WORD;
  6852. e_cblp : WORD;
  6853. e_cp : WORD;
  6854. e_crlc : WORD;
  6855. e_cparhdr : WORD;
  6856. e_minalloc : WORD;
  6857. e_maxalloc : WORD;
  6858. e_ss : WORD;
  6859. e_sp : WORD;
  6860. e_csum : WORD;
  6861. e_ip : WORD;
  6862. e_cs : WORD;
  6863. e_lfarlc : WORD;
  6864. e_ovno : WORD;
  6865. e_res : array[0..3] of WORD;
  6866. e_oemid : WORD;
  6867. e_oeminfo : WORD;
  6868. e_res2 : array[0..9] of WORD;
  6869. e_lfanew : LONG;
  6870. end;
  6871. PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER;
  6872. TIMAGEDOSHEADER = IMAGE_DOS_HEADER;
  6873. PIMAGEDOSHEADER = ^IMAGE_DOS_HEADER;
  6874. _NOTIFYICONDATAA = record
  6875. cbSize: DWORD;
  6876. Wnd: HWND;
  6877. uID: UINT;
  6878. uFlags: UINT;
  6879. uCallbackMessage: UINT;
  6880. hIcon: HICON;
  6881. szTip: array [0..63] of Char;
  6882. end;
  6883. _NOTIFYICONDATA = _NOTIFYICONDATAA;
  6884. _NOTIFYICONDATAW = record
  6885. cbSize: DWORD;
  6886. Wnd: HWND;
  6887. uID: UINT;
  6888. uFlags: UINT;
  6889. uCallbackMessage: UINT;
  6890. hIcon: HICON;
  6891. szTip: array [0..63] of Word;
  6892. end;
  6893. TNotifyIconDataA = _NOTIFYICONDATAA;
  6894. TNotifyIconDataW = _NOTIFYICONDATAW;
  6895. TNotifyIconData = TNotifyIconDataA;
  6896. NOTIFYICONDATAA = _NOTIFYICONDATAA;
  6897. NOTIFYICONDATAW = _NOTIFYICONDATAW;
  6898. NOTIFYICONDATA = NOTIFYICONDATAA;
  6899. PNotifyIconDataA = ^TNotifyIconDataA;
  6900. PNotifyIconDataW = ^TNotifyIconDataW;
  6901. PNotifyIconData = PNotifyIconDataA;
  6902. TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE;
  6903. PWOHandleArray = ^TWOHandleArray;
  6904. MMRESULT = Longint;
  6905. type
  6906. PWaveFormatEx = ^TWaveFormatEx;
  6907. TWaveFormatEx = packed record
  6908. wFormatTag: Word; { format type }
  6909. nChannels: Word; { number of channels (i.e. mono, stereo, etc.) }
  6910. nSamplesPerSec: DWORD; { sample rate }
  6911. nAvgBytesPerSec: DWORD; { for buffer estimation }
  6912. nBlockAlign: Word; { block size of data }
  6913. wBitsPerSample: Word; { number of bits per sample of mono data }
  6914. cbSize: Word; { the count in bytes of the size of }
  6915. end;
  6916. _WIN32_FILE_ATTRIBUTE_DATA = packed record
  6917. dwFileAttributes: DWORD;
  6918. ftCreationTime: FILETIME;
  6919. ftLastAccessTime: FILETIME;
  6920. ftLastWriteTime: FILETIME;
  6921. nFileSizeHigh: DWORD;
  6922. nFileSizeLow: DWORD;
  6923. end;
  6924. WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA ;
  6925. LPWIN32_FILE_ATTRIBUTE_DATA = ^_WIN32_FILE_ATTRIBUTE_DATA;
  6926. TWIN32FILEATTRIBUTEDATA = _WIN32_FILE_ATTRIBUTE_DATA ;
  6927. PWIN32FILEATTRIBUTEDATA = ^_WIN32_FILE_ATTRIBUTE_DATA;
  6928. // TrackMouseEvent. NT or higher only.
  6929. TTrackMouseEvent = Record
  6930. cbSize : DWORD;
  6931. dwFlags : DWORD;
  6932. hwndTrack : HWND;
  6933. dwHoverTime : DWORD;
  6934. end;
  6935. PTrackMouseEvent = ^TTrackMouseEvent;
  6936. {$endif read_interface}
  6937. {$ifdef read_implementation}
  6938. function fBinary(var a : DCB) : DWORD;
  6939. begin
  6940. fBinary:=(a.flags and bm_DCB_fBinary) shr bp_DCB_fBinary;
  6941. end;
  6942. procedure set_fBinary(var a : DCB; __fBinary : DWORD);
  6943. begin
  6944. a.flags:=a.flags or ((__fBinary shl bp_DCB_fBinary) and bm_DCB_fBinary);
  6945. end;
  6946. function fParity(var a : DCB) : DWORD;
  6947. begin
  6948. fParity:=(a.flags and bm_DCB_fParity) shr bp_DCB_fParity;
  6949. end;
  6950. procedure set_fParity(var a : DCB; __fParity : DWORD);
  6951. begin
  6952. a.flags:=a.flags or ((__fParity shl bp_DCB_fParity) and bm_DCB_fParity);
  6953. end;
  6954. function fOutxCtsFlow(var a : DCB) : DWORD;
  6955. begin
  6956. fOutxCtsFlow:=(a.flags and bm_DCB_fOutxCtsFlow) shr bp_DCB_fOutxCtsFlow;
  6957. end;
  6958. procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD);
  6959. begin
  6960. a.flags:=a.flags or ((__fOutxCtsFlow shl bp_DCB_fOutxCtsFlow) and bm_DCB_fOutxCtsFlow);
  6961. end;
  6962. function fOutxDsrFlow(var a : DCB) : DWORD;
  6963. begin
  6964. fOutxDsrFlow:=(a.flags and bm_DCB_fOutxDsrFlow) shr bp_DCB_fOutxDsrFlow;
  6965. end;
  6966. procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD);
  6967. begin
  6968. a.flags:=a.flags or ((__fOutxDsrFlow shl bp_DCB_fOutxDsrFlow) and bm_DCB_fOutxDsrFlow);
  6969. end;
  6970. function fDtrControl(var a : DCB) : DWORD;
  6971. begin
  6972. fDtrControl:=(a.flags and bm_DCB_fDtrControl) shr bp_DCB_fDtrControl;
  6973. end;
  6974. procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD);
  6975. begin
  6976. a.flags:=a.flags or ((__fDtrControl shl bp_DCB_fDtrControl) and bm_DCB_fDtrControl);
  6977. end;
  6978. function fDsrSensitivity(var a : DCB) : DWORD;
  6979. begin
  6980. fDsrSensitivity:=(a.flags and bm_DCB_fDsrSensitivity) shr bp_DCB_fDsrSensitivity;
  6981. end;
  6982. procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD);
  6983. begin
  6984. a.flags:=a.flags or ((__fDsrSensitivity shl bp_DCB_fDsrSensitivity) and bm_DCB_fDsrSensitivity);
  6985. end;
  6986. function fTXContinueOnXoff(var a : DCB) : DWORD;
  6987. begin
  6988. fTXContinueOnXoff:=(a.flags and bm_DCB_fTXContinueOnXoff) shr bp_DCB_fTXContinueOnXoff;
  6989. end;
  6990. procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD);
  6991. begin
  6992. a.flags:=a.flags or ((__fTXContinueOnXoff shl bp_DCB_fTXContinueOnXoff) and bm_DCB_fTXContinueOnXoff);
  6993. end;
  6994. function fOutX(var a : DCB) : DWORD;
  6995. begin
  6996. fOutX:=(a.flags and bm_DCB_fOutX) shr bp_DCB_fOutX;
  6997. end;
  6998. procedure set_fOutX(var a : DCB; __fOutX : DWORD);
  6999. begin
  7000. a.flags:=a.flags or ((__fOutX shl bp_DCB_fOutX) and bm_DCB_fOutX);
  7001. end;
  7002. function fInX(var a : DCB) : DWORD;
  7003. begin
  7004. fInX:=(a.flags and bm_DCB_fInX) shr bp_DCB_fInX;
  7005. end;
  7006. procedure set_fInX(var a : DCB; __fInX : DWORD);
  7007. begin
  7008. a.flags:=a.flags or ((__fInX shl bp_DCB_fInX) and bm_DCB_fInX);
  7009. end;
  7010. function fErrorChar(var a : DCB) : DWORD;
  7011. begin
  7012. fErrorChar:=(a.flags and bm_DCB_fErrorChar) shr bp_DCB_fErrorChar;
  7013. end;
  7014. procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD);
  7015. begin
  7016. a.flags:=a.flags or ((__fErrorChar shl bp_DCB_fErrorChar) and bm_DCB_fErrorChar);
  7017. end;
  7018. function fNull(var a : DCB) : DWORD;
  7019. begin
  7020. fNull:=(a.flags and bm_DCB_fNull) shr bp_DCB_fNull;
  7021. end;
  7022. procedure set_fNull(var a : DCB; __fNull : DWORD);
  7023. begin
  7024. a.flags:=a.flags or ((__fNull shl bp_DCB_fNull) and bm_DCB_fNull);
  7025. end;
  7026. function fRtsControl(var a : DCB) : DWORD;
  7027. begin
  7028. fRtsControl:=(a.flags and bm_DCB_fRtsControl) shr bp_DCB_fRtsControl;
  7029. end;
  7030. procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD);
  7031. begin
  7032. a.flags:=a.flags or ((__fRtsControl shl bp_DCB_fRtsControl) and bm_DCB_fRtsControl);
  7033. end;
  7034. function fAbortOnError(var a : DCB) : DWORD;
  7035. begin
  7036. fAbortOnError:=(a.flags and bm_DCB_fAbortOnError) shr bp_DCB_fAbortOnError;
  7037. end;
  7038. procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD);
  7039. begin
  7040. a.flags:=a.flags or ((__fAbortOnError shl bp_DCB_fAbortOnError) and bm_DCB_fAbortOnError);
  7041. end;
  7042. function fDummy2(var a : DCB) : DWORD;
  7043. begin
  7044. fDummy2:=(a.flags and bm_DCB_fDummy2) shr bp_DCB_fDummy2;
  7045. end;
  7046. procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD);
  7047. begin
  7048. a.flags:=a.flags or ((__fDummy2 shl bp_DCB_fDummy2) and bm_DCB_fDummy2);
  7049. end;
  7050. function fCtsHold(var a : COMSTAT) : DWORD;
  7051. begin
  7052. fCtsHold:=(a.flag0 and bm_COMSTAT_fCtsHold) shr bp_COMSTAT_fCtsHold;
  7053. end;
  7054. procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD);
  7055. begin
  7056. a.flag0:=a.flag0 or ((__fCtsHold shl bp_COMSTAT_fCtsHold) and bm_COMSTAT_fCtsHold);
  7057. end;
  7058. function fDsrHold(var a : COMSTAT) : DWORD;
  7059. begin
  7060. fDsrHold:=(a.flag0 and bm_COMSTAT_fDsrHold) shr bp_COMSTAT_fDsrHold;
  7061. end;
  7062. procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD);
  7063. begin
  7064. a.flag0:=a.flag0 or ((__fDsrHold shl bp_COMSTAT_fDsrHold) and bm_COMSTAT_fDsrHold);
  7065. end;
  7066. function fRlsdHold(var a : COMSTAT) : DWORD;
  7067. begin
  7068. fRlsdHold:=(a.flag0 and bm_COMSTAT_fRlsdHold) shr bp_COMSTAT_fRlsdHold;
  7069. end;
  7070. procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD);
  7071. begin
  7072. a.flag0:=a.flag0 or ((__fRlsdHold shl bp_COMSTAT_fRlsdHold) and bm_COMSTAT_fRlsdHold);
  7073. end;
  7074. function fXoffHold(var a : COMSTAT) : DWORD;
  7075. begin
  7076. fXoffHold:=(a.flag0 and bm_COMSTAT_fXoffHold) shr bp_COMSTAT_fXoffHold;
  7077. end;
  7078. procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD);
  7079. begin
  7080. a.flag0:=a.flag0 or ((__fXoffHold shl bp_COMSTAT_fXoffHold) and bm_COMSTAT_fXoffHold);
  7081. end;
  7082. function fXoffSent(var a : COMSTAT) : DWORD;
  7083. begin
  7084. fXoffSent:=(a.flag0 and bm_COMSTAT_fXoffSent) shr bp_COMSTAT_fXoffSent;
  7085. end;
  7086. procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD);
  7087. begin
  7088. a.flag0:=a.flag0 or ((__fXoffSent shl bp_COMSTAT_fXoffSent) and bm_COMSTAT_fXoffSent);
  7089. end;
  7090. function fEof(var a : COMSTAT) : DWORD;
  7091. begin
  7092. fEof:=(a.flag0 and bm_COMSTAT_fEof) shr bp_COMSTAT_fEof;
  7093. end;
  7094. procedure set_fEof(var a : COMSTAT; __fEof : DWORD);
  7095. begin
  7096. a.flag0:=a.flag0 or ((__fEof shl bp_COMSTAT_fEof) and bm_COMSTAT_fEof);
  7097. end;
  7098. function fTxim(var a : COMSTAT) : DWORD;
  7099. begin
  7100. fTxim:=(a.flag0 and bm_COMSTAT_fTxim) shr bp_COMSTAT_fTxim;
  7101. end;
  7102. procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD);
  7103. begin
  7104. a.flag0:=a.flag0 or ((__fTxim shl bp_COMSTAT_fTxim) and bm_COMSTAT_fTxim);
  7105. end;
  7106. function fReserved(var a : COMSTAT) : DWORD;
  7107. begin
  7108. fReserved:=(a.flag0 and bm_COMSTAT_fReserved) shr bp_COMSTAT_fReserved;
  7109. end;
  7110. procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD);
  7111. begin
  7112. a.flag0:=a.flag0 or ((__fReserved shl bp_COMSTAT_fReserved) and bm_COMSTAT_fReserved);
  7113. end;
  7114. function bAppReturnCode(var a : DDEACK) : word;
  7115. begin
  7116. bAppReturnCode:=(a.flag0 and bm_DDEACK_bAppReturnCode) shr bp_DDEACK_bAppReturnCode;
  7117. end;
  7118. procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word);
  7119. begin
  7120. a.flag0:=a.flag0 or ((__bAppReturnCode shl bp_DDEACK_bAppReturnCode) and bm_DDEACK_bAppReturnCode);
  7121. end;
  7122. function reserved(var a : DDEACK) : word;
  7123. begin
  7124. reserved:=(a.flag0 and bm_DDEACK_reserved) shr bp_DDEACK_reserved;
  7125. end;
  7126. procedure set_reserved(var a : DDEACK; __reserved : word);
  7127. begin
  7128. a.flag0:=a.flag0 or ((__reserved shl bp_DDEACK_reserved) and bm_DDEACK_reserved);
  7129. end;
  7130. function fBusy(var a : DDEACK) : word;
  7131. begin
  7132. fBusy:=(a.flag0 and bm_DDEACK_fBusy) shr bp_DDEACK_fBusy;
  7133. end;
  7134. procedure set_fBusy(var a : DDEACK; __fBusy : word);
  7135. begin
  7136. a.flag0:=a.flag0 or ((__fBusy shl bp_DDEACK_fBusy) and bm_DDEACK_fBusy);
  7137. end;
  7138. function fAck(var a : DDEACK) : word;
  7139. begin
  7140. fAck:=(a.flag0 and bm_DDEACK_fAck) shr bp_DDEACK_fAck;
  7141. end;
  7142. procedure set_fAck(var a : DDEACK; __fAck : word);
  7143. begin
  7144. a.flag0:=a.flag0 or ((__fAck shl bp_DDEACK_fAck) and bm_DDEACK_fAck);
  7145. end;
  7146. function reserved(var a : DDEADVISE) : word;
  7147. begin
  7148. reserved:=(a.flag0 and bm_DDEADVISE_reserved) shr bp_DDEADVISE_reserved;
  7149. end;
  7150. procedure set_reserved(var a : DDEADVISE; __reserved : word);
  7151. begin
  7152. a.flag0:=a.flag0 or ((__reserved shl bp_DDEADVISE_reserved) and bm_DDEADVISE_reserved);
  7153. end;
  7154. function fDeferUpd(var a : DDEADVISE) : word;
  7155. begin
  7156. fDeferUpd:=(a.flag0 and bm_DDEADVISE_fDeferUpd) shr bp_DDEADVISE_fDeferUpd;
  7157. end;
  7158. procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word);
  7159. begin
  7160. a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDEADVISE_fDeferUpd) and bm_DDEADVISE_fDeferUpd);
  7161. end;
  7162. function fAckReq(var a : DDEADVISE) : word;
  7163. begin
  7164. fAckReq:=(a.flag0 and bm_DDEADVISE_fAckReq) shr bp_DDEADVISE_fAckReq;
  7165. end;
  7166. procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word);
  7167. begin
  7168. a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEADVISE_fAckReq) and bm_DDEADVISE_fAckReq);
  7169. end;
  7170. function unused(var a : DDEDATA) : word;
  7171. begin
  7172. unused:=(a.flag0 and bm_DDEDATA_unused) shr bp_DDEDATA_unused;
  7173. end;
  7174. procedure set_unused(var a : DDEDATA; __unused : word);
  7175. begin
  7176. a.flag0:=a.flag0 or ((__unused shl bp_DDEDATA_unused) and bm_DDEDATA_unused);
  7177. end;
  7178. function fResponse(var a : DDEDATA) : word;
  7179. begin
  7180. fResponse:=(a.flag0 and bm_DDEDATA_fResponse) shr bp_DDEDATA_fResponse;
  7181. end;
  7182. procedure set_fResponse(var a : DDEDATA; __fResponse : word);
  7183. begin
  7184. a.flag0:=a.flag0 or ((__fResponse shl bp_DDEDATA_fResponse) and bm_DDEDATA_fResponse);
  7185. end;
  7186. function fRelease(var a : DDEDATA) : word;
  7187. begin
  7188. fRelease:=(a.flag0 and bm_DDEDATA_fRelease) shr bp_DDEDATA_fRelease;
  7189. end;
  7190. procedure set_fRelease(var a : DDEDATA; __fRelease : word);
  7191. begin
  7192. a.flag0:=a.flag0 or ((__fRelease shl bp_DDEDATA_fRelease) and bm_DDEDATA_fRelease);
  7193. end;
  7194. function reserved(var a : DDEDATA) : word;
  7195. begin
  7196. reserved:=(a.flag0 and bm_DDEDATA_reserved) shr bp_DDEDATA_reserved;
  7197. end;
  7198. procedure set_reserved(var a : DDEDATA; __reserved : word);
  7199. begin
  7200. a.flag0:=a.flag0 or ((__reserved shl bp_DDEDATA_reserved) and bm_DDEDATA_reserved);
  7201. end;
  7202. function fAckReq(var a : DDEDATA) : word;
  7203. begin
  7204. fAckReq:=(a.flag0 and bm_DDEDATA_fAckReq) shr bp_DDEDATA_fAckReq;
  7205. end;
  7206. procedure set_fAckReq(var a : DDEDATA; __fAckReq : word);
  7207. begin
  7208. a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEDATA_fAckReq) and bm_DDEDATA_fAckReq);
  7209. end;
  7210. function unused(var a : DDELN) : word;
  7211. begin
  7212. unused:=(a.flag0 and bm_DDELN_unused) shr bp_DDELN_unused;
  7213. end;
  7214. procedure set_unused(var a : DDELN; __unused : word);
  7215. begin
  7216. a.flag0:=a.flag0 or ((__unused shl bp_DDELN_unused) and bm_DDELN_unused);
  7217. end;
  7218. function fRelease(var a : DDELN) : word;
  7219. begin
  7220. fRelease:=(a.flag0 and bm_DDELN_fRelease) shr bp_DDELN_fRelease;
  7221. end;
  7222. procedure set_fRelease(var a : DDELN; __fRelease : word);
  7223. begin
  7224. a.flag0:=a.flag0 or ((__fRelease shl bp_DDELN_fRelease) and bm_DDELN_fRelease);
  7225. end;
  7226. function fDeferUpd(var a : DDELN) : word;
  7227. begin
  7228. fDeferUpd:=(a.flag0 and bm_DDELN_fDeferUpd) shr bp_DDELN_fDeferUpd;
  7229. end;
  7230. procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word);
  7231. begin
  7232. a.flag0:=a.flag0 or ((__fDeferUpd shl bp_DDELN_fDeferUpd) and bm_DDELN_fDeferUpd);
  7233. end;
  7234. function fAckReq(var a : DDELN) : word;
  7235. begin
  7236. fAckReq:=(a.flag0 and bm_DDELN_fAckReq) shr bp_DDELN_fAckReq;
  7237. end;
  7238. procedure set_fAckReq(var a : DDELN; __fAckReq : word);
  7239. begin
  7240. a.flag0:=a.flag0 or ((__fAckReq shl bp_DDELN_fAckReq) and bm_DDELN_fAckReq);
  7241. end;
  7242. function unused(var a : DDEPOKE) : word;
  7243. begin
  7244. unused:=(a.flag0 and bm_DDEPOKE_unused) shr bp_DDEPOKE_unused;
  7245. end;
  7246. procedure set_unused(var a : DDEPOKE; __unused : word);
  7247. begin
  7248. a.flag0:=a.flag0 or ((__unused shl bp_DDEPOKE_unused) and bm_DDEPOKE_unused);
  7249. end;
  7250. function fRelease(var a : DDEPOKE) : word;
  7251. begin
  7252. fRelease:=(a.flag0 and bm_DDEPOKE_fRelease) shr bp_DDEPOKE_fRelease;
  7253. end;
  7254. procedure set_fRelease(var a : DDEPOKE; __fRelease : word);
  7255. begin
  7256. a.flag0:=a.flag0 or ((__fRelease shl bp_DDEPOKE_fRelease) and bm_DDEPOKE_fRelease);
  7257. end;
  7258. function fReserved(var a : DDEPOKE) : word;
  7259. begin
  7260. fReserved:=(a.flag0 and bm_DDEPOKE_fReserved) shr bp_DDEPOKE_fReserved;
  7261. end;
  7262. procedure set_fReserved(var a : DDEPOKE; __fReserved : word);
  7263. begin
  7264. a.flag0:=a.flag0 or ((__fReserved shl bp_DDEPOKE_fReserved) and bm_DDEPOKE_fReserved);
  7265. end;
  7266. function unused(var a : DDEUP) : word;
  7267. begin
  7268. unused:=(a.flag0 and bm_DDEUP_unused) shr bp_DDEUP_unused;
  7269. end;
  7270. procedure set_unused(var a : DDEUP; __unused : word);
  7271. begin
  7272. a.flag0:=a.flag0 or ((__unused shl bp_DDEUP_unused) and bm_DDEUP_unused);
  7273. end;
  7274. function fAck(var a : DDEUP) : word;
  7275. begin
  7276. fAck:=(a.flag0 and bm_DDEUP_fAck) shr bp_DDEUP_fAck;
  7277. end;
  7278. procedure set_fAck(var a : DDEUP; __fAck : word);
  7279. begin
  7280. a.flag0:=a.flag0 or ((__fAck shl bp_DDEUP_fAck) and bm_DDEUP_fAck);
  7281. end;
  7282. function fRelease(var a : DDEUP) : word;
  7283. begin
  7284. fRelease:=(a.flag0 and bm_DDEUP_fRelease) shr bp_DDEUP_fRelease;
  7285. end;
  7286. procedure set_fRelease(var a : DDEUP; __fRelease : word);
  7287. begin
  7288. a.flag0:=a.flag0 or ((__fRelease shl bp_DDEUP_fRelease) and bm_DDEUP_fRelease);
  7289. end;
  7290. function fReserved(var a : DDEUP) : word;
  7291. begin
  7292. fReserved:=(a.flag0 and bm_DDEUP_fReserved) shr bp_DDEUP_fReserved;
  7293. end;
  7294. procedure set_fReserved(var a : DDEUP; __fReserved : word);
  7295. begin
  7296. a.flag0:=a.flag0 or ((__fReserved shl bp_DDEUP_fReserved) and bm_DDEUP_fReserved);
  7297. end;
  7298. function fAckReq(var a : DDEUP) : word;
  7299. begin
  7300. fAckReq:=(a.flag0 and bm_DDEUP_fAckReq) shr bp_DDEUP_fAckReq;
  7301. end;
  7302. procedure set_fAckReq(var a : DDEUP; __fAckReq : word);
  7303. begin
  7304. a.flag0:=a.flag0 or ((__fAckReq shl bp_DDEUP_fAckReq) and bm_DDEUP_fAckReq);
  7305. end;
  7306. {$endif read_implementation}