struct.inc 242 KB

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