struct.inc 237 KB

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