struct.inc 237 KB

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