struct.inc 242 KB

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