struct.inc 238 KB

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