| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998 | {    This file is part of the Free Pascal run time library.    This unit contains the record definition for the Win32 API    Copyright (c) 1999-2000 by Florian KLaempfl,    member of the Free Pascal development team.    See the file COPYING.FPC, included in this distribution,    for details about the copyright.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. **********************************************************************}{  Structures.h  Declarations for all the Windows32 API Structures  Copyright (C) 1996 Free Software Foundation, Inc.  Author:  Scott Christley <[email protected]>  Date: 1996  This file is part of the Windows32 API Library.  This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Library General Public  License as published by the Free Software Foundation; either  version 2 of the License, or (at your option) any later version.  This library is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  Library General Public License for more details.  If you are interested in a warranty or support for this source code,  contact Scott Christley <[email protected]> for more information.  You should have received a copy of the GNU Library General Public  License along with this library; see the file COPYING.LIB.  If not, write to the Free Software Foundation,  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.}{$ifdef read_interface}Const  IMAGE_SIZEOF_SHORT_NAME = 8;  type  {$I typshrdh.inc}    { WARNING      the variable argument list      is not implemented for FPC      va_list is just a dummy record      MvdV: Nevertheless it should be a pointer type, not a record}     va_list = pchar;     ABC = record          abcA : longint;          abcB : UINT;          abcC : longint;       end;     LPABC = ^ABC;     _ABC = ABC;     TABC = ABC;     PABC = ^ABC;     ABCFLOAT = record          abcfA : Single;          abcfB : Single;          abcfC : Single;       end;     LPABCFLOAT = ^ABCFLOAT;     _ABCFLOAT = ABCFLOAT;     TABCFLOAT = ABCFLOAT;     PABCFLOAT = ^ABCFLOAT;     ACCEL = record          fVirt : BYTE;          key : WORD;          cmd : WORD;       end;     LPACCEL = ^ACCEL;     _ACCEL = ACCEL;     TACCEL = ACCEL;     PACCEL = ^ACCEL;     ACE_HEADER = record          AceType : BYTE;          AceFlags : BYTE;          AceSize : WORD;       end;     _ACE_HEADER = ACE_HEADER;     TACE_HEADER = ACE_HEADER;     PACE_HEADER = ^ACE_HEADER;     ACCESS_MASK = DWORD;     REGSAM = ACCESS_MASK;     ACCESS_ALLOWED_ACE = record          Header : ACE_HEADER;          Mask : ACCESS_MASK;          SidStart : DWORD;       end;     _ACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE;     TACCESS_ALLOWED_ACE = ACCESS_ALLOWED_ACE;     PACCESS_ALLOWED_ACE = ^ACCESS_ALLOWED_ACE;     ACCESS_DENIED_ACE = record          Header : ACE_HEADER;          Mask : ACCESS_MASK;          SidStart : DWORD;       end;     _ACCESS_DENIED_ACE = ACCESS_DENIED_ACE;     TACCESS_DENIED_ACE = ACCESS_DENIED_ACE;     ACCESSTIMEOUT = record          cbSize : UINT;          dwFlags : DWORD;          iTimeOutMSec : DWORD;       end;     _ACCESSTIMEOUT = ACCESSTIMEOUT;     TACCESSTIMEOUT = ACCESSTIMEOUT;     PACCESSTIMEOUT = ^ACCESSTIMEOUT;     ACL = record          AclRevision : BYTE;          Sbz1 : BYTE;          AclSize : WORD;          AceCount : WORD;          Sbz2 : WORD;       end;     PACL = ^ACL;     _ACL = ACL;     TACL = ACL;     ACL_REVISION_INFORMATION = record          AclRevision : DWORD;       end;     _ACL_REVISION_INFORMATION = ACL_REVISION_INFORMATION;     TACLREVISIONINFORMATION = ACL_REVISION_INFORMATION;     PACLREVISIONINFORMATION = ^ACL_REVISION_INFORMATION;     ACL_SIZE_INFORMATION = record          AceCount : DWORD;          AclBytesInUse : DWORD;          AclBytesFree : DWORD;       end;     _ACL_SIZE_INFORMATION = ACL_SIZE_INFORMATION;     TACLSIZEINFORMATION = ACL_SIZE_INFORMATION;     PACLSIZEINFORMATION = ^ACL_SIZE_INFORMATION;     ACTION_HEADER = record          transport_id : ULONG;          action_code : USHORT;          reserved : USHORT;       end;     _ACTION_HEADER = ACTION_HEADER;     TACTIONHEADER = ACTION_HEADER;     PACTIONHEADER = ^ACTION_HEADER;     ADAPTER_STATUS = record          adapter_address : array[0..5] of UCHAR;          rev_major : UCHAR;          reserved0 : UCHAR;          adapter_type : UCHAR;          rev_minor : UCHAR;          duration : WORD;          frmr_recv : WORD;          frmr_xmit : WORD;          iframe_recv_err : WORD;          xmit_aborts : WORD;          xmit_success : DWORD;          recv_success : DWORD;          iframe_xmit_err : WORD;          recv_buff_unavail : WORD;          t1_timeouts : WORD;          ti_timeouts : WORD;          reserved1 : DWORD;          free_ncbs : WORD;          max_cfg_ncbs : WORD;          max_ncbs : WORD;          xmit_buf_unavail : WORD;          max_dgram_size : WORD;          pending_sess : WORD;          max_cfg_sess : WORD;          max_sess : WORD;          max_sess_pkt_size : WORD;          name_count : WORD;       end;     _ADAPTER_STATUS = ADAPTER_STATUS;     TADAPTERSTATUS = ADAPTER_STATUS;     PADAPTERSTATUS = ^ADAPTER_STATUS;     ADDJOB_INFO_1 = record          Path : LPTSTR;          JobId : DWORD;       end;     _ADDJOB_INFO_1 = ADDJOB_INFO_1;     TADDJOB_INFO_1 = ADDJOB_INFO_1;     PADDJOB_INFO_1 = ^ADDJOB_INFO_1;     ANIMATIONINFO = record          cbSize : UINT;          iMinAnimate : longint;       end;     LPANIMATIONINFO = ^ANIMATIONINFO;     _ANIMATIONINFO = ANIMATIONINFO;     TANIMATIONINFO = ANIMATIONINFO;     PANIMATIONINFO = ^ANIMATIONINFO;     POINT = TPOINT;     LPPOINT = PPOINT;     tagPOINT = TPOINT;     RECT = TRect;     LPRECT = PRECT;     _RECT = RECT;     RECTL = record          left : LONG;          top : LONG;          right : LONG;          bottom : LONG;       end;     _RECTL = RECTL;     TRECTL = RECTL;     PRECTL = ^RECTL;     APPBARDATA = record          cbSize : DWORD;          hWnd : HWND;          uCallbackMessage : UINT;          uEdge : UINT;          rc : RECT;          lParam : LPARAM;       end;     _AppBarData = APPBARDATA;     TAppBarData = APPBARDATA;     PAppBarData = ^APPBARDATA;     BITMAP = record          bmType : LONG;          bmWidth : LONG;          bmHeight : LONG;          bmWidthBytes : LONG;          bmPlanes : WORD;          bmBitsPixel : WORD;          bmBits : LPVOID;       end;     PBITMAP = ^BITMAP;     NPBITMAP = ^BITMAP;     LPBITMAP = ^BITMAP;     tagBITMAP = BITMAP;     TBITMAP = BITMAP;     BITMAPCOREHEADER = record          bcSize : DWORD;          bcWidth : WORD;          bcHeight : WORD;          bcPlanes : WORD;          bcBitCount : WORD;       end;     tagBITMAPCOREHEADER = BITMAPCOREHEADER;     TBITMAPCOREHEADER = BITMAPCOREHEADER;     PBITMAPCOREHEADER = ^BITMAPCOREHEADER;     RGBTRIPLE = record          rgbtBlue : BYTE;          rgbtGreen : BYTE;          rgbtRed : BYTE;       end;     tagRGBTRIPLE = RGBTRIPLE;     TRGBTRIPLE = RGBTRIPLE;     PRGBTRIPLE = ^RGBTRIPLE;     BITMAPCOREINFO = record          bmciHeader : BITMAPCOREHEADER;          bmciColors : array[0..0] of RGBTRIPLE;       end;     PBITMAPCOREINFO = ^BITMAPCOREINFO;     LPBITMAPCOREINFO = ^BITMAPCOREINFO;     _BITMAPCOREINFO = BITMAPCOREINFO;     TBITMAPCOREINFO = BITMAPCOREINFO;(* error  WORD    bfReserved1;  WORD    bfReserved2; in declarator_list *)     BITMAPINFOHEADER = record          biSize : DWORD;          biWidth : LONG;          biHeight : LONG;          biPlanes : WORD;          biBitCount : WORD;          biCompression : DWORD;          biSizeImage : DWORD;          biXPelsPerMeter : LONG;          biYPelsPerMeter : LONG;          biClrUsed : DWORD;          biClrImportant : DWORD;       end;     LPBITMAPINFOHEADER = ^BITMAPINFOHEADER;     TBITMAPINFOHEADER = BITMAPINFOHEADER;     PBITMAPINFOHEADER = ^BITMAPINFOHEADER;     RGBQUAD = record          rgbBlue : BYTE;          rgbGreen : BYTE;          rgbRed : BYTE;          rgbReserved : BYTE;       end;     tagRGBQUAD = RGBQUAD;     TRGBQUAD = RGBQUAD;     PRGBQUAD = ^RGBQUAD;     BITMAPINFO = record          bmiHeader : BITMAPINFOHEADER;          bmiColors : array[0..0] of RGBQUAD;       end;     LPBITMAPINFO = ^BITMAPINFO;     PBITMAPINFO = ^BITMAPINFO;     TBITMAPINFO = BITMAPINFO;     FXPT2DOT30   = longint;     LPFXPT2DOT30 = ^FXPT2DOT30;     TFXPT2DOT30  = FXPT2DOT30;     PFXPT2DOT30  = LPFXPT2DOT30;     CIEXYZ = record          ciexyzX : FXPT2DOT30;          ciexyzY : FXPT2DOT30;          ciexyzZ : FXPT2DOT30;       end;     tagCIEXYZ = CIEXYZ;     LPCIEXYZ = ^CIEXYZ;     TPCIEXYZ = CIEXYZ;     PCIEXYZ = ^CIEXYZ;     CIEXYZTRIPLE = record          ciexyzRed : CIEXYZ;          ciexyzGreen : CIEXYZ;          ciexyzBlue : CIEXYZ;       end;     tagCIEXYZTRIPLE = CIEXYZTRIPLE;     LPCIEXYZTRIPLE = ^CIEXYZTRIPLE;     TCIEXYZTRIPLE = CIEXYZTRIPLE;     PCIEXYZTRIPLE = ^CIEXYZTRIPLE;     BITMAPV4HEADER = record          bV4Size : DWORD;          bV4Width : LONG;          bV4Height : LONG;          bV4Planes : WORD;          bV4BitCount : WORD;          bV4V4Compression : DWORD;          bV4SizeImage : DWORD;          bV4XPelsPerMeter : LONG;          bV4YPelsPerMeter : LONG;          bV4ClrUsed : DWORD;          bV4ClrImportant : DWORD;          bV4RedMask : DWORD;          bV4GreenMask : DWORD;          bV4BlueMask : DWORD;          bV4AlphaMask : DWORD;          bV4CSType : DWORD;          bV4Endpoints : CIEXYZTRIPLE;          bV4GammaRed : DWORD;          bV4GammaGreen : DWORD;          bV4GammaBlue : DWORD;       end;     LPBITMAPV4HEADER = ^BITMAPV4HEADER;     TBITMAPV4HEADER = BITMAPV4HEADER;     PBITMAPV4HEADER = ^BITMAPV4HEADER;     BITMAPFILEHEADER = packed record       bfType : Word;       bfSize : DWord;       bfReserved1 : Word;       bfReserved2 : Word;       bfOffBits : DWord;     end;     tagBITMAPFILEHEADER = BITMAPFILEHEADER;     TBitmapFileHeader = BITMAPFILEHEADER;     PBitmapFileHeader = ^TBitmapFileHeader;     BLOB = record          cbSize : ULONG;          pBlobData : ^BYTE;       end;     _BLOB = BLOB;     TBLOB = BLOB;     PBLOB = ^BLOB;     SHITEMID = record          cb : USHORT;          abID : array[0..0] of BYTE;       end;     LPSHITEMID = ^SHITEMID;     LPCSHITEMID = ^SHITEMID;     _SHITEMID = SHITEMID;     TSHITEMID = SHITEMID;     PSHITEMID = ^SHITEMID;     ITEMIDLIST = record          mkid : SHITEMID;       end;     LPITEMIDLIST = ^ITEMIDLIST;     LPCITEMIDLIST = ^ITEMIDLIST;     _ITEMIDLIST = ITEMIDLIST;     TITEMIDLIST = ITEMIDLIST;     PITEMIDLIST = ^ITEMIDLIST;     BROWSEINFO = record          hwndOwner : HWND;          pidlRoot : LPCITEMIDLIST;          pszDisplayName : LPTSTR;          lpszTitle : LPCTSTR;          ulFlags : UINT;          lpfn : BFFCALLBACK;          lParam : LPARAM;          iImage : longint;       end deprecated 'Use shlobj version. Will be removed in the future';      LPBROWSEINFO = ^BROWSEINFO deprecated;     _browseinfo = BROWSEINFO deprecated;     Tbrowseinfo = BROWSEINFO deprecated;     PBROWSEINFO = ^BROWSEINFO deprecated;     FILETIME = record          dwLowDateTime : DWORD;          dwHighDateTime : DWORD;       end;     LPFILETIME = ^FILETIME;     _FILETIME = FILETIME;     TFILETIME = FILETIME;     PFILETIME = ^FILETIME;     BY_HANDLE_FILE_INFORMATION = record          dwFileAttributes : DWORD;          ftCreationTime : FILETIME;          ftLastAccessTime : FILETIME;          ftLastWriteTime : FILETIME;          dwVolumeSerialNumber : DWORD;          nFileSizeHigh : DWORD;          nFileSizeLow : DWORD;          nNumberOfLinks : DWORD;          nFileIndexHigh : DWORD;          nFileIndexLow : DWORD;       end;     LPBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION;     _BY_HANDLE_FILE_INFORMATION = BY_HANDLE_FILE_INFORMATION;     TBYHANDLEFILEINFORMATION = BY_HANDLE_FILE_INFORMATION;     PBYHANDLEFILEINFORMATION = ^BY_HANDLE_FILE_INFORMATION;     FIXED = packed record          fract : WORD;          value : SHORT;       end;     _FIXED = FIXED;     TFIXED = FIXED;     PFIXED = ^FIXED;     POINTFX = record          x : FIXED;          y : FIXED;       end;     tagPOINTFX = POINTFX;     TPOINTFX = POINTFX;     PPOINTFX = ^POINTFX;     POINTL = record          x : LONG;          y : LONG;       end;     _POINTL = POINTL;     TPOINTL = POINTL;     PPOINTL = ^POINTL;     POINTS = record          x : SHORT;          y : SHORT;       end;     tagPOINTS = POINTS;     TPOINTS = POINTS;     PPOINTS = ^POINTS;     CANDIDATEFORM = record          dwIndex : DWORD;          dwStyle : DWORD;          ptCurrentPos : POINT;          rcArea : RECT;       end;     LPCANDIDATEFORM = ^CANDIDATEFORM;     _tagCANDIDATEFORM = CANDIDATEFORM;     TCANDIDATEFORM = CANDIDATEFORM;     PCANDIDATEFORM = ^CANDIDATEFORM;     CANDIDATELIST = record          dwSize : DWORD;          dwStyle : DWORD;          dwCount : DWORD;          dwSelection : DWORD;          dwPageStart : DWORD;          dwPageSize : DWORD;          dwOffset : array[0..0] of DWORD;       end;     LPCANDIDATELIST = ^CANDIDATELIST;     _tagCANDIDATELIST = CANDIDATELIST;     TCANDIDATELIST = CANDIDATELIST;     PCANDIDATELIST = ^CANDIDATELIST;     CREATESTRUCT = record          lpCreateParams : LPVOID;          hInstance : HINST;          hMenu : HMENU;          hwndParent : HWND;          cy : longint;          cx : longint;          y : longint;          x : longint;          style : LONG;          lpszName : LPCTSTR;          lpszClass : LPCTSTR;          dwExStyle : DWORD;       end;     LPCREATESTRUCT = ^CREATESTRUCT;     tagCREATESTRUCT = CREATESTRUCT;     TCREATESTRUCT = CREATESTRUCT;     PCREATESTRUCT = ^CREATESTRUCT;     CBT_CREATEWND = record          lpcs : LPCREATESTRUCT;          hwndInsertAfter : HWND;       end;     tagCBT_CREATEWND = CBT_CREATEWND;     TCBT_CREATEWND = CBT_CREATEWND;     PCBT_CREATEWND = ^CBT_CREATEWND;     CBTACTIVATESTRUCT = record          fMouse : WINBOOL;          hWndActive : HWND;       end;     tagCBTACTIVATESTRUCT = CBTACTIVATESTRUCT;     TCBTACTIVATESTRUCT = CBTACTIVATESTRUCT;     PCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;     CHAR_INFO = record              case longint of                 0 : ( UnicodeChar : WCHAR;                       Attributes  : Word);                 1 : ( AsciiChar : CHAR );              end;     _CHAR_INFO = CHAR_INFO;     TCHAR_INFO = CHAR_INFO;     PCHAR_INFO = ^CHAR_INFO;     CHARFORMATA = record          cbSize : UINT;          dwMask : DWORD;          dwEffects : DWORD;          yHeight : LONG;          yOffset : LONG;          crTextColor : COLORREF;          bCharSet : BYTE;          bPitchAndFamily : BYTE;          szFaceName : array[0..(LF_FACESIZE)-1] of AnsiCHAR;       end;     _CHARFORMATA = CHARFORMATA;     TCHARFORMATA = CHARFORMATA;     PCHARFORMATA = ^CHARFORMATA;     CHARFORMATW = record          cbSize : UINT;          dwMask : DWORD;          dwEffects : DWORD;          yHeight : LONG;          yOffset : LONG;          crTextColor : COLORREF;          bCharSet : BYTE;          bPitchAndFamily : BYTE;          szFaceName : array[0..(LF_FACESIZE)-1] of WCHAR;       end;     _CHARFORMATW = CHARFORMATW;     TCHARFORMATW = CHARFORMATW;     PCHARFORMATW = ^CHARFORMATW;{$ifdef Unicode}   CHARFORMAT  = CHARFORMATW;   _CHARFORMAT = CHARFORMATW;   TCHARFORMAT = CHARFORMATW;   PCHARFORMAT = PCHARFORMATW;{$else}   CHARFORMAT  = CHARFORMATA;   _CHARFORMAT = CHARFORMATA;   TCHARFORMAT = CHARFORMATA;   PCHARFORMAT = PCHARFORMATA;{$endif}     CHARRANGE = record          cpMin : LONG;          cpMax : LONG;       end;     _charrange = CHARRANGE;     Tcharrange = CHARRANGE;     Pcharrange = ^CHARRANGE;     CHARSET = record          aflBlock : array[0..2] of DWORD;          flLang : DWORD;       end;     tagCHARSET = CHARSET;     TCHARSET = CHARSET;     PCHARSET = ^CHARSET;     FONTSIGNATURE = record          fsUsb : array[0..3] of DWORD;          fsCsb : array[0..1] of DWORD;       end;     LPFONTSIGNATURE = ^FONTSIGNATURE;     tagFONTSIGNATURE = FONTSIGNATURE;     TFONTSIGNATURE = FONTSIGNATURE;     PFONTSIGNATURE = ^FONTSIGNATURE;     CHARSETINFO = record          ciCharset : UINT;          ciACP : UINT;          fs : FONTSIGNATURE;       end;     LPCHARSETINFO = ^CHARSETINFO;     TCHARSETINFO = CHARSETINFO;     PCHARSETINFO = ^CHARSETINFO;     {CHOOSECOLOR = record confilcts with function ChooseColor }     TCHOOSECOLOR = record          lStructSize : DWORD;          hwndOwner : HWND;          hInstance : HWND;          rgbResult : COLORREF;          lpCustColors : ^COLORREF;          Flags : DWORD;          lCustData : LPARAM;          lpfnHook : LPCCHOOKPROC;          lpTemplateName : LPCTSTR;       end;     LPCHOOSECOLOR = ^TCHOOSECOLOR;     PCHOOSECOLOR = ^TCHOOSECOLOR;     LOGFONTA = record          lfHeight : LONG;          lfWidth : LONG;          lfEscapement : LONG;          lfOrientation : LONG;          lfWeight : LONG;          lfItalic : BYTE;          lfUnderline : BYTE;          lfStrikeOut : BYTE;          lfCharSet : BYTE;          lfOutPrecision : BYTE;          lfClipPrecision : BYTE;          lfQuality : BYTE;          lfPitchAndFamily : BYTE;          lfFaceName : array[0..(LF_FACESIZE)-1] of AnsiCHAR;       end;     LPLOGFONTA = ^LOGFONTA;     _LOGFONTA  = LOGFONTA;     TLOGFONTA  = LOGFONTA;     PLOGFONTA  = LPLOGFONTA;     tagLOGFONTA= LOGFONTA;     LOGFONTW = record       lfHeight: LONG;       lfWidth: LONG;       lfEscapement: LONG;       lfOrientation: LONG;       lfWeight: LONG;       lfItalic: BYTE;       lfUnderline: BYTE;       lfStrikeOut: BYTE;       lfCharSet: BYTE;       lfOutPrecision: BYTE;       lfClipPrecision: BYTE;       lfQuality: BYTE;       lfPitchAndFamily: BYTE;       lfFaceName: array [0..LF_FACESIZE - 1] of WCHAR;     end;     LPLOGFONTW = ^LOGFONTW;     NPLOGFONTW = ^LOGFONTW;     _LOGFONTW  = LOGFONTW;     TLogFontW  = LOGFONTW;     PLogFontW  = ^TLOGFONTW;     tagLOGFONTW= LOGFONTW;   {$IFNDEF UNICODE}     LOGFONT    = LOGFONTA;     LPLOGFONT  = ^LOGFONTA;     _LOGFONT   = LOGFONTA;     TLOGFONT   = LOGFONTA;     PLOGFONT   = ^LOGFONTA;     tagLOGFONT = LOGFONTA;   {$ELSE}     LOGFONT    = LOGFONTW;     LPLOGFONT  = ^LOGFONTW;     _LOGFONT   = LOGFONTW;     TLOGFONT   = LOGFONTW;     PLOGFONT   = ^LOGFONTW;     tagLOGFONT = LOGFONTW;    {$ENDIF}     {CHOOSEFONT = record conflicts with ChosseFont function }     TCHOOSEFONT = record          lStructSize : DWORD;          hwndOwner : HWND;          hDC : HDC;          lpLogFont : LPLOGFONT;          iPointSize : WINT;          Flags : DWORD;          rgbColors : COLORREF;          lCustData : LPARAM;          lpfnHook : LPCFHOOKPROC;          lpTemplateName : LPCTSTR;          hInstance : HINST;          lpszStyle : LPTSTR;          nFontType : WORD;          ___MISSING_ALIGNMENT__ : WORD;          nSizeMin : WINT;          nSizeMax : WINT;       end;     LPCHOOSEFONT = ^TCHOOSEFONT;     PCHOOSEFONT = ^TCHOOSEFONT;     CIDA = record          cidl : UINT;          aoffset : array[0..0] of UINT;       end;     LPIDA = ^CIDA;     _IDA = CIDA;     TIDA = CIDA;     PIDA = ^CIDA;     CLIENTCREATESTRUCT = record          hWindowMenu : HANDLE;          idFirstChild : UINT;       end;     LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;     tagCLIENTCREATESTRUCT = CLIENTCREATESTRUCT;     TCLIENTCREATESTRUCT = CLIENTCREATESTRUCT;     PCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;     CMINVOKECOMMANDINFO = record          cbSize : DWORD;          fMask : DWORD;          hwnd : HWND;          lpVerb : LPCSTR;          lpParameters : LPCSTR;          lpDirectory : LPCSTR;          nShow : longint;          dwHotKey : DWORD;          hIcon : HANDLE;       end deprecated 'Use shlobj version. Will be removed in the future';     LPCMINVOKECOMMANDINFO = ^CMINVOKECOMMANDINFO deprecated;     _CMInvokeCommandInfo = CMINVOKECOMMANDINFO deprecated;     TCMInvokeCommandInfo = CMINVOKECOMMANDINFO deprecated;     PCMInvokeCommandInfo = ^CMINVOKECOMMANDINFO deprecated;     COLORADJUSTMENT = record          caSize : WORD;          caFlags : WORD;          caIlluminantIndex : WORD;          caRedGamma : WORD;          caGreenGamma : WORD;          caBlueGamma : WORD;          caReferenceBlack : WORD;          caReferenceWhite : WORD;          caContrast : SHORT;          caBrightness : SHORT;          caColorfulness : SHORT;          caRedGreenTint : SHORT;       end;     LPCOLORADJUSTMENT = ^COLORADJUSTMENT;     tagCOLORADJUSTMENT = COLORADJUSTMENT;     TCOLORADJUSTMENT = COLORADJUSTMENT;     PCOLORADJUSTMENT = ^COLORADJUSTMENT;     COLORMAP = record          from : COLORREF;          _to : COLORREF;       end;     LPCOLORMAP = ^COLORMAP;     _COLORMAP = COLORMAP;     TCOLORMAP = COLORMAP;     PCOLORMAP = ^COLORMAP;     DCB = record          DCBlength : DWORD;          BaudRate : DWORD;          flags : DWORD;          wReserved : WORD;          XonLim : WORD;          XoffLim : WORD;          ByteSize : BYTE;          Parity : BYTE;          StopBits : BYTE;          XonChar : char;          XoffChar : char;          ErrorChar : char;          EofChar : char;          EvtChar : char;          wReserved1 : WORD;       end;     LPDCB = ^DCB;     _DCB = DCB;     TDCB = DCB;     PDCB = ^DCB;     FLASHWINFO = record         cbSize    : UINT;         hwnd      : HWND;         dwFlags   : DWORD;         uCount    : UINT;         dwTimeOut : DWORD;     end;    TFLASHWINFO  = FLASHWINFO;    PFLASHWINFO  = ^FLASHWINFO;  const     bm_DCB_fBinary = $1;     bp_DCB_fBinary = 0;     bm_DCB_fParity = $2;     bp_DCB_fParity = 1;     bm_DCB_fOutxCtsFlow = $4;     bp_DCB_fOutxCtsFlow = 2;     bm_DCB_fOutxDsrFlow = $8;     bp_DCB_fOutxDsrFlow = 3;     bm_DCB_fDtrControl = $30;     bp_DCB_fDtrControl = 4;     bm_DCB_fDsrSensitivity = $40;     bp_DCB_fDsrSensitivity = 6;     bm_DCB_fTXContinueOnXoff = $80;     bp_DCB_fTXContinueOnXoff = 7;     bm_DCB_fOutX = $100;     bp_DCB_fOutX = 8;     bm_DCB_fInX = $200;     bp_DCB_fInX = 9;     bm_DCB_fErrorChar = $400;     bp_DCB_fErrorChar = 10;     bm_DCB_fNull = $800;     bp_DCB_fNull = 11;     bm_DCB_fRtsControl = $3000;     bp_DCB_fRtsControl = 12;     bm_DCB_fAbortOnError = $4000;     bp_DCB_fAbortOnError = 14;     bm_DCB_fDummy2 = dword($FFFF8000);     bp_DCB_fDummy2 = 15;  function fBinary(var a : DCB) : DWORD;  procedure set_fBinary(var a : DCB; __fBinary : DWORD);  function fParity(var a : DCB) : DWORD;  procedure set_fParity(var a : DCB; __fParity : DWORD);  function fOutxCtsFlow(var a : DCB) : DWORD;  procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD);  function fOutxDsrFlow(var a : DCB) : DWORD;  procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD);  function fDtrControl(var a : DCB) : DWORD;  procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD);  function fDsrSensitivity(var a : DCB) : DWORD;  procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD);  function fTXContinueOnXoff(var a : DCB) : DWORD;  procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD);  function fOutX(var a : DCB) : DWORD;  procedure set_fOutX(var a : DCB; __fOutX : DWORD);  function fInX(var a : DCB) : DWORD;  procedure set_fInX(var a : DCB; __fInX : DWORD);  function fErrorChar(var a : DCB) : DWORD;  procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD);  function fNull(var a : DCB) : DWORD;  procedure set_fNull(var a : DCB; __fNull : DWORD);  function fRtsControl(var a : DCB) : DWORD;  procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD);  function fAbortOnError(var a : DCB) : DWORD;  procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD);  function fDummy2(var a : DCB) : DWORD;  procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD);  type     COMMCONFIG = record          dwSize : DWORD;          wVersion : WORD;          wReserved : WORD;          dcb : DCB;          dwProviderSubType : DWORD;          dwProviderOffset : DWORD;          dwProviderSize : DWORD;          wcProviderData : array[0..0] of WCHAR;       end;     LPCOMMCONFIG = ^COMMCONFIG;     _COMM_CONFIG = COMMCONFIG;     TCOMMCONFIG = COMMCONFIG;     PCOMMCONFIG = ^COMMCONFIG;     COMMPROP = record          wPacketLength : WORD;          wPacketVersion : WORD;          dwServiceMask : DWORD;          dwReserved1 : DWORD;          dwMaxTxQueue : DWORD;          dwMaxRxQueue : DWORD;          dwMaxBaud : DWORD;          dwProvSubType : DWORD;          dwProvCapabilities : DWORD;          dwSettableParams : DWORD;          dwSettableBaud : DWORD;          wSettableData : WORD;          wSettableStopParity : WORD;          dwCurrentTxQueue : DWORD;          dwCurrentRxQueue : DWORD;          dwProvSpec1 : DWORD;          dwProvSpec2 : DWORD;          wcProvChar : array[0..0] of WCHAR;       end;     LPCOMMPROP = ^COMMPROP;     _COMMPROP = COMMPROP;     TCOMMPROP = COMMPROP;     PCOMMPROP = ^COMMPROP;     COMMTIMEOUTS = record          ReadIntervalTimeout : DWORD;          ReadTotalTimeoutMultiplier : DWORD;          ReadTotalTimeoutConstant : DWORD;          WriteTotalTimeoutMultiplier : DWORD;          WriteTotalTimeoutConstant : DWORD;       end;     LPCOMMTIMEOUTS = ^COMMTIMEOUTS;     _COMMTIMEOUTS = COMMTIMEOUTS;     TCOMMTIMEOUTS = COMMTIMEOUTS;     PCOMMTIMEOUTS = ^COMMTIMEOUTS;     COMPAREITEMSTRUCT = record          CtlType : UINT;          CtlID : UINT;          hwndItem : HWND;          itemID1 : UINT;          itemData1 : ULONG_PTR;          itemID2 : UINT;          itemData2 : ULONG_PTR;          dwLocaleID : DWORD;       end;     tagCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT;     TCOMPAREITEMSTRUCT = COMPAREITEMSTRUCT;     PCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;     COMPCOLOR = record          crText : COLORREF;          crBackground : COLORREF;          dwEffects : DWORD;       end;     TCOMPCOLOR = COMPCOLOR;     PCOMPCOLOR = ^COMPCOLOR;     COMPOSITIONFORM = record          dwStyle : DWORD;          ptCurrentPos : POINT;          rcArea : RECT;       end;     LPCOMPOSITIONFORM = ^COMPOSITIONFORM;     _tagCOMPOSITIONFORM = COMPOSITIONFORM;     TCOMPOSITIONFORM = COMPOSITIONFORM;     PCOMPOSITIONFORM = ^COMPOSITIONFORM;//     TComStatFlags = set of (fCtsHold, fDsrHold, fRlsdHold , fXoffHold ,//                    fXoffSent , fEof ,  fTxim  , fReserved);     COMSTAT = record          flag0 : DWORD;   // can't use tcomstatflags, set packing issues                           // and conflicts with macro's          cbInQue : DWORD;          cbOutQue : DWORD;       end;     LPCOMSTAT = ^COMSTAT;     _COMSTAT = COMSTAT;     TCOMSTAT = COMSTAT;     PCOMSTAT = ^COMSTAT;  const     bm_COMSTAT_fCtsHold = $1;     bp_COMSTAT_fCtsHold = 0;     bm_COMSTAT_fDsrHold = $2;     bp_COMSTAT_fDsrHold = 1;     bm_COMSTAT_fRlsdHold = $4;     bp_COMSTAT_fRlsdHold = 2;     bm_COMSTAT_fXoffHold = $8;     bp_COMSTAT_fXoffHold = 3;     bm_COMSTAT_fXoffSent = $10;     bp_COMSTAT_fXoffSent = 4;     bm_COMSTAT_fEof = $20;     bp_COMSTAT_fEof = 5;     bm_COMSTAT_fTxim = $40;     bp_COMSTAT_fTxim = 6;     bm_COMSTAT_fReserved = $FFFFFF80;     bp_COMSTAT_fReserved = 7;  function fCtsHold(var a : COMSTAT) : DWORD;  // should be renamed to get_<x>?  procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD);  function fDsrHold(var a : COMSTAT) : DWORD;  procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD);  function fRlsdHold(var a : COMSTAT) : DWORD;  procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD);  function fXoffHold(var a : COMSTAT) : DWORD;  procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD);  function fXoffSent(var a : COMSTAT) : DWORD;  procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD);  function fEof(var a : COMSTAT) : DWORD;  procedure set_fEof(var a : COMSTAT; __fEof : DWORD);  function fTxim(var a : COMSTAT) : DWORD;  procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD);  function fReserved(var a : COMSTAT) : DWORD;  procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD);  type     CONSOLE_CURSOR_INFO = record          dwSize : DWORD;          bVisible : WINBOOL;       end;     PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO;     _CONSOLE_CURSOR_INFO = CONSOLE_CURSOR_INFO;     TCONSOLECURSORINFO = CONSOLE_CURSOR_INFO;     PCONSOLECURSORINFO = ^CONSOLE_CURSOR_INFO;     COORD = record          X : SHORT;          Y : SHORT;       end;     _COORD = COORD;     TCOORD = COORD;     PCOORD = ^COORD;     SMALL_RECT = record          Left : SHORT;          Top : SHORT;          Right : SHORT;          Bottom : SHORT;       end;     _SMALL_RECT = SMALL_RECT;     TSMALL_RECT = SMALL_RECT;     PSMALL_RECT = ^SMALL_RECT;     CONSOLE_SCREEN_BUFFER_INFO = packed record          dwSize : COORD;          dwCursorPosition : COORD;          wAttributes : WORD;          srWindow : SMALL_RECT;          dwMaximumWindowSize : COORD;       end;     PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO;     _CONSOLE_SCREEN_BUFFER_INFO = CONSOLE_SCREEN_BUFFER_INFO;     TCONSOLESCREENBUFFERINFO = CONSOLE_SCREEN_BUFFER_INFO;     PCONSOLESCREENBUFFERINFO = ^CONSOLE_SCREEN_BUFFER_INFO;{$ifdef cpui386}{$define __HASCONTEXT__}  type     FLOATING_SAVE_AREA = record          ControlWord : DWORD;          StatusWord : DWORD;          TagWord : DWORD;          ErrorOffset : DWORD;          ErrorSelector : DWORD;          DataOffset : DWORD;          DataSelector : DWORD;          RegisterArea : array[0..79] of BYTE;          Cr0NpxState : DWORD;       end;     _FLOATING_SAVE_AREA = FLOATING_SAVE_AREA;     TFLOATINGSAVEAREA = FLOATING_SAVE_AREA;     PFLOATINGSAVEAREA = ^FLOATING_SAVE_AREA;     CONTEXT = record          ContextFlags : DWORD;          Dr0 : DWORD;          Dr1 : DWORD;          Dr2 : DWORD;          Dr3 : DWORD;          Dr6 : DWORD;          Dr7 : DWORD;          FloatSave : FLOATING_SAVE_AREA;          SegGs : DWORD;          SegFs : DWORD;          SegEs : DWORD;          SegDs : DWORD;          Edi : DWORD;          Esi : DWORD;          Ebx : DWORD;          Edx : DWORD;          Ecx : DWORD;          Eax : DWORD;          Ebp : DWORD;          Eip : DWORD;          SegCs : DWORD;          EFlags : DWORD;          Esp : DWORD;          SegSs : DWORD;       end;{$endif}{$ifdef cpux86_64}{$define __HASCONTEXT__}//// Define 128-bit 16-byte aligned xmm register type.////typedef struct DECLSPEC_ALIGN(16) _M128A {{$note todo, fix alignment }  type     M128A = record          Low: ULONGLONG;          High: LONGLONG;       end;     _M128A = M128A;     TM128A = M128A;     PM128A = TM128A;//// Format of data for 32-bit fxsave/fxrstor instructions.////typedef struct _XMM_SAVE_AREA32 {  type     XMM_SAVE_AREA32 = record          ControlWord: WORD;          StatusWord: WORD;          TagWord: BYTE;          Reserved1: BYTE;          ErrorOpcode: WORD;          ErrorOffset: DWORD;          ErrorSelector: WORD;          Reserved2: WORD;          DataOffset: DWORD;          DataSelector: WORD;          Reserved3: WORD;          MxCsr: DWORD;          MxCsr_Mask: DWORD;          FloatRegisters: array[0..7] of M128A;          XmmRegisters: array[0..15] of M128A;          Reserved4: array[0..95] of BYTE;       end;     _XMM_SAVE_AREA32 = XMM_SAVE_AREA32;     TXmmSaveArea = XMM_SAVE_AREA32;     PXmmSaveArea = ^TXmmSaveArea;  const     LEGACY_SAVE_AREA_LENGTH = sizeof(XMM_SAVE_AREA32);//// Context Frame////  This frame has a several purposes: 1) it is used as an argument to//  NtContinue, 2) is is used to constuct a call frame for APC delivery,//  and 3) it is used in the user level thread creation routines.////// The flags field within this record controls the contents of a CONTEXT// record.//// If the context record is used as an input parameter, then for each// portion of the context record controlled by a flag whose value is// set, it is assumed that that portion of the context record contains// valid context. If the context record is being used to modify a threads// context, then only that portion of the threads context is modified.//// If the context record is used as an output parameter to capture the// context of a thread, then only those portions of the thread's context// corresponding to set flags will be returned.//// CONTEXT_CONTROL specifies SegSs, Rsp, SegCs, Rip, and EFlags.//// CONTEXT_INTEGER specifies Rax, Rcx, Rdx, Rbx, Rbp, Rsi, Rdi, and R8-R15.//// CONTEXT_SEGMENTS specifies SegDs, SegEs, SegFs, and SegGs.//// CONTEXT_DEBUG_REGISTERS specifies Dr0-Dr3 and Dr6-Dr7.//// CONTEXT_MMX_REGISTERS specifies the floating point and extended registers//     Mm0/St0-Mm7/St7 and Xmm0-Xmm15).////typedef struct DECLSPEC_ALIGN(16) _CONTEXT {{$note todo, fix alignment }  type     CONTEXT = record          //          // Register parameter home addresses.          //          // N.B. These fields are for convience - they could be used to extend the          //      context record in the future.          //          P1Home: DWORD64;          P2Home: DWORD64;          P3Home: DWORD64;          P4Home: DWORD64;          P5Home: DWORD64;          P6Home: DWORD64;          //          // Control flags.          //          ContextFlags: DWORD;          MxCsr: DWORD;          //          // Segment Registers and processor flags.          //          SegCs: WORD;          SegDs: WORD;          SegEs: WORD;          SegFs: WORD;          SegGs: WORD;          SegSs: WORD;          EFlags: DWORD;          //          // Debug registers          //          Dr0: DWORD64;          Dr1: DWORD64;          Dr2: DWORD64;          Dr3: DWORD64;          Dr6: DWORD64;          Dr7: DWORD64;          //          // Integer registers.          //          Rax: DWORD64;          Rcx: DWORD64;          Rdx: DWORD64;          Rbx: DWORD64;          Rsp: DWORD64;          Rbp: DWORD64;          Rsi: DWORD64;          Rdi: DWORD64;          R8: DWORD64;          R9: DWORD64;          R10: DWORD64;          R11: DWORD64;          R12: DWORD64;          R13: DWORD64;          R14: DWORD64;          R15: DWORD64;          //          // Program counter.          //          Rip: DWORD64;          //          // Floating point state.          //          FltSave: XMM_SAVE_AREA32; // MWE: only translated the FltSave part of the union(*          union  {              XMM_SAVE_AREA32 FltSave;              struct {                  M128A Header[2];                  M128A Legacy[8];                  M128A Xmm0;                  M128A Xmm1;                  M128A Xmm2;                  M128A Xmm3;                  M128A Xmm4;                  M128A Xmm5;                  M128A Xmm6;                  M128A Xmm7;                  M128A Xmm8;                  M128A Xmm9;                  M128A Xmm10;                  M128A Xmm11;                  M128A Xmm12;                  M128A Xmm13;                  M128A Xmm14;                  M128A Xmm15;              };          };*)          //          // Vector registers.          //          VectorRegister: array[0..25] of M128A;          VectorControl: DWORD64;          //          // Special debug control registers.          //          DebugControl: DWORD64;          LastBranchToRip: DWORD64;          LastBranchFromRip: DWORD64;          LastExceptionToRip: DWORD64;          LastExceptionFromRip: DWORD64;      end;{$endif}{$ifdef cpupowerpc32}{$define __HASCONTEXT__}  { __ppc__  }  { Floating point registers returned when CONTEXT_FLOATING_POINT is set  }  { Integer registers returned when CONTEXT_INTEGER is set.   }  { Condition register  }  { Fixed point exception register  }  { The following are set when CONTEXT_CONTROL is set.   }  { Machine status register  }  { Instruction address register  }  { Link register  }  { Control register  }  { Control which context values are returned  }  { Registers returned if CONTEXT_DEBUG_REGISTERS is set.   }  { Breakpoint Register 1  }  { Breakpoint Register 2  }  { Breakpoint Register 3  }  { Breakpoint Register 4  }  { Breakpoint Register 5  }  { Breakpoint Register 6  }  { Debug Status Register  }  { Debug Control Register  }  type     CONTEXT = record          Fpr0 : double;          Fpr1 : double;          Fpr2 : double;          Fpr3 : double;          Fpr4 : double;          Fpr5 : double;          Fpr6 : double;          Fpr7 : double;          Fpr8 : double;          Fpr9 : double;          Fpr10 : double;          Fpr11 : double;          Fpr12 : double;          Fpr13 : double;          Fpr14 : double;          Fpr15 : double;          Fpr16 : double;          Fpr17 : double;          Fpr18 : double;          Fpr19 : double;          Fpr20 : double;          Fpr21 : double;          Fpr22 : double;          Fpr23 : double;          Fpr24 : double;          Fpr25 : double;          Fpr26 : double;          Fpr27 : double;          Fpr28 : double;          Fpr29 : double;          Fpr30 : double;          Fpr31 : double;          Fpscr : double;          Gpr0 : DWORD;          Gpr1 : DWORD;          Gpr2 : DWORD;          Gpr3 : DWORD;          Gpr4 : DWORD;          Gpr5 : DWORD;          Gpr6 : DWORD;          Gpr7 : DWORD;          Gpr8 : DWORD;          Gpr9 : DWORD;          Gpr10 : DWORD;          Gpr11 : DWORD;          Gpr12 : DWORD;          Gpr13 : DWORD;          Gpr14 : DWORD;          Gpr15 : DWORD;          Gpr16 : DWORD;          Gpr17 : DWORD;          Gpr18 : DWORD;          Gpr19 : DWORD;          Gpr20 : DWORD;          Gpr21 : DWORD;          Gpr22 : DWORD;          Gpr23 : DWORD;          Gpr24 : DWORD;          Gpr25 : DWORD;          Gpr26 : DWORD;          Gpr27 : DWORD;          Gpr28 : DWORD;          Gpr29 : DWORD;          Gpr30 : DWORD;          Gpr31 : DWORD;          Cr : DWORD;          Xer : DWORD;          Msr : DWORD;          Iar : DWORD;          Lr : DWORD;          Ctr : DWORD;          ContextFlags : DWORD;          Fill : array[0..2] of DWORD;          Dr0 : DWORD;          Dr1 : DWORD;          Dr2 : DWORD;          Dr3 : DWORD;          Dr4 : DWORD;          Dr5 : DWORD;          Dr6 : DWORD;          Dr7 : DWORD;       end;{$endif}{$ifndef __HASCONTEXT__}  { MWE: placeholder so it won't break compilation on others (CPUARM ?) }  type     CONTEXT = record       end;{$endif}{$undef __HASCONTEXT__}     LPCONTEXT = ^CONTEXT;     _CONTEXT = CONTEXT;     TCONTEXT = CONTEXT;     PCONTEXT = ^CONTEXT;  type     LIST_ENTRY = record          Flink : ^_LIST_ENTRY;          Blink : ^_LIST_ENTRY;       end;     _LIST_ENTRY = LIST_ENTRY;     TLISTENTRY = LIST_ENTRY;     PLISTENTRY = ^LIST_ENTRY;     CRITICAL_SECTION_DEBUG = record          _Type : WORD;          CreatorBackTraceIndex : WORD;          CriticalSection : ^_CRITICAL_SECTION;          ProcessLocksList : LIST_ENTRY;          EntryCount : DWORD;          ContentionCount : DWORD;          Depth : DWORD;          OwnerBackTrace : array[0..4] of PVOID;       end;     LPCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG;     PCRITICAL_SECTION_DEBUG = ^CRITICAL_SECTION_DEBUG;     _CRITICAL_SECTION_DEBUG = CRITICAL_SECTION_DEBUG;     TCRITICALSECTIONDEBUG = CRITICAL_SECTION_DEBUG;     PCRITICALSECTIONDEBUG = ^CRITICAL_SECTION_DEBUG;     CRITICAL_SECTION = TRTLCriticalSection;     _CRITICAL_SECTION = TRTLCriticalSection;     TCRITICAL_SECTION = TRTLCriticalSection;     PCRITICAL_SECTION = PRTLCriticalSection;     LPCRITICAL_SECTION = PRTLCriticalSection;     TCRITICALSECTION = TRTLCriticalSection;     PCRITICALSECTION = PRTLCriticalSection;  { SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;  }     SECURITY_QUALITY_OF_SERVICE = record          Length : DWORD;          ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL;          ContextTrackingMode : BOOLEAN;    // SECURITY_CONTEXT_TRACKING_MODE          EffectiveOnly : BOOLEAN;       end;     PSECURITY_QUALITY_OF_SERVICE = ^SECURITY_QUALITY_OF_SERVICE;     _SECURITY_QUALITY_OF_SERVICE = SECURITY_QUALITY_OF_SERVICE;     TSECURITYQUALITYOFSERVICE = SECURITY_QUALITY_OF_SERVICE;     PSECURITYQUALITYOFSERVICE = ^SECURITY_QUALITY_OF_SERVICE;     CONVCONTEXT = record          cb : UINT;          wFlags : UINT;          wCountryID : UINT;          iCodePage : longint;          dwLangID : DWORD;          dwSecurity : DWORD;          qos : SECURITY_QUALITY_OF_SERVICE;       end;     tagCONVCONTEXT = CONVCONTEXT;     TCONVCONTEXT = CONVCONTEXT;     PCONVCONTEXT = ^CONVCONTEXT;     CONVINFO = record          cb : DWORD;          hUser : DWORD;          hConvPartner : HCONV;          hszSvcPartner : HSZ;          hszServiceReq : HSZ;          hszTopic : HSZ;          hszItem : HSZ;          wFmt : UINT;          wType : UINT;          wStatus : UINT;          wConvst : UINT;          wLastError : UINT;          hConvList : HCONVLIST;          ConvCtxt : CONVCONTEXT;          _hwnd : HWND;          hwndPartner : HWND;       end;     tagCONVINFO = CONVINFO;     TCONVINFO = CONVINFO;     PCONVINFO = ^CONVINFO;     COPYDATASTRUCT = record          dwData : ULONG_PTR;          cbData : DWORD;          lpData : PVOID;       end;     tagCOPYDATASTRUCT = COPYDATASTRUCT;     TCOPYDATASTRUCT = COPYDATASTRUCT;     PCOPYDATASTRUCT = ^COPYDATASTRUCT;     CPINFO = record          MaxCharSize : UINT;          DefaultChar : array[0..(MAX_DEFAULTCHAR)-1] of BYTE;          LeadByte : array[0..(MAX_LEADBYTES)-1] of BYTE;       end;     LPCPINFO = ^CPINFO;     _cpinfo = CPINFO;     Tcpinfo = CPINFO;     Pcpinfo = ^CPINFO;     CPINFOEXA = record        MaxCharSize    : UINT;        DefaultChar    : array[0..(MAX_DEFAULTCHAR)-1] of BYTE;        LeadByte       : array[0..(MAX_LEADBYTES)-1] of BYTE;        DefaultUnicode : WCHAR;        CodePage       : UINT;        CodePageName   : array[0..(MAX_PATH)-1] of CHAR;      end;     LPCPINFOEXA = ^CPINFOEXA;     _cpinfoexA  = CPINFOEXA;     TcpinfoexA  = CPINFOEXA;     PcpinfoexA  = ^CPINFOEXA;     CPINFOEXW = record        MaxCharSize    : UINT;        DefaultChar    : array[0..(MAX_DEFAULTCHAR)-1] of BYTE;        LeadByte       : array[0..(MAX_LEADBYTES)-1] of BYTE;        DefaultUnicode : WCHAR;        CodePage       : UINT;        CodePageName   : array[0..(MAX_PATH)-1] of WCHAR;     end;     LPCPINFOEXW = ^CPINFOEXW;     _cpinfoexW  = CPINFOEXW;     TcpinfoexW  = CPINFOEXW;     PcpinfoexW  = ^CPINFOEXW;{$ifndef UNICODE}     CPINFOEX   = CPINFOEXA;     LPCPINFOEX = PCPINFOEXA;     _cpinfoex  = CPINFOEXA;     Tcpinfoex  = CPINFOEXA;     Pcpinfoex  = PCPINFOEXA;{$ELSE}     CPINFOEX   = CPINFOEXW;     LPCPINFOEX = PCPINFOEXW;     _cpinfoex  = CPINFOEXW;     Tcpinfoex  = CPINFOEXW;     Pcpinfoex  = PCPINFOEXW;{$ENDIF}     CPLINFO = record          idIcon : longint;          idName : longint;          idInfo : longint;          lData : LONG_PTR;       end;     tagCPLINFO = CPLINFO;     TCPLINFO = CPLINFO;     PCPLINFO = ^CPLINFO;     CREATE_PROCESS_DEBUG_INFO = record          hFile : HANDLE;          hProcess : HANDLE;          hThread : HANDLE;          lpBaseOfImage : LPVOID;          dwDebugInfoFileOffset : DWORD;          nDebugInfoSize : DWORD;          lpThreadLocalBase : LPVOID;          lpStartAddress : LPTHREAD_START_ROUTINE;          lpImageName : LPVOID;          fUnicode : WORD;       end;     _CREATE_PROCESS_DEBUG_INFO = CREATE_PROCESS_DEBUG_INFO;     TCREATEPROCESSDEBUGINFO = CREATE_PROCESS_DEBUG_INFO;     PCREATEPROCESSDEBUGINFO = ^CREATE_PROCESS_DEBUG_INFO;     CREATE_THREAD_DEBUG_INFO = record          hThread : HANDLE;          lpThreadLocalBase : LPVOID;          lpStartAddress : LPTHREAD_START_ROUTINE;       end;     _CREATE_THREAD_DEBUG_INFO = CREATE_THREAD_DEBUG_INFO;     TCREATETHREADDEBUGINFO = CREATE_THREAD_DEBUG_INFO;     PCREATETHREADDEBUGINFO = ^CREATE_THREAD_DEBUG_INFO;     CURRENCYFMTA = record          NumDigits     : UINT;          LeadingZero   : UINT;          Grouping      : UINT;          lpDecimalSep  : LPSTR;          lpThousandSep : LPSTR;          NegativeOrder : UINT;          PositiveOrder : UINT;          lpCurrencySymbol : LPSTR;       end;     _currencyfmtA = CURRENCYFMTA;     TcurrencyfmtA = CURRENCYFMTA;     PcurrencyfmtA = ^CURRENCYFMTA;     CURRENCYFMTW = record          NumDigits     : UINT;          LeadingZero   : UINT;          Grouping      : UINT;          lpDecimalSep  : LPWSTR;          lpThousandSep : LPWSTR;          NegativeOrder : UINT;          PositiveOrder : UINT;          lpCurrencySymbol : LPWSTR;       end;     _CURRENCYFMTW = CURRENCYFMTW;     TCURRENCYFMTW = CURRENCYFMTW;     PCURRENCYFMTW = ^CURRENCYFMTW;     {$ifdef Unicode}     _CURRENCYFMT  = CURRENCYFMTW;     CURRENCYFMT   = CURRENCYFMTW;     TCURRENCYFMT  = CURRENCYFMTW;     PCURRENCYFMT  = ^CURRENCYFMTW;     {$else}     _CURRENCYFMT  = CURRENCYFMTA;     CURRENCYFMT   = CURRENCYFMTA;     TCURRENCYFMT  = CURRENCYFMTA;     PCURRENCYFMT  = ^CURRENCYFMTA;     {$endif}     CURSORSHAPE = record          xHotSpot : longint;          yHotSpot : longint;          cx : longint;          cy : longint;          cbWidth : longint;          Planes : BYTE;          BitsPixel : BYTE;       end;     LPCURSORSHAPE = ^CURSORSHAPE;     tagCURSORSHAPE = CURSORSHAPE;     TCURSORSHAPE = CURSORSHAPE;     PCURSORSHAPE = ^CURSORSHAPE;     CWPRETSTRUCT = record          lResult : LRESULT;          lParam : LPARAM;          wParam : WPARAM;          message : DWORD;          hwnd : HWND;       end;     tagCWPRETSTRUCT = CWPRETSTRUCT;     TCWPRETSTRUCT = CWPRETSTRUCT;     PCWPRETSTRUCT = ^CWPRETSTRUCT;     CWPSTRUCT = record          lParam : LPARAM;          wParam : WPARAM;          message : UINT;          hwnd : HWND;       end;     tagCWPSTRUCT = CWPSTRUCT;     TCWPSTRUCT = CWPSTRUCT;     PCWPSTRUCT = ^CWPSTRUCT;     DATATYPES_INFO_1 = record          pName : LPTSTR;       end;     _DATATYPES_INFO_1 = DATATYPES_INFO_1;     TDATATYPESINFO1 = DATATYPES_INFO_1;     PDATATYPESINFO1 = ^DATATYPES_INFO_1;     DDEACK = record          flag0 : word;       end;     TDDEACK = DDEACK;     PDDEACK = ^DDEACK;  const     bm_DDEACK_bAppReturnCode = $FF;     bp_DDEACK_bAppReturnCode = 0;     bm_DDEACK_reserved = $3F00;     bp_DDEACK_reserved = 8;     bm_DDEACK_fBusy = $4000;     bp_DDEACK_fBusy = 14;     bm_DDEACK_fAck = $8000;     bp_DDEACK_fAck = 15;  function bAppReturnCode(var a : DDEACK) : word;  procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word);  function reserved(var a : DDEACK) : word;  procedure set_reserved(var a : DDEACK; __reserved : word);  function fBusy(var a : DDEACK) : word;  procedure set_fBusy(var a : DDEACK; __fBusy : word);  function fAck(var a : DDEACK) : word;  procedure set_fAck(var a : DDEACK; __fAck : word);  type     DDEADVISE = record          flag0 : word;          cfFormat : SHORT;       end;     TDDEADVISE = DDEADVISE;     PDDEADVISE = ^DDEADVISE;  const     bm_DDEADVISE_reserved = $3FFF;     bp_DDEADVISE_reserved = 0;     bm_DDEADVISE_fDeferUpd = $4000;     bp_DDEADVISE_fDeferUpd = 14;     bm_DDEADVISE_fAckReq = $8000;     bp_DDEADVISE_fAckReq = 15;  function reserved(var a : DDEADVISE) : word;  procedure set_reserved(var a : DDEADVISE; __reserved : word);  function fDeferUpd(var a : DDEADVISE) : word;  procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word);  function fAckReq(var a : DDEADVISE) : word;  procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word);  type     DDEDATA = record          flag0 : word;          cfFormat : SHORT;          Value : array[0..0] of BYTE;       end;     PDDEDATA = ^DDEDATA;  const     bm_DDEDATA_unused = $FFF;     bp_DDEDATA_unused = 0;     bm_DDEDATA_fResponse = $1000;     bp_DDEDATA_fResponse = 12;     bm_DDEDATA_fRelease = $2000;     bp_DDEDATA_fRelease = 13;     bm_DDEDATA_reserved = $4000;     bp_DDEDATA_reserved = 14;     bm_DDEDATA_fAckReq = $8000;     bp_DDEDATA_fAckReq = 15;  function unused(var a : DDEDATA) : word;  procedure set_unused(var a : DDEDATA; __unused : word);  function fResponse(var a : DDEDATA) : word;  procedure set_fResponse(var a : DDEDATA; __fResponse : word);  function fRelease(var a : DDEDATA) : word;  procedure set_fRelease(var a : DDEDATA; __fRelease : word);  function reserved(var a : DDEDATA) : word;  procedure set_reserved(var a : DDEDATA; __reserved : word);  function fAckReq(var a : DDEDATA) : word;  procedure set_fAckReq(var a : DDEDATA; __fAckReq : word);  type     DDELN = record          flag0 : word;          cfFormat : SHORT;       end;     TDDELN = DDELN;     PDDELN = ^DDELN;  const     bm_DDELN_unused = $1FFF;     bp_DDELN_unused = 0;     bm_DDELN_fRelease = $2000;     bp_DDELN_fRelease = 13;     bm_DDELN_fDeferUpd = $4000;     bp_DDELN_fDeferUpd = 14;     bm_DDELN_fAckReq = $8000;     bp_DDELN_fAckReq = 15;  function unused(var a : DDELN) : word;  procedure set_unused(var a : DDELN; __unused : word);  function fRelease(var a : DDELN) : word;  procedure set_fRelease(var a : DDELN; __fRelease : word);  function fDeferUpd(var a : DDELN) : word;  procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word);  function fAckReq(var a : DDELN) : word;  procedure set_fAckReq(var a : DDELN; __fAckReq : word);  type     DDEML_MSG_HOOK_DATA = record          uiLo : UINT_PTR;          uiHi : UINT_PTR;          cbData : DWORD;          Data : array[0..7] of DWORD;       end;     tagDDEML_MSG_HOOK_DATA = DDEML_MSG_HOOK_DATA;     TDDEMLMSGHOOKDATA = DDEML_MSG_HOOK_DATA;     PDDEMLMSGHOOKDATA = ^DDEML_MSG_HOOK_DATA;     DDEPOKE = record          flag0 : word;          cfFormat : SHORT;          Value : array[0..0] of BYTE;       end;     TDDEPOKE = DDEPOKE;     PDDEPOKE = ^DDEPOKE;  const     bm_DDEPOKE_unused = $1FFF;     bp_DDEPOKE_unused = 0;     bm_DDEPOKE_fRelease = $2000;     bp_DDEPOKE_fRelease = 13;     bm_DDEPOKE_fReserved = $C000;     bp_DDEPOKE_fReserved = 14;  function unused(var a : DDEPOKE) : word;  procedure set_unused(var a : DDEPOKE; __unused : word);  function fRelease(var a : DDEPOKE) : word;  procedure set_fRelease(var a : DDEPOKE; __fRelease : word);  function fReserved(var a : DDEPOKE) : word;  procedure set_fReserved(var a : DDEPOKE; __fReserved : word);  type     DDEUP = record          flag0 : word;          cfFormat : SHORT;          rgb : array[0..0] of BYTE;       end;     TDDEUP = DDEUP;     PDDEUP = ^DDEUP;  const     bm_DDEUP_unused = $FFF;     bp_DDEUP_unused = 0;     bm_DDEUP_fAck = $1000;     bp_DDEUP_fAck = 12;     bm_DDEUP_fRelease = $2000;     bp_DDEUP_fRelease = 13;     bm_DDEUP_fReserved = $4000;     bp_DDEUP_fReserved = 14;     bm_DDEUP_fAckReq = $8000;     bp_DDEUP_fAckReq = 15;  function unused(var a : DDEUP) : word;  procedure set_unused(var a : DDEUP; __unused : word);  function fAck(var a : DDEUP) : word;  procedure set_fAck(var a : DDEUP; __fAck : word);  function fRelease(var a : DDEUP) : word;  procedure set_fRelease(var a : DDEUP; __fRelease : word);  function fReserved(var a : DDEUP) : word;  procedure set_fReserved(var a : DDEUP; __fReserved : word);  function fAckReq(var a : DDEUP) : word;  procedure set_fAckReq(var a : DDEUP; __fAckReq : word);  type     EXCEPTION_RECORD = record          ExceptionCode : DWORD;          ExceptionFlags : DWORD;          ExceptionRecord : ^_EXCEPTION_RECORD;          ExceptionAddress : PVOID;          NumberParameters : DWORD;          ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of ULONG_PTR;       end;     PEXCEPTION_RECORD = ^EXCEPTION_RECORD;     _EXCEPTION_RECORD = EXCEPTION_RECORD;     TEXCEPTIONRECORD = EXCEPTION_RECORD;     PEXCEPTIONRECORD = ^EXCEPTION_RECORD;     EXCEPTION_DEBUG_INFO = record          ExceptionRecord : EXCEPTION_RECORD;          dwFirstChance : DWORD;       end;     PEXCEPTION_DEBUG_INFO = ^EXCEPTION_DEBUG_INFO;     _EXCEPTION_DEBUG_INFO = EXCEPTION_DEBUG_INFO;     TEXCEPTIONDEBUGINFO = EXCEPTION_DEBUG_INFO;     PEXCEPTIONDEBUGINFO = ^EXCEPTION_DEBUG_INFO;     { Explicit forms to debug targets running on a different architecture (32-bit versus 64-bit)}     EXCEPTION_RECORD32 = record          ExceptionCode : DWORD;          ExceptionFlags : DWORD;          ExceptionRecord : DWORD;          ExceptionAddress : DWORD;          NumberParameters : DWORD;          ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of DWORD;       end;     PEXCEPTION_RECORD32 = ^EXCEPTION_RECORD32;     _EXCEPTION_RECORD32 = EXCEPTION_RECORD32;     TExceptionRecord32 = EXCEPTION_RECORD32;     PExceptionRecord32 = ^EXCEPTION_RECORD32;     EXCEPTION_DEBUG_INFO32 = record          ExceptionRecord : EXCEPTION_RECORD32;          dwFirstChance : DWORD;       end;     PEXCEPTION_DEBUG_INFO32 = ^EXCEPTION_DEBUG_INFO32;     _EXCEPTION_DEBUG_INFO32 = EXCEPTION_DEBUG_INFO32;     TExceptionDebugInfo32 = EXCEPTION_DEBUG_INFO32;     PExceptionDebugInfo32 = ^EXCEPTION_DEBUG_INFO32;     EXCEPTION_RECORD64 = record          ExceptionCode : DWORD;          ExceptionFlags : DWORD;          ExceptionRecord : DWORD64;          ExceptionAddress : DWORD64;          NumberParameters : DWORD;          __unusedAlignment : DWORD;          ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of DWORD64;       end;     PEXCEPTION_RECORD64 = ^EXCEPTION_RECORD64;     _EXCEPTION_RECORD64 = EXCEPTION_RECORD64;     TExceptionRecord64 = EXCEPTION_RECORD64;     PExceptionRecord64 = ^EXCEPTION_RECORD64;     EXCEPTION_DEBUG_INFO64 = record          ExceptionRecord : EXCEPTION_RECORD64;          dwFirstChance : DWORD;       end;     PEXCEPTION_DEBUG_INFO64 = ^EXCEPTION_DEBUG_INFO64;     _EXCEPTION_DEBUG_INFO64 = EXCEPTION_DEBUG_INFO64;     TExceptionDebugInfo64 = EXCEPTION_DEBUG_INFO64;     PExceptionDebugInfo64 = ^EXCEPTION_DEBUG_INFO64;     EXIT_PROCESS_DEBUG_INFO = record          dwExitCode : DWORD;       end;     _EXIT_PROCESS_DEBUG_INFO = EXIT_PROCESS_DEBUG_INFO;     TEXITPROCESSDEBUGINFO = EXIT_PROCESS_DEBUG_INFO;     PEXITPROCESSDEBUGINFO = ^EXIT_PROCESS_DEBUG_INFO;     EXIT_THREAD_DEBUG_INFO = record          dwExitCode : DWORD;       end;     _EXIT_THREAD_DEBUG_INFO = EXIT_THREAD_DEBUG_INFO;     TEXITTHREADDEBUGINFO = EXIT_THREAD_DEBUG_INFO;     PEXITTHREADDEBUGINFO = ^EXIT_THREAD_DEBUG_INFO;     LOAD_DLL_DEBUG_INFO = record          hFile : HANDLE;          lpBaseOfDll : LPVOID;          dwDebugInfoFileOffset : DWORD;          nDebugInfoSize : DWORD;          lpImageName : LPVOID;          fUnicode : WORD;       end;     _LOAD_DLL_DEBUG_INFO = LOAD_DLL_DEBUG_INFO;     TLOADDLLDEBUGINFO = LOAD_DLL_DEBUG_INFO;     PLOADDLLDEBUGINFO = ^LOAD_DLL_DEBUG_INFO;     UNLOAD_DLL_DEBUG_INFO = record          lpBaseOfDll : LPVOID;       end;     _UNLOAD_DLL_DEBUG_INFO = UNLOAD_DLL_DEBUG_INFO;     TUNLOADDLLDEBUGINFO = UNLOAD_DLL_DEBUG_INFO;     PUNLOADDLLDEBUGINFO = ^UNLOAD_DLL_DEBUG_INFO;     OUTPUT_DEBUG_STRING_INFO = record          lpDebugStringData : LPSTR;          fUnicode : WORD;          nDebugStringLength : WORD;       end;     _OUTPUT_DEBUG_STRING_INFO = OUTPUT_DEBUG_STRING_INFO;     TOUTPUTDEBUGSTRINGINFO = OUTPUT_DEBUG_STRING_INFO;     POUTPUTDEBUGSTRINGINFO = ^OUTPUT_DEBUG_STRING_INFO;     RIP_INFO = record          dwError : DWORD;          dwType : DWORD;       end;     _RIP_INFO = RIP_INFO;     TRIPINFO = RIP_INFO;     PRIPINFO = ^RIP_INFO;     DEBUG_EVENT = record          dwDebugEventCode : DWORD;          dwProcessId : DWORD;          dwThreadId : DWORD;              case longint of                 0 : ( Exception : EXCEPTION_DEBUG_INFO );                 1 : ( CreateThread : CREATE_THREAD_DEBUG_INFO );                 2 : ( CreateProcessInfo : CREATE_PROCESS_DEBUG_INFO );                 3 : ( ExitThread : EXIT_THREAD_DEBUG_INFO );                 4 : ( ExitProcess : EXIT_PROCESS_DEBUG_INFO );                 5 : ( LoadDll : LOAD_DLL_DEBUG_INFO );                 6 : ( UnloadDll : UNLOAD_DLL_DEBUG_INFO );                 7 : ( DebugString : OUTPUT_DEBUG_STRING_INFO );                 8 : ( RipInfo : RIP_INFO );       end;     LPDEBUG_EVENT = ^DEBUG_EVENT;     _DEBUG_EVENT = DEBUG_EVENT;     TDEBUGEVENT = DEBUG_EVENT;     PDEBUGEVENT = ^DEBUG_EVENT;     DEBUGHOOKINFO = record          idThread : DWORD;          idThreadInstaller : DWORD;          lParam : LPARAM;          wParam : WPARAM;          code : longint;       end;     tagDEBUGHOOKINFO = DEBUGHOOKINFO;     TDEBUGHOOKINFO = DEBUGHOOKINFO;     PDEBUGHOOKINFO = ^DEBUGHOOKINFO;     DELETEITEMSTRUCT = record          CtlType : UINT;          CtlID : UINT;          itemID : UINT;          hwndItem : HWND;          itemData : ULONG_PTR;       end;     tagDELETEITEMSTRUCT = DELETEITEMSTRUCT;     TDELETEITEMSTRUCT = DELETEITEMSTRUCT;     PDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;     DEV_BROADCAST_HDR = record          dbch_size : ULONG;          dbch_devicetype : ULONG;          dbch_reserved : ULONG;       end;     PDEV_BROADCAST_HDR = ^DEV_BROADCAST_HDR;     _DEV_BROADCAST_HDR = DEV_BROADCAST_HDR;     TDEVBROADCASTHDR = DEV_BROADCAST_HDR;     PDEVBROADCASTHDR = ^DEV_BROADCAST_HDR;     DEV_BROADCAST_OEM = record          dbco_size : DWORD;          dbco_devicetype : DWORD;          dbco_reserved : DWORD;          dbco_identifier : DWORD;          dbco_suppfunc : DWORD;       end;     PDEV_BROADCAST_OEM = ^DEV_BROADCAST_OEM;     _DEV_BROADCAST_OEM = DEV_BROADCAST_OEM;     TDEVBROADCASTOEM = DEV_BROADCAST_OEM;     PDEVBROADCASTOEM = ^DEV_BROADCAST_OEM;     DEV_BROADCAST_PORT = record          dbcp_size : DWORD;          dbcp_devicetype : DWORD;          dbcp_reserved : DWORD;          dbcp_name : array[0..0] of TCHAR;       end;     PDEV_BROADCAST_PORT = ^DEV_BROADCAST_PORT;     _DEV_BROADCAST_PORT = DEV_BROADCAST_PORT;     TDEVBROADCASTPORT = DEV_BROADCAST_PORT;     PDEVBROADCASTPORT = ^DEV_BROADCAST_PORT;     _DEV_BROADCAST_USERDEFINED = record          dbud_dbh : _DEV_BROADCAST_HDR;          dbud_szName : array[0..0] of char;          dbud_rgbUserDefined : array[0..0] of BYTE;       end;     TDEVBROADCASTUSERDEFINED = _DEV_BROADCAST_USERDEFINED;     PDEVBROADCASTUSERDEFINED = ^_DEV_BROADCAST_USERDEFINED;     DEV_BROADCAST_VOLUME = record          dbcv_size : DWORD;          dbcv_devicetype : DWORD;          dbcv_reserved : DWORD;          dbcv_unitmask : DWORD;          dbcv_flags : WORD;       end;     PDEV_BROADCAST_VOLUME = ^DEV_BROADCAST_VOLUME;     _DEV_BROADCAST_VOLUME = DEV_BROADCAST_VOLUME;     TDEVBROADCASTVOLUME = DEV_BROADCAST_VOLUME;     PDEVBROADCASTVOLUME = ^DEV_BROADCAST_VOLUME;     DEVMODEA = record          dmDeviceName : array[0..(CCHDEVICENAME)-1] of AnsiChar;          dmSpecVersion : WORD;          dmDriverVersion : WORD;          dmSize : WORD;          dmDriverExtra : WORD;          dmFields : DWORD;          case byte of            1: (dmOrientation : SmallInt;                dmPaperSize : SmallInt;                dmPaperLength : SmallInt;                dmPaperWidth : SmallInt;                dmScale : SmallInt;                dmCopies : SmallInt;                dmDefaultSource : SmallInt;                dmPrintQuality : SmallInt;                dmColor : SmallInt;                dmDuplex : SmallInt;                dmYResolution : SmallInt;                dmTTOption : SmallInt;                dmCollate : SmallInt;                dmFormName : array[0..(CCHFORMNAME)-1] of AnsiCHAR;                dmLogPixels : WORD;                dmBitsPerPel : DWORD;                dmPelsWidth : DWORD;                dmPelsHeight : DWORD;                dmDisplayFlags : DWORD;                dmDisplayFrequency : DWORD;                dmICMMethod : DWORD;                dmICMIntent : DWORD;                dmMediaType : DWORD;                dmDitherType : DWORD;                dmICCManufacturer : DWORD;                dmICCModel : DWORD               );            2: (dmPosition: POINTL;                dmDisplayOrientation: DWORD;                dmDisplayFixedOutput: DWORD;               );       end;     LPDEVMODEA = ^DEVMODEA;     _DEVMODEA  = DEVMODEA;     TDEVMODEA  = DEVMODEA;     PDEVMODEA  = LPDEVMODEA;     _devicemodeA = DEVMODEA;     devicemodeA  = DEVMODEA;     tdevicemodeA = DEVMODEA;     PDeviceModeA = LPDEVMODEA;     devmodeW   = record                     dmDeviceName   : array[0.. CCHDEVICENAME-1] of WCHAR;                     dmSpecVersion  : WORD;                     dmDriverVersion: WORD;                     dmSize        : WORD;                     dmDriverExtra  : WORD;                     dmFields       : DWORD;                     case byte of                  1: (                     dmOrientation  : short;                     dmPaperSize    : short;                     dmPaperLength  : short;                     dmPaperWidth   : short;                     dmScale       : short;                     dmCopies      : short;                     dmDefaultSource: short;                     dmPrintQuality : short;                     dmColor       : short;                     dmDuplex      : short;                     dmYResolution  : short;                     dmTTOption    : short;                     dmCollate     : short;                     dmFormName     : array [0..CCHFORMNAME-1] of wchar;                     dmLogPixels    : WORD;                     dmBitsPerPel   : DWORD;                     dmPelsWidth    : DWORD;                     dmPelsHeight   : DWORD;                     dmDisplayFlags : DWORD;                     dmDisplayFrequency     : DWORD;                     dmICMMethod    : DWORD;                     dmICMIntent    : DWORD;                     dmMediaType    : DWORD;                     dmDitherType   : DWORD;                     dmReserved1    : DWORD;                     dmReserved2    : DWORD;                     dmPanningWidth : DWORD;                     dmPanningHeight: DWORD;                     );                  2: (dmPosition: POINTL;                      dmDisplayOrientation: DWORD;                      dmDisplayFixedOutput: DWORD;                     );                   end;     LPDEVMODEW   = ^DEVMODEW;     _DEVMODEW    = DEVMODEW;     TDEVMODEW    = DEVMODEW;     PDEVMODEW    = LPDEVMODEW;     _devicemodeW = DEVMODEW;     devicemodeW  = DEVMODEW;     TDeviceModeW = DEVMODEW;     PDeviceModeW = LPDEVMODEW;    {$IFNDEF UNICODE}      DEVMODE      = DEVMODEA;      LPDEVMODE    = ^DEVMODEA;      _DEVMODE     = DEVMODEA;      TDEVMODE     = DEVMODEA;      PDEVMODE     = ^DEVMODEA;    {$ELSE}      DEVMODE      = DEVMODEW;      LPDEVMODE    = ^DEVMODEW;      _DEVMODE     = DEVMODEW;      TDEVMODE     = DEVMODEW;      PDEVMODE     = ^DEVMODEW;    {$ENDIF}      _devicemode  = DEVMODE;    DeviceMode   = DEVMODE;    TDeviceMode  = DEVMODE;    PDeviceMode  = ^DEVMODE;       DEVNAMES = record          wDriverOffset : WORD;          wDeviceOffset : WORD;          wOutputOffset : WORD;          wDefault : WORD;       end;     LPDEVNAMES = ^DEVNAMES;     tagDEVNAMES = DEVNAMES;     TDEVNAMES = DEVNAMES;     PDEVNAMES = ^DEVNAMES;     DIBSECTION = record          dsBm : BITMAP;          dsBmih : BITMAPINFOHEADER;          dsBitfields : array[0..2] of DWORD;          dshSection : HANDLE;          dsOffset : DWORD;       end;     tagDIBSECTION = DIBSECTION;     TDIBSECTION = DIBSECTION;     PDIBSECTION = ^DIBSECTION;     LARGE_INTEGER = record        case byte of          0: (LowPart : DWORD;              HighPart : LONG);          1: (QuadPart : LONGLONG);       end;     PLARGE_INTEGER = ^LARGE_INTEGER;     _LARGE_INTEGER = LARGE_INTEGER;     TLargeInteger = Int64;     PLargeInteger = ^TLargeInteger;     ULARGE_INTEGER = record        case byte of          0: (LowPart : DWORD;              HighPart : DWORD);          1: (QuadPart : ULONGLONG);       end;     PULARGE_INTEGER = ^ULARGE_INTEGER;     _ULARGE_INTEGER = ULARGE_INTEGER;     TULargeInteger = QWord;     PULargeInteger = ^TULargeInteger;     DISK_GEOMETRY = record          Cylinders : LARGE_INTEGER;          MediaType : MEDIA_TYPE;          TracksPerCylinder : DWORD;          SectorsPerTrack : DWORD;          BytesPerSector : DWORD;       end;     _DISK_GEOMETRY = DISK_GEOMETRY;     TDISKGEOMETRY = DISK_GEOMETRY;     PDISKGEOMETRY = ^DISK_GEOMETRY;     DISK_PERFORMANCE = record          BytesRead : LARGE_INTEGER;          BytesWritten : LARGE_INTEGER;          ReadTime : LARGE_INTEGER;          WriteTime : LARGE_INTEGER;          IdleTime : LARGE_INTEGER;          ReadCount : DWORD;          WriteCount : DWORD;          QueueDepth : DWORD;          SplitCount : DWORD;          QueryTime : LARGE_INTEGER;          StorageDeviceNumber : DWORD;          StorageManagerName : array [0..7] of WCHAR;       end;     _DISK_PERFORMANCE = DISK_PERFORMANCE;     TDISKPERFORMANCE = DISK_PERFORMANCE;     PDISKPERFORMANCE = ^DISK_PERFORMANCE;     DLGITEMTEMPLATE = packed record          style : DWORD;          dwExtendedStyle : DWORD;          x : smallint;          y : smallint;          cx : smallint;          cy : smallint;          id : WORD;       end;     LPDLGITEMTEMPLATE = ^DLGITEMTEMPLATE;     TDLGITEMTEMPLATE = DLGITEMTEMPLATE;     PDLGITEMTEMPLATE = ^DLGITEMTEMPLATE;     DLGTEMPLATE = packed record          style : DWORD;          dwExtendedStyle : DWORD;          cdit : WORD;          x : smallint;          y : smallint;          cx : smallint;          cy : smallint;       end;     LPDLGTEMPLATE = ^DLGTEMPLATE;     LPCDLGTEMPLATE = ^DLGTEMPLATE;     TDLGTEMPLATE = DLGTEMPLATE;     PDLGTEMPLATE = ^DLGTEMPLATE;     DOC_INFO_1 = record          pDocName : LPTSTR;          pOutputFile : LPTSTR;          pDatatype : LPTSTR;       end;     _DOC_INFO_1 = DOC_INFO_1;     TDOCINFO1 = DOC_INFO_1;     PDOCINFO1 = ^DOC_INFO_1;     DOC_INFO_2 = record          pDocName : LPTSTR;          pOutputFile : LPTSTR;          pDatatype : LPTSTR;          dwMode : DWORD;          JobId : DWORD;       end;     _DOC_INFO_2 = DOC_INFO_2;     TDOCINFO2 = DOC_INFO_2;     PDOCINFO2 = ^DOC_INFO_2;     DOCINFOA = record          cbSize : longint;          lpszDocName  : LPCSTR;          lpszOutput   : LPCSTR;          lpszDatatype : LPCSTR;          fwType : DWORD;       end;     TDOCINFOA = DOCINFOA;     PDOCINFOa = ^DOCINFOA;     DOCINFOW = record          cbSize : longint;          lpszDocName  : LPCWSTR;          lpszOutput   : LPCWSTR;          lpszDatatype : LPCWSTR;          fwType : DWORD;       end;     TDOCINFOW = DOCINFOW;     PDOCINFOW = ^DOCINFOW;     {$ifdef Unicode}     DOCINFO   = DOCINFOW;     TDOCINFO  = DOCINFOW;     PDOCINFO  = ^DOCINFOW;     {$else}     DOCINFO   = DOCINFOA;     TDOCINFO  = DOCINFOA;     PDOCINFO  = ^DOCINFOA;     {$endif}     DRAGLISTINFO = record          uNotification : UINT;          hWnd : HWND;          ptCursor : POINT;       end;     LPDRAGLISTINFO = ^DRAGLISTINFO;     TDRAGLISTINFO = DRAGLISTINFO;     PDRAGLISTINFO = ^DRAGLISTINFO;     DRAWITEMSTRUCT = record          CtlType : UINT;          CtlID : UINT;          itemID : UINT;          itemAction : UINT;          itemState : UINT;          hwndItem : HWND;          hDC : HDC;          rcItem : RECT;          itemData : ULONG_PTR;       end;     LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;     tagDRAWITEMSTRUCT = DRAWITEMSTRUCT;     TDRAWITEMSTRUCT = DRAWITEMSTRUCT;     PDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;     DRAWTEXTPARAMS = record          cbSize : UINT;          iTabLength : longint;          iLeftMargin : longint;          iRightMargin : longint;          uiLengthDrawn : UINT;       end;     LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;     TDRAWTEXTPARAMS = DRAWTEXTPARAMS;     PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;     PARTITION_INFORMATION = record          StartingOffset : LARGE_INTEGER;          PartitionLength: LARGE_INTEGER;          HiddenSectors  : DWORD;	  PartitionNumber: DWORD;          PartitionType  : BYTE;	  BootIndicator       : BYTEBOOL;          RecognizedPartition : BYTEBOOL;          RewritePartition    : BYTEBOOL;       end;     _PARTITION_INFORMATION = PARTITION_INFORMATION;     TPARTITIONINFORMATION = PARTITION_INFORMATION;     PPARTITIONINFORMATION = ^PARTITION_INFORMATION;     PARTITION_INFORMATION_GPT = record		                   PartitionType  : TGUID;				   PartitionID    : TGUID;				   Attributes     : DWORD64;				   Name		  : array[0..35] OF WCHAR;				  end; 	     TPARTITION_INFORMATION_GPT= PARTITION_INFORMATION_GPT;     PPARTITION_INFORMATION_GPT= ^PARTITION_INFORMATION_GPT;     PARTITION_INFORMATION_MBR = record		                   PartitionType  : Byte;				   BootIndicator  : ByteBool;				   RecognizedPartition : ByteBool;				   HiddenSectors  : DWORD;				  end; 	     TPARTITION_INFORMATION_MBR=  PARTITION_INFORMATION_MBR;     PPARTITION_INFORMATION_MBR= ^PARTITION_INFORMATION_MBR;     SET_PARTITION_INFORMATION = record          PartitionType : BYTE;       end;     _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION;     TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION;     PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION;     SET_PARTITION_INFORMATION_MBR  = PARTITION_INFORMATION;     TSET_PARTITION_INFORMATION_MBR = PARTITION_INFORMATION;     SET_PARTITION_INFORMATION_GPT  = PARTITION_INFORMATION_GPT;     TSET_PARTITION_INFORMATION_GPT = PARTITION_INFORMATION_GPT;     SET_PARTITION_INFORMATION_EX   = record                                      PartitionStyle : TPartition_Style;				      case integer of					0 : (mbr : SET_PARTITION_INFORMATION_MBR);					1 : (GPT : SET_PARTITION_INFORMATION_GPT);				      end;     TSET_PARTITION_INFORMATION_EX  = SET_PARTITION_INFORMATION_EX;     PSET_PARTITION_INFORMATION_EX  = ^SET_PARTITION_INFORMATION_EX;     CREATE_DISK_GPT = record			 DiskID 	   : TGUID;			 MaxPartitionCount : DWord;		        end;     TCREATE_DISK_GPT = CREATE_DISK_GPT;     PCREATE_DISK_GPT = ^TCREATE_DISK_GPT;     CREATE_DISK_MBR = record			 Signature 	   : DWord;		        end;     TCREATE_DISK_MBR = CREATE_DISK_MBR;     PCREATE_DISK_MBR = ^TCREATE_DISK_MBR;     CREATE_DISK  = record		       PartitionStyle : TPartition_Style;		       case integer of			 0: ( MBR : Create_Disk_MBR);		         1: ( GPT : Create_Disk_GPT);			      end;     TCREATE_DISK = CREATE_DISK;     PCREATE_DISK = ^TCREATE_DISK;     GET_LENGTH_INFORMATION = record	                        Length : LARGE_INTEGER;			      end;     TGET_LENGTH_INFORMATION = GET_LENGTH_INFORMATION;     PGET_LENGTH_INFORMATION = ^GET_LENGTH_INFORMATION;     PARTITION_INFORMATION_EX = record	  PartitionStyle  : TPartition_Style;          StartingOffset  : LARGE_INTEGER;          PartitionLength : LARGE_INTEGER;	  PartitionNumber : DWORD;          RewritePartition: BYTEBOOL;	  case integer of	    0: ( MBR : PARTITION_INFORMATION_MBR);	    1: ( GPT : PARTITION_INFORMATION_GPT);	       end;     _PARTITION_INFORMATION_EX = PARTITION_INFORMATION_EX;     TPARTITIONINFORMATION_EX  = PARTITION_INFORMATION_EX;     PPARTITIONINFORMATION_EX  = ^PARTITION_INFORMATION_EX;     DRIVE_LAYOUT_INFORMATION = record          PartitionCount : DWORD;          Signature : DWORD;          PartitionEntry : array[0..0] of PARTITION_INFORMATION;       end;     _DRIVE_LAYOUT_INFORMATION = DRIVE_LAYOUT_INFORMATION;     TDRIVELAYOUTINFORMATION = DRIVE_LAYOUT_INFORMATION;     PDRIVELAYOUTINFORMATION = ^DRIVE_LAYOUT_INFORMATION;     DRIVER_INFO_1 = record          pName : LPTSTR;       end;     _DRIVER_INFO_1 = DRIVER_INFO_1;     TDRIVERINFO1 = DRIVER_INFO_1;     PDRIVERINFO1 = ^DRIVER_INFO_1;     DRIVER_INFO_2 = record          cVersion : DWORD;          pName : LPTSTR;          pEnvironment : LPTSTR;          pDriverPath : LPTSTR;          pDataFile : LPTSTR;          pConfigFile : LPTSTR;       end;     _DRIVER_INFO_2 = DRIVER_INFO_2;     TDRIVERINFO2 = DRIVER_INFO_2;     PDRIVERINFO2 = ^DRIVER_INFO_2;     DRIVER_INFO_3 = record          cVersion : DWORD;          pName : LPTSTR;          pEnvironment : LPTSTR;          pDriverPath : LPTSTR;          pDataFile : LPTSTR;          pConfigFile : LPTSTR;          pHelpFile : LPTSTR;          pDependentFiles : LPTSTR;          pMonitorName : LPTSTR;          pDefaultDataType : LPTSTR;       end;     _DRIVER_INFO_3 = DRIVER_INFO_3;     TDRIVERINFO3 = DRIVER_INFO_3;     PDRIVERINFO3 = ^DRIVER_INFO_3;     EDITSTREAM = packed record          dwCookie : DWORD_PTR;          dwError : DWORD;          pfnCallback : EDITSTREAMCALLBACK;       end;     _editstream = EDITSTREAM;     Teditstream = EDITSTREAM;     Peditstream = ^EDITSTREAM;     EMR = record          iType : DWORD;          nSize : DWORD;       end;     tagEMR = EMR;     TEMR = EMR;     PEMR = ^EMR;     EMRANGLEARC = record          emr : EMR;          ptlCenter : POINTL;          nRadius : DWORD;          eStartAngle : Single;          eSweepAngle : Single;       end;     tagEMRANGLEARC = EMRANGLEARC;     TEMRANGLEARC = EMRANGLEARC;     PEMRANGLEARC = ^EMRANGLEARC;     EMRARC = record          emr : EMR;          rclBox : RECTL;          ptlStart : POINTL;          ptlEnd : POINTL;       end;     tagEMRARC = EMRARC;     TEMRARC = EMRARC;     PEMRARC = ^EMRARC;     EMRARCTO = EMRARC;     TEMRARCTO = EMRARC;     PEMRARCTO = ^EMRARC;     EMRCHORD = EMRARC;     TEMRCHORD = EMRARC;     PEMRCHORD = ^EMRARC;     EMRPIE = EMRARC;     TEMRPIE = EMRARC;     PEMRPIE = ^EMRARC;     XFORM = record          eM11 : Single;          eM12 : Single;          eM21 : Single;          eM22 : Single;          eDx : Single;          eDy : Single;       end;     LPXFORM = ^XFORM;     _XFORM = XFORM;     TXFORM = XFORM;     PXFORM = ^XFORM;     EMRBITBLT = record          emr : EMR;          rclBounds : RECTL;          xDest : LONG;          yDest : LONG;          cxDest : LONG;          cyDest : LONG;          dwRop : DWORD;          xSrc : LONG;          ySrc : LONG;          xformSrc : XFORM;          crBkColorSrc : COLORREF;          iUsageSrc : DWORD;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;       end;     tagEMRBITBLT = EMRBITBLT;     TEMRBITBLT = EMRBITBLT;     PEMRBITBLT = ^EMRBITBLT;     LOGBRUSH = record          lbStyle : UINT;          lbColor : COLORREF;          lbHatch : ULONG_PTR;       end;     tagLOGBRUSH = LOGBRUSH;     TLOGBRUSH = LOGBRUSH;     PLOGBRUSH = ^LOGBRUSH;     EMRCREATEBRUSHINDIRECT = record          emr : EMR;          ihBrush : DWORD;          lb : LOGBRUSH;       end;     tagEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT;     TEMRCREATEBRUSHINDIRECT = EMRCREATEBRUSHINDIRECT;     PEMRCREATEBRUSHINDIRECT = ^EMRCREATEBRUSHINDIRECT;     LCSCSTYPE = LONG;     LCSGAMUTMATCH = LONG;     LOGCOLORSPACEA = record          lcsSignature : DWORD;          lcsVersion : DWORD;          lcsSize : DWORD;          lcsCSType : LCSCSTYPE;          lcsIntent : LCSGAMUTMATCH;          lcsEndpoints : CIEXYZTRIPLE;          lcsGammaRed : DWORD;          lcsGammaGreen : DWORD;          lcsGammaBlue : DWORD;          lcsFilename : array[0..(MAX_PATH)-1] of ANSICHAR;       end;     LPLOGCOLORSPACEA  = ^LOGCOLORSPACEA;     tagLOGCOLORSPACEA = LOGCOLORSPACEA;     TLOGCOLORSPACEA   = LOGCOLORSPACEA;     PLOGCOLORSPACEA   = ^LOGCOLORSPACEA;     LOGCOLORSPACEW = record          lcsSignature : DWORD;          lcsVersion : DWORD;          lcsSize : DWORD;          lcsCSType : LCSCSTYPE;          lcsIntent : LCSGAMUTMATCH;          lcsEndpoints : CIEXYZTRIPLE;          lcsGammaRed : DWORD;          lcsGammaGreen : DWORD;          lcsGammaBlue : DWORD;          lcsFilename : array[0..(MAX_PATH)-1] of WIDECHAR;       end;     LPLOGCOLORSPACEW  = ^LOGCOLORSPACEW;     tagLOGCOLORSPACEW = LOGCOLORSPACEW;     TLOGCOLORSPACEW   = LOGCOLORSPACEW;     PLOGCOLORSPACEW   = ^LOGCOLORSPACEW;     {$ifdef UNICODE}        LPLOGCOLORSPACE  = PLOGCOLORSPACEW;        tagLOGCOLORSPACE = LOGCOLORSPACEW;        TLOGCOLORSPACE   = LOGCOLORSPACEW;        LOGCOLORSPACE    = LOGCOLORSPACEW;        PLOGCOLORSPACE   = PLOGCOLORSPACEW;     {$else}        LPLOGCOLORSPACE  = PLOGCOLORSPACEA;        tagLOGCOLORSPACE = LOGCOLORSPACEA;        TLOGCOLORSPACE   = LOGCOLORSPACEA;        LOGCOLORSPACE    = LOGCOLORSPACEA;        PLOGCOLORSPACE   = PLOGCOLORSPACEA;     {$endif}     EMRCREATECOLORSPACE = record          emr : EMR;          ihCS : DWORD;          lcs : LOGCOLORSPACE;       end;     tagEMRCREATECOLORSPACE = EMRCREATECOLORSPACE;     TEMRCREATECOLORSPACE = EMRCREATECOLORSPACE;     PEMRCREATECOLORSPACE = ^EMRCREATECOLORSPACE;     EMRCREATEDIBPATTERNBRUSHPT = record          emr : EMR;          ihBrush : DWORD;          iUsage : DWORD;          offBmi : DWORD;          cbBmi : DWORD;          offBits : DWORD;          cbBits : DWORD;       end;     tagEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT;     TEMRCREATEDIBPATTERNBRUSHPT = EMRCREATEDIBPATTERNBRUSHPT;     PEMRCREATEDIBPATTERNBRUSHPT = ^EMRCREATEDIBPATTERNBRUSHPT;     EMRCREATEMONOBRUSH = record          emr : EMR;          ihBrush : DWORD;          iUsage : DWORD;          offBmi : DWORD;          cbBmi : DWORD;          offBits : DWORD;          cbBits : DWORD;       end;     tagEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH;     TEMRCREATEMONOBRUSH = EMRCREATEMONOBRUSH;     PEMRCREATEMONOBRUSH = ^EMRCREATEMONOBRUSH;     PALETTEENTRY = record          peRed : BYTE;          peGreen : BYTE;          peBlue : BYTE;          peFlags : BYTE;       end;     LPPALETTEENTRY = ^PALETTEENTRY;     tagPALETTEENTRY = PALETTEENTRY;     TPALETTEENTRY = PALETTEENTRY;     PPALETTEENTRY = ^PALETTEENTRY;     LOGPALETTE = record          palVersion : WORD;          palNumEntries : WORD;          palPalEntry : array[0..0] of PALETTEENTRY;       end;     LPLOGPALETTE = ^LOGPALETTE;     tagLOGPALETTE = LOGPALETTE;     TLOGPALETTE = LOGPALETTE;     PLOGPALETTE = ^LOGPALETTE;     EMRCREATEPALETTE = record          emr : EMR;          ihPal : DWORD;          lgpl : LOGPALETTE;       end;     tagEMRCREATEPALETTE = EMRCREATEPALETTE;     TEMRCREATEPALETTE = EMRCREATEPALETTE;     PEMRCREATEPALETTE = ^EMRCREATEPALETTE;     LOGPEN = record          lopnStyle : UINT;          lopnWidth : POINT;          lopnColor : COLORREF;       end;     tagLOGPEN = LOGPEN;     TLOGPEN = LOGPEN;     PLOGPEN = ^LOGPEN;     EMRCREATEPEN = record          emr : EMR;          ihPen : DWORD;          lopn : LOGPEN;       end;     tagEMRCREATEPEN = EMRCREATEPEN;     TEMRCREATEPEN = EMRCREATEPEN;     PEMRCREATEPEN = ^EMRCREATEPEN;     EMRELLIPSE = record          emr : EMR;          rclBox : RECTL;       end;     tagEMRELLIPSE = EMRELLIPSE;     TEMRELLIPSE = EMRELLIPSE;     PEMRELLIPSE = ^EMRELLIPSE;     EMRRECTANGLE = EMRELLIPSE;     TEMRRECTANGLE = EMRELLIPSE;     PEMRRECTANGLE = ^EMRELLIPSE;     EMREOF = record          emr : EMR;          nPalEntries : DWORD;          offPalEntries : DWORD;          nSizeLast : DWORD;       end;     tagEMREOF = EMREOF;     TEMREOF = EMREOF;     PEMREOF = ^EMREOF;     EMREXCLUDECLIPRECT = record          emr : EMR;          rclClip : RECTL;       end;     tagEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT;     TEMREXCLUDECLIPRECT = EMREXCLUDECLIPRECT;     PEMREXCLUDECLIPRECT = ^EMREXCLUDECLIPRECT;     EMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT;     TEMRINTERSECTCLIPRECT = EMREXCLUDECLIPRECT;     PEMRINTERSECTCLIPRECT = ^EMREXCLUDECLIPRECT;     PANOSE = record          bFamilyType : BYTE;          bSerifStyle : BYTE;          bWeight : BYTE;          bProportion : BYTE;          bContrast : BYTE;          bStrokeVariation : BYTE;          bArmStyle : BYTE;          bLetterform : BYTE;          bMidline : BYTE;          bXHeight : BYTE;       end;     tagPANOSE = PANOSE;     TPANOSE = PANOSE;     PPANOSE = ^PANOSE;     EXTLOGFONTA = record          elfLogFont : LOGFONT;          elfFullName : array[0..(LF_FULLFACESIZE)-1] of AnsiCHAR;          elfStyle : array[0..(LF_FACESIZE)-1] of AnsiCHAR;          elfVersion : DWORD;          elfStyleSize : DWORD;          elfMatch : DWORD;          elfReserved : DWORD;          elfVendorId : array[0..(ELF_VENDOR_SIZE)-1] of BYTE;          elfCulture : DWORD;          elfPanose : PANOSE;       end;     LPEXTLOGFONTA  = ^EXTLOGFONTA;     tagEXTLOGFONTA = EXTLOGFONTA;     TEXTLOGFONTA   = EXTLOGFONTA;     PEXTLOGFONTA   = LPEXTLOGFONTA;      EXTLOGFONTW    = record       elfLogFont   :LOGFONTW;       elfFullName  :array[0..(LF_FULLFACESIZE) - 1] of WCHAR;       elfStyle     :array[0..(LF_FACESIZE) - 1] of WCHAR;       elfVersion   :DWORD;       elfStyleSize :DWORD;       elfMatch     :DWORD;       elfReserved  :DWORD;       elfVendorId  :array[0..(ELF_VENDOR_SIZE) - 1] of Byte;       elfCulture   :DWORD;       elfPanose    :PANOSE;      end;     LPEXTLOGFONTW  = ^EXTLOGFONTW;     tagEXTLOGFONTW = EXTLOGFONTW;     TEXTLOGFONTW   = EXTLOGFONTW;     PEXTLOGFONTW   = ^EXTLOGFONTW;      {$IFNDEF UNICODE}      EXTLOGFONT     = EXTLOGFONTA;      LPEXTLOGFONT   = ^EXTLOGFONTA;      tagEXTLOGFONT  = EXTLOGFONTA;      TEXTLOGFONT    = EXTLOGFONTA;      PEXTLOGFONT    = ^EXTLOGFONTA;    {$ELSE}      EXTLOGFONT     = EXTLOGFONTW;      LPEXTLOGFONT   = ^EXTLOGFONTW;      tagEXTLOGFONT  = EXTLOGFONTW;      TEXTLOGFONT    = EXTLOGFONTW;      PEXTLOGFONT    = ^EXTLOGFONTW;    {$ENDIF}     EMREXTCREATEFONTINDIRECTW = record          emr : EMR;          ihFont : DWORD;          elfw : EXTLOGFONTW;       end;     tagEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW;     TEMREXTCREATEFONTINDIRECTW = EMREXTCREATEFONTINDIRECTW;     PEMREXTCREATEFONTINDIRECTW = ^EMREXTCREATEFONTINDIRECTW;     EXTLOGPEN = record          elpPenStyle : DWORD;          elpWidth : DWORD;          elpBrushStyle : UINT;          elpColor : COLORREF;          elpHatch : ULONG_PTR;          elpNumEntries : DWORD;          elpStyleEntry : array[0..0] of DWORD;       end;     tagEXTLOGPEN = EXTLOGPEN;     TEXTLOGPEN = EXTLOGPEN;     PEXTLOGPEN = ^EXTLOGPEN;     EMREXTCREATEPEN = record          emr : EMR;          ihPen : DWORD;          offBmi : DWORD;          cbBmi : DWORD;          offBits : DWORD;          cbBits : DWORD;          elp : EXTLOGPEN;       end;     tagEMREXTCREATEPEN = EMREXTCREATEPEN;     TEMREXTCREATEPEN = EMREXTCREATEPEN;     PEMREXTCREATEPEN = ^EMREXTCREATEPEN;     EMREXTFLOODFILL = record          emr : EMR;          ptlStart : POINTL;          crColor : COLORREF;          iMode : DWORD;       end;     tagEMREXTFLOODFILL = EMREXTFLOODFILL;     TEMREXTFLOODFILL = EMREXTFLOODFILL;     PEMREXTFLOODFILL = ^EMREXTFLOODFILL;     EMREXTSELECTCLIPRGN = record          emr : EMR;          cbRgnData : DWORD;          iMode : DWORD;          RgnData : array[0..0] of BYTE;       end;     tagEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN;     TEMREXTSELECTCLIPRGN = EMREXTSELECTCLIPRGN;     PEMREXTSELECTCLIPRGN = ^EMREXTSELECTCLIPRGN;     EMRTEXT = record          ptlReference : POINTL;          nChars : DWORD;          offString : DWORD;          fOptions : DWORD;          rcl : RECTL;          offDx : DWORD;       end;     tagEMRTEXT = EMRTEXT;     TEMRTEXT = EMRTEXT;     PEMRTEXT = ^EMRTEXT;     EMREXTTEXTOUTA = record          emr : EMR;          rclBounds : RECTL;          iGraphicsMode : DWORD;          exScale : Single;          eyScale : Single;          emrtext : EMRTEXT;       end;     tagEMREXTTEXTOUTA = EMREXTTEXTOUTA;     TEMREXTTEXTOUTA = EMREXTTEXTOUTA;     PEMREXTTEXTOUTA = ^EMREXTTEXTOUTA;     EMREXTTEXTOUTW = EMREXTTEXTOUTA;     TEMREXTTEXTOUTW = EMREXTTEXTOUTA;     PEMREXTTEXTOUTW = ^EMREXTTEXTOUTA;     EMRFILLPATH = record          emr : EMR;          rclBounds : RECTL;       end;     tagEMRFILLPATH = EMRFILLPATH;     TEMRFILLPATH = EMRFILLPATH;     PEMRFILLPATH = ^EMRFILLPATH;     EMRSTROKEANDFILLPATH = EMRFILLPATH;     TEMRSTROKEANDFILLPATH = EMRFILLPATH;     PEMRSTROKEANDFILLPATH = ^EMRFILLPATH;     EMRSTROKEPATH = EMRFILLPATH;     TEMRSTROKEPATH = EMRFILLPATH;     PEMRSTROKEPATH = ^EMRFILLPATH;     EMRFILLRGN = record          emr : EMR;          rclBounds : RECTL;          cbRgnData : DWORD;          ihBrush : DWORD;          RgnData : array[0..0] of BYTE;       end;     tagEMRFILLRGN = EMRFILLRGN;     TEMRFILLRGN = EMRFILLRGN;     PEMRFILLRGN = ^EMRFILLRGN;     EMRFORMAT = record          dSignature : DWORD;          nVersion : DWORD;          cbData : DWORD;          offData : DWORD;       end;     tagEMRFORMAT = EMRFORMAT;     TEMRFORMAT = EMRFORMAT;     PEMRFORMAT = ^EMRFORMAT;     SIZE = TSize;     LPSIZE = PSIZE;     tagSIZE = SIZE;     SIZEL = SIZE;     TSIZEL = SIZE;     PSIZEL = ^SIZE;     LPSIZEL = ^SIZE;     EMRFRAMERGN = record          emr : EMR;          rclBounds : RECTL;          cbRgnData : DWORD;          ihBrush : DWORD;          szlStroke : SIZEL;          RgnData : array[0..0] of BYTE;       end;     tagEMRFRAMERGN = EMRFRAMERGN;     TEMRFRAMERGN = EMRFRAMERGN;     PEMRFRAMERGN = ^EMRFRAMERGN;     EMRGDICOMMENT = record          emr : EMR;          cbData : DWORD;          Data : array[0..0] of BYTE;       end;     tagEMRGDICOMMENT = EMRGDICOMMENT;     TEMRGDICOMMENT = EMRGDICOMMENT;     PEMRGDICOMMENT = ^EMRGDICOMMENT;     EMRINVERTRGN = record          emr : EMR;          rclBounds : RECTL;          cbRgnData : DWORD;          RgnData : array[0..0] of BYTE;       end;     tagEMRINVERTRGN = EMRINVERTRGN;     TEMRINVERTRGN = EMRINVERTRGN;     PEMRINVERTRGN = ^EMRINVERTRGN;     EMRPAINTRGN = EMRINVERTRGN;     TEMRPAINTRGN = EMRINVERTRGN;     PEMRPAINTRGN = ^EMRINVERTRGN;     EMRLINETO = record          emr : EMR;          ptl : POINTL;       end;     tagEMRLINETO = EMRLINETO;     TEMRLINETO = EMRLINETO;     PEMRLINETO = ^EMRLINETO;     EMRMOVETOEX = EMRLINETO;     TEMRMOVETOEX = EMRLINETO;     PEMRMOVETOEX = ^EMRLINETO;     EMRMASKBLT = record          emr : EMR;          rclBounds : RECTL;          xDest : LONG;          yDest : LONG;          cxDest : LONG;          cyDest : LONG;          dwRop : DWORD;          xSrc : LONG;          ySrc : LONG;          xformSrc : XFORM;          crBkColorSrc : COLORREF;          iUsageSrc : DWORD;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;          xMask : LONG;          yMask : LONG;          iUsageMask : DWORD;          offBmiMask : DWORD;          cbBmiMask : DWORD;          offBitsMask : DWORD;          cbBitsMask : DWORD;       end;     tagEMRMASKBLT = EMRMASKBLT;     TEMRMASKBLT = EMRMASKBLT;     PEMRMASKBLT = ^EMRMASKBLT;     EMRMODIFYWORLDTRANSFORM = record          emr : EMR;          xform : XFORM;          iMode : DWORD;       end;     tagEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM;     TEMRMODIFYWORLDTRANSFORM = EMRMODIFYWORLDTRANSFORM;     PEMRMODIFYWORLDTRANSFORM = ^EMRMODIFYWORLDTRANSFORM;     EMROFFSETCLIPRGN = record          emr : EMR;          ptlOffset : POINTL;       end;     tagEMROFFSETCLIPRGN = EMROFFSETCLIPRGN;     TEMROFFSETCLIPRGN = EMROFFSETCLIPRGN;     PEMROFFSETCLIPRGN = ^EMROFFSETCLIPRGN;     EMRPLGBLT = record          emr : EMR;          rclBounds : RECTL;          aptlDest : array[0..2] of POINTL;          xSrc : LONG;          ySrc : LONG;          cxSrc : LONG;          cySrc : LONG;          xformSrc : XFORM;          crBkColorSrc : COLORREF;          iUsageSrc : DWORD;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;          xMask : LONG;          yMask : LONG;          iUsageMask : DWORD;          offBmiMask : DWORD;          cbBmiMask : DWORD;          offBitsMask : DWORD;          cbBitsMask : DWORD;       end;     tagEMRPLGBLT = EMRPLGBLT;     TEMRPLGBLT = EMRPLGBLT;     PEMRPLGBLT = ^EMRPLGBLT;     EMRPOLYDRAW = record          emr : EMR;          rclBounds : RECTL;          cptl : DWORD;          aptl : array[0..0] of POINTL;          abTypes : array[0..0] of BYTE;       end;     tagEMRPOLYDRAW = EMRPOLYDRAW;     TEMRPOLYDRAW = EMRPOLYDRAW;     PEMRPOLYDRAW = ^EMRPOLYDRAW;     EMRPOLYDRAW16 = record          emr : EMR;          rclBounds : RECTL;          cpts : DWORD;          apts : array[0..0] of POINTS;          abTypes : array[0..0] of BYTE;       end;     tagEMRPOLYDRAW16 = EMRPOLYDRAW16;     TEMRPOLYDRAW16 = EMRPOLYDRAW16;     PEMRPOLYDRAW16 = ^EMRPOLYDRAW16;     EMRPOLYLINE = record          emr : EMR;          rclBounds : RECTL;          cptl : DWORD;          aptl : array[0..0] of POINTL;       end;     tagEMRPOLYLINE = EMRPOLYLINE;     TEMRPOLYLINE = EMRPOLYLINE;     PEMRPOLYLINE = ^EMRPOLYLINE;     EMRPOLYBEZIER = EMRPOLYLINE;     TEMRPOLYBEZIER = EMRPOLYLINE;     PEMRPOLYBEZIER = ^EMRPOLYLINE;     EMRPOLYGON = EMRPOLYLINE;     TEMRPOLYGON = EMRPOLYLINE;     PEMRPOLYGON = ^EMRPOLYLINE;     EMRPOLYBEZIERTO = EMRPOLYLINE;     TEMRPOLYBEZIERTO = EMRPOLYLINE;     PEMRPOLYBEZIERTO = ^EMRPOLYLINE;     EMRPOLYLINETO = EMRPOLYLINE;     TEMRPOLYLINETO = EMRPOLYLINE;     PEMRPOLYLINETO = ^EMRPOLYLINE;     EMRPOLYLINE16 = record          emr : EMR;          rclBounds : RECTL;          cpts : DWORD;          apts : array[0..0] of POINTS;       end;     tagEMRPOLYLINE16 = EMRPOLYLINE16;     TEMRPOLYLINE16 = EMRPOLYLINE16;     PEMRPOLYLINE16 = ^EMRPOLYLINE16;     EMRPOLYBEZIER16 = EMRPOLYLINE16;     TEMRPOLYBEZIER16 = EMRPOLYLINE16;     PEMRPOLYBEZIER16 = ^EMRPOLYLINE16;     EMRPOLYGON16 = EMRPOLYLINE16;     TEMRPOLYGON16 = EMRPOLYLINE16;     PEMRPOLYGON16 = ^EMRPOLYLINE16;     EMRPOLYBEZIERTO16 = EMRPOLYLINE16;     TEMRPOLYBEZIERTO16 = EMRPOLYLINE16;     PEMRPOLYBEZIERTO16 = ^EMRPOLYLINE16;     EMRPOLYLINETO16 = EMRPOLYLINE16;     TEMRPOLYLINETO16 = EMRPOLYLINE16;     PEMRPOLYLINETO16 = ^EMRPOLYLINE16;     EMRPOLYPOLYLINE = record          emr : EMR;          rclBounds : RECTL;          nPolys : DWORD;          cptl : DWORD;          aPolyCounts : array[0..0] of DWORD;          aptl : array[0..0] of POINTL;       end;     tagEMRPOLYPOLYLINE = EMRPOLYPOLYLINE;     TEMRPOLYPOLYLINE = EMRPOLYPOLYLINE;     PEMRPOLYPOLYLINE = ^EMRPOLYPOLYLINE;     EMRPOLYPOLYGON = EMRPOLYPOLYLINE;     TEMRPOLYPOLYGON = EMRPOLYPOLYLINE;     PEMRPOLYPOLYGON = ^EMRPOLYPOLYLINE;     EMRPOLYPOLYLINE16 = record          emr : EMR;          rclBounds : RECTL;          nPolys : DWORD;          cpts : DWORD;          aPolyCounts : array[0..0] of DWORD;          apts : array[0..0] of POINTS;       end;     tagEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16;     TEMRPOLYPOLYLINE16 = EMRPOLYPOLYLINE16;     PEMRPOLYPOLYLINE16 = ^EMRPOLYPOLYLINE16;     EMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16;     TEMRPOLYPOLYGON16 = EMRPOLYPOLYLINE16;     PEMRPOLYPOLYGON16 = ^EMRPOLYPOLYLINE16;     EMRPOLYTEXTOUTA = record          emr : EMR;          rclBounds : RECTL;          iGraphicsMode : DWORD;          exScale : Single;          eyScale : Single;          cStrings : LONG;          aemrtext : array[0..0] of EMRTEXT;       end;     tagEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA;     TEMRPOLYTEXTOUTA = EMRPOLYTEXTOUTA;     PEMRPOLYTEXTOUTA = ^EMRPOLYTEXTOUTA;     EMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA;     TEMRPOLYTEXTOUTW = EMRPOLYTEXTOUTA;     PEMRPOLYTEXTOUTW = ^EMRPOLYTEXTOUTA;     EMRRESIZEPALETTE = record          emr : EMR;          ihPal : DWORD;          cEntries : DWORD;       end;     tagEMRRESIZEPALETTE = EMRRESIZEPALETTE;     TEMRRESIZEPALETTE = EMRRESIZEPALETTE;     PEMRRESIZEPALETTE = ^EMRRESIZEPALETTE;     EMRRESTOREDC = record          emr : EMR;          iRelative : LONG;       end;     tagEMRRESTOREDC = EMRRESTOREDC;     TEMRRESTOREDC = EMRRESTOREDC;     PEMRRESTOREDC = ^EMRRESTOREDC;     EMRROUNDRECT = record          emr : EMR;          rclBox : RECTL;          szlCorner : SIZEL;       end;     tagEMRROUNDRECT = EMRROUNDRECT;     TEMRROUNDRECT = EMRROUNDRECT;     PEMRROUNDRECT = ^EMRROUNDRECT;     EMRSCALEVIEWPORTEXTEX = record          emr : EMR;          xNum : LONG;          xDenom : LONG;          yNum : LONG;          yDenom : LONG;       end;     tagEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX;     TEMRSCALEVIEWPORTEXTEX = EMRSCALEVIEWPORTEXTEX;     PEMRSCALEVIEWPORTEXTEX = ^EMRSCALEVIEWPORTEXTEX;     EMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX;     TEMRSCALEWINDOWEXTEX = EMRSCALEVIEWPORTEXTEX;     PEMRSCALEWINDOWEXTEX = ^EMRSCALEVIEWPORTEXTEX;     EMRSELECTCOLORSPACE = record          emr : EMR;          ihCS : DWORD;       end;     tagEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE;     TEMRSELECTCOLORSPACE = EMRSELECTCOLORSPACE;     PEMRSELECTCOLORSPACE = ^EMRSELECTCOLORSPACE;     EMRDELETECOLORSPACE = EMRSELECTCOLORSPACE;     TEMRDELETECOLORSPACE = EMRSELECTCOLORSPACE;     PEMRDELETECOLORSPACE = ^EMRSELECTCOLORSPACE;     EMRSELECTOBJECT = record          emr : EMR;          ihObject : DWORD;       end;     tagEMRSELECTOBJECT = EMRSELECTOBJECT;     TEMRSELECTOBJECT = EMRSELECTOBJECT;     PEMRSELECTOBJECT = ^EMRSELECTOBJECT;     EMRDELETEOBJECT = EMRSELECTOBJECT;     TEMRDELETEOBJECT = EMRSELECTOBJECT;     PEMRDELETEOBJECT = ^EMRSELECTOBJECT;     EMRSELECTPALETTE = record          emr : EMR;          ihPal : DWORD;       end;     tagEMRSELECTPALETTE = EMRSELECTPALETTE;     TEMRSELECTPALETTE = EMRSELECTPALETTE;     PEMRSELECTPALETTE = ^EMRSELECTPALETTE;     EMRSETARCDIRECTION = record          emr : EMR;          iArcDirection : DWORD;       end;     tagEMRSETARCDIRECTION = EMRSETARCDIRECTION;     TEMRSETARCDIRECTION = EMRSETARCDIRECTION;     PEMRSETARCDIRECTION = ^EMRSETARCDIRECTION;     EMRSETBKCOLOR = record          emr : EMR;          crColor : COLORREF;       end;     tagEMRSETTEXTCOLOR = EMRSETBKCOLOR;     TEMRSETBKCOLOR = EMRSETBKCOLOR;     PEMRSETBKCOLOR = ^EMRSETBKCOLOR;     EMRSETTEXTCOLOR = EMRSETBKCOLOR;     TEMRSETTEXTCOLOR = EMRSETBKCOLOR;     PEMRSETTEXTCOLOR = ^EMRSETBKCOLOR;     EMRSETCOLORADJUSTMENT = record          emr : EMR;          ColorAdjustment : COLORADJUSTMENT;       end;     tagEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT;     TEMRSETCOLORADJUSTMENT = EMRSETCOLORADJUSTMENT;     PEMRSETCOLORADJUSTMENT = ^EMRSETCOLORADJUSTMENT;     EMRSETDIBITSTODEVICE = record          emr : EMR;          rclBounds : RECTL;          xDest : LONG;          yDest : LONG;          xSrc : LONG;          ySrc : LONG;          cxSrc : LONG;          cySrc : LONG;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;          iUsageSrc : DWORD;          iStartScan : DWORD;          cScans : DWORD;       end;     tagEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE;     TEMRSETDIBITSTODEVICE = EMRSETDIBITSTODEVICE;     PEMRSETDIBITSTODEVICE = ^EMRSETDIBITSTODEVICE;     EMRSETMAPPERFLAGS = record          emr : EMR;          dwFlags : DWORD;       end;     tagEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS;     TEMRSETMAPPERFLAGS = EMRSETMAPPERFLAGS;     PEMRSETMAPPERFLAGS = ^EMRSETMAPPERFLAGS;     EMRSETMITERLIMIT = record          emr : EMR;          eMiterLimit : Single;       end;     tagEMRSETMITERLIMIT = EMRSETMITERLIMIT;     TEMRSETMITERLIMIT = EMRSETMITERLIMIT;     PEMRSETMITERLIMIT = ^EMRSETMITERLIMIT;     EMRSETPALETTEENTRIES = record          emr : EMR;          ihPal : DWORD;          iStart : DWORD;          cEntries : DWORD;          aPalEntries : array[0..0] of PALETTEENTRY;       end;     tagEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES;     TEMRSETPALETTEENTRIES = EMRSETPALETTEENTRIES;     PEMRSETPALETTEENTRIES = ^EMRSETPALETTEENTRIES;     EMRSETPIXELV = record          emr : EMR;          ptlPixel : POINTL;          crColor : COLORREF;       end;     tagEMRSETPIXELV = EMRSETPIXELV;     TEMRSETPIXELV = EMRSETPIXELV;     PEMRSETPIXELV = ^EMRSETPIXELV;     EMRSETVIEWPORTEXTEX = record          emr : EMR;          szlExtent : SIZEL;       end;     tagEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX;     TEMRSETVIEWPORTEXTEX = EMRSETVIEWPORTEXTEX;     PEMRSETVIEWPORTEXTEX = ^EMRSETVIEWPORTEXTEX;     EMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX;     TEMRSETWINDOWEXTEX = EMRSETVIEWPORTEXTEX;     PEMRSETWINDOWEXTEX = ^EMRSETVIEWPORTEXTEX;     EMRSETVIEWPORTORGEX = record          emr : EMR;          ptlOrigin : POINTL;       end;     tagEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX;     TEMRSETVIEWPORTORGEX = EMRSETVIEWPORTORGEX;     PEMRSETVIEWPORTORGEX = ^EMRSETVIEWPORTORGEX;     EMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX;     TEMRSETWINDOWORGEX = EMRSETVIEWPORTORGEX;     PEMRSETWINDOWORGEX = ^EMRSETVIEWPORTORGEX;     EMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX;     TEMRSETBRUSHORGEX = EMRSETVIEWPORTORGEX;     PEMRSETBRUSHORGEX = ^EMRSETVIEWPORTORGEX;     EMRSETWORLDTRANSFORM = record          emr : EMR;          xform : XFORM;       end;     tagEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM;     TEMRSETWORLDTRANSFORM = EMRSETWORLDTRANSFORM;     PEMRSETWORLDTRANSFORM = ^EMRSETWORLDTRANSFORM;     EMRSTRETCHBLT = record          emr : EMR;          rclBounds : RECTL;          xDest : LONG;          yDest : LONG;          cxDest : LONG;          cyDest : LONG;          dwRop : DWORD;          xSrc : LONG;          ySrc : LONG;          xformSrc : XFORM;          crBkColorSrc : COLORREF;          iUsageSrc : DWORD;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;          cxSrc : LONG;          cySrc : LONG;       end;     tagEMRSTRETCHBLT = EMRSTRETCHBLT;     TEMRSTRETCHBLT = EMRSTRETCHBLT;     PEMRSTRETCHBLT = ^EMRSTRETCHBLT;     EMRSTRETCHDIBITS = record          emr : EMR;          rclBounds : RECTL;          xDest : LONG;          yDest : LONG;          xSrc : LONG;          ySrc : LONG;          cxSrc : LONG;          cySrc : LONG;          offBmiSrc : DWORD;          cbBmiSrc : DWORD;          offBitsSrc : DWORD;          cbBitsSrc : DWORD;          iUsageSrc : DWORD;          dwRop : DWORD;          cxDest : LONG;          cyDest : LONG;       end;     tagEMRSTRETCHDIBITS = EMRSTRETCHDIBITS;     TEMRSTRETCHDIBITS = EMRSTRETCHDIBITS;     PEMRSTRETCHDIBITS = ^EMRSTRETCHDIBITS;     EMRABORTPATH = record          emr : EMR;       end;     TEMRABORTPATH = EMRABORTPATH;     PEMRABORTPATH = ^EMRABORTPATH;     tagABORTPATH = EMRABORTPATH;     TABORTPATH = EMRABORTPATH;     EMRBEGINPATH = EMRABORTPATH;     TEMRBEGINPATH = EMRABORTPATH;     PEMRBEGINPATH = ^EMRABORTPATH;     EMRENDPATH = EMRABORTPATH;     TEMRENDPATH = EMRABORTPATH;     PEMRENDPATH = ^EMRABORTPATH;     EMRCLOSEFIGURE = EMRABORTPATH;     TEMRCLOSEFIGURE = EMRABORTPATH;     PEMRCLOSEFIGURE = ^EMRABORTPATH;     EMRFLATTENPATH = EMRABORTPATH;     TEMRFLATTENPATH = EMRABORTPATH;     PEMRFLATTENPATH = ^EMRABORTPATH;     EMRWIDENPATH = EMRABORTPATH;     TEMRWIDENPATH = EMRABORTPATH;     PEMRWIDENPATH = ^EMRABORTPATH;     EMRSETMETARGN = EMRABORTPATH;     TEMRSETMETARGN = EMRABORTPATH;     PEMRSETMETARGN = ^EMRABORTPATH;     EMRSAVEDC = EMRABORTPATH;     TEMRSAVEDC = EMRABORTPATH;     PEMRSAVEDC = ^EMRABORTPATH;     EMRREALIZEPALETTE = EMRABORTPATH;     TEMRREALIZEPALETTE = EMRABORTPATH;     PEMRREALIZEPALETTE = ^EMRABORTPATH;     EMRSELECTCLIPPATH = record          emr : EMR;          iMode : DWORD;       end;     tagEMRSELECTCLIPPATH = EMRSELECTCLIPPATH;     TEMRSELECTCLIPPATH = EMRSELECTCLIPPATH;     PEMRSELECTCLIPPATH = ^EMRSELECTCLIPPATH;     EMRSETBKMODE = EMRSELECTCLIPPATH;     TEMRSETBKMODE = EMRSELECTCLIPPATH;     PEMRSETBKMODE = ^EMRSELECTCLIPPATH;     EMRSETMAPMODE = EMRSELECTCLIPPATH;     TEMRSETMAPMODE = EMRSELECTCLIPPATH;     PEMRSETMAPMODE = ^EMRSELECTCLIPPATH;     EMRSETPOLYFILLMODE = EMRSELECTCLIPPATH;     TEMRSETPOLYFILLMODE = EMRSELECTCLIPPATH;     PEMRSETPOLYFILLMODE = ^EMRSELECTCLIPPATH;     EMRSETROP2 = EMRSELECTCLIPPATH;     TEMRSETROP2 = EMRSELECTCLIPPATH;     PEMRSETROP2 = ^EMRSELECTCLIPPATH;     EMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH;     TEMRSETSTRETCHBLTMODE = EMRSELECTCLIPPATH;     PEMRSETSTRETCHBLTMODE = ^EMRSELECTCLIPPATH;     EMRSETTEXTALIGN = EMRSELECTCLIPPATH;     TEMRSETTEXTALIGN = EMRSELECTCLIPPATH;     PEMRSETTEXTALIGN = ^EMRSELECTCLIPPATH;     EMRENABLEICM = EMRSELECTCLIPPATH;     TEMRENABLEICM = EMRSELECTCLIPPATH;     PEMRENABLEICM = ^EMRSELECTCLIPPATH;     NMHDR = record          hwndFrom : HWND;          idFrom : UINT_PTR;          code : UINT;       end;     tagNMHDR = NMHDR;     TNMHDR = NMHDR;     PNMHDR = ^NMHDR;     ENCORRECTTEXT = record          nmhdr : NMHDR;          chrg : CHARRANGE;          seltyp : WORD;       end;     _encorrecttext = ENCORRECTTEXT;     Tencorrecttext = ENCORRECTTEXT;     Pencorrecttext = ^ENCORRECTTEXT;     ENDROPFILES = record          nmhdr : NMHDR;          hDrop : HANDLE;          cp : LONG;          fProtected : WINBOOL;       end;     _endropfiles = ENDROPFILES;     Tendropfiles = ENDROPFILES;     Pendropfiles = ^ENDROPFILES;     ENSAVECLIPBOARD = record          nmhdr : NMHDR;          cObjectCount : LONG;          cch : LONG;       end;     TENSAVECLIPBOARD = ENSAVECLIPBOARD;     PENSAVECLIPBOARD = ^ENSAVECLIPBOARD;     ENOLEOPFAILED = record          nmhdr : NMHDR;          iob : LONG;          lOper : LONG;          hr : HRESULT;       end;     TENOLEOPFAILED = ENOLEOPFAILED;     PENOLEOPFAILED = ^ENOLEOPFAILED;     ENHMETAHEADER = record          iType : DWORD;          nSize : DWORD;          rclBounds : RECTL;          rclFrame : RECTL;          dSignature : DWORD;          nVersion : DWORD;          nBytes : DWORD;          nRecords : DWORD;          nHandles : WORD;          sReserved : WORD;          nDescription : DWORD;          offDescription : DWORD;          nPalEntries : DWORD;          szlDevice : SIZEL;          szlMillimeters : SIZEL;// #if (WINVER >= 0x0400)          cbPixelFormat : DWORD;          offPixelFormat : DWORD;          bOpenGL : DWORD;// #endif// #if (WINVER >= 0x0500)          szlMicrometers : SIZEL;// #endif       end;     LPENHMETAHEADER = ^ENHMETAHEADER;     tagENHMETAHEADER = ENHMETAHEADER;     TENHMETAHEADER = ENHMETAHEADER;     PENHMETAHEADER = ^ENHMETAHEADER;     ENHMETARECORD = record          iType : DWORD;          nSize : DWORD;          dParm : array[0..0] of DWORD;       end;     LPENHMETARECORD = ^ENHMETARECORD;     tagENHMETARECORD = ENHMETARECORD;     TENHMETARECORD = ENHMETARECORD;     PENHMETARECORD = ^ENHMETARECORD;     ENPROTECTED = record          nmhdr : NMHDR;          msg : UINT;          wParam : WPARAM;          lParam : LPARAM;          chrg : CHARRANGE;       end;     _enprotected = ENPROTECTED;     Tenprotected = ENPROTECTED;     Penprotected = ^ENPROTECTED;     SERVICE_STATUS = record          dwServiceType : DWORD;          dwCurrentState : DWORD;          dwControlsAccepted : DWORD;          dwWin32ExitCode : DWORD;          dwServiceSpecificExitCode : DWORD;          dwCheckPoint : DWORD;          dwWaitHint : DWORD;       end;     LPSERVICE_STATUS = ^SERVICE_STATUS;     _SERVICE_STATUS = SERVICE_STATUS;     TSERVICESTATUS = SERVICE_STATUS;     PSERVICESTATUS = ^SERVICE_STATUS;     ENUM_SERVICE_STATUSA= record          lpServiceName : LPSTR;          lpDisplayName : LPSTR;          ServiceStatus : SERVICE_STATUS;       end;     LPENUM_SERVICE_STATUSA = ^ENUM_SERVICE_STATUSA;     _ENUM_SERVICE_STATUSA  = ENUM_SERVICE_STATUSA;     TENUMSERVICESTATUSA    = ENUM_SERVICE_STATUSA;     PENUMSERVICESTATUSA   = ^ENUM_SERVICE_STATUSA;     ENUM_SERVICE_STATUSW = record          lpServiceName : LPWSTR;          lpDisplayName : LPWSTR;          ServiceStatus : SERVICE_STATUS;       end;     LPENUM_SERVICE_STATUSW = ^ENUM_SERVICE_STATUSW;     _ENUM_SERVICE_STATUSW  = ENUM_SERVICE_STATUSW;     TENUMSERVICESTATUSW    = ENUM_SERVICE_STATUSW;     PENUMSERVICESTATUSW    = ^ENUM_SERVICE_STATUSW;     {$ifdef Unicode}     LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUSW;     _ENUM_SERVICE_STATUS  = ENUM_SERVICE_STATUSW;     TENUMSERVICESTATUS    = ENUM_SERVICE_STATUSW;     ENUMSERVICESTATUS     = ENUM_SERVICE_STATUSW;     PENUMSERVICESTATUS    = ^ENUM_SERVICE_STATUSW;     {$else}     LPENUM_SERVICE_STATUS = ^ENUM_SERVICE_STATUSA;     _ENUM_SERVICE_STATUS  = ENUM_SERVICE_STATUSA;     TENUMSERVICESTATUS    = ENUM_SERVICE_STATUSA;     ENUMSERVICESTATUS     = ENUM_SERVICE_STATUSA;     PENUMSERVICESTATUS    = ^ENUM_SERVICE_STATUSA;     {$endif}     ENUMLOGFONTA = record          elfLogFont : LOGFONTA;          elfFullName : array[0..(LF_FULLFACESIZE)-1] of AnsiCHAR;          elfStyle : array[0..(LF_FACESIZE)-1] of AnsiCHAR;       end;     tagENUMLOGFONTA =  ENUMLOGFONTA;     TENUMLOGFONTA   =  ENUMLOGFONTA;     PENUMLOGFONTA   = ^ENUMLOGFONTA;     ENUMLOGFONTW = record          elfLogFont : LOGFONTW;          elfFullName : array[0..(LF_FULLFACESIZE)-1] of WCHAR;          elfStyle : array[0..(LF_FACESIZE)-1] of WCHAR;       end;     tagENUMLOGFONTW = ENUMLOGFONTW;     TENUMLOGFONTW   = ENUMLOGFONTW;     PENUMLOGFONTW   = ^ENUMLOGFONTW;     {$ifdef Unicode}     tagENUMLOGFONT  = ENUMLOGFONTW;     TENUMLOGFONT    = ENUMLOGFONTW;     ENUMLOGFONT     = ENUMLOGFONTW;     PENUMLOGFONT    = ^ENUMLOGFONTW;     {$else}     tagENUMLOGFONT  = ENUMLOGFONTA;     TENUMLOGFONT    = ENUMLOGFONTA;     ENUMLOGFONT     = ENUMLOGFONTA;     PENUMLOGFONT    = ^ENUMLOGFONTA;     {$endif}     ENUMLOGFONTEXA = record          elfLogFont : LOGFONTA;          elfFullName : array[0..(LF_FULLFACESIZE)-1] of AnsiCHAR;          elfStyle : array[0..(LF_FACESIZE)-1] of AnsiCHAR;          elfScript : array[0..(LF_FACESIZE)-1] of AnsiCHAR;       end;     tagENUMLOGFONTEXA = ENUMLOGFONTEXA;     TENUMLOGFONTEXA   = ENUMLOGFONTEXA;     PENUMLOGFONTEXA   = ^ENUMLOGFONTEXA;     ENUMLOGFONTEXW = record          elfLogFont : LOGFONTW;          elfFullName : array[0..(LF_FULLFACESIZE)-1] of WCHAR;          elfStyle : array[0..(LF_FACESIZE)-1] of WCHAR;          elfScript : array[0..(LF_FACESIZE)-1] of WCHAR;       end;          {            Then follow:            TCHAR SourceName[]            TCHAR Computername[]            SID   UserSid            TCHAR Strings[]            BYTE  Data[]            CHAR  Pad[]            DWORD Length;           }     tagENUMLOGFONTEXW = ENUMLOGFONTEXW;     TENUMLOGFONTEXW   = ENUMLOGFONTEXW;     PENUMLOGFONTEXW   = ^ENUMLOGFONTEXW;     {$ifdef Unicode}     tagENUMLOGFONTEX  = ENUMLOGFONTEXW;     ENUMLOGFONTEX     = ENUMLOGFONTEXW;     TENUMLOGFONTEX    = ENUMLOGFONTEXW;     PENUMLOGFONTEX    = ^ENUMLOGFONTEXW;     {$else}     tagENUMLOGFONTEX  = ENUMLOGFONTEXA;     ENUMLOGFONTEX     = ENUMLOGFONTEXA;     TENUMLOGFONTEX    = ENUMLOGFONTEXA;     PENUMLOGFONTEX    = ^ENUMLOGFONTEXA;     {$endif}     EVENTLOGRECORD = record          Length : DWORD;          Reserved : DWORD;          RecordNumber : DWORD;          TimeGenerated : DWORD;          TimeWritten : DWORD;          EventID : DWORD;          EventType : WORD;          NumStrings : WORD;          EventCategory : WORD;          ReservedFlags : WORD;          ClosingRecordNumber : DWORD;          StringOffset : DWORD;          UserSidLength : DWORD;          UserSidOffset : DWORD;          DataLength : DWORD;          DataOffset : DWORD;       end;     _EVENTLOGRECORD = EVENTLOGRECORD;     TEVENTLOGRECORD = EVENTLOGRECORD;     PEVENTLOGRECORD = ^EVENTLOGRECORD;     EVENTMSG = record          message : UINT;          paramL : UINT;          paramH : UINT;          time : DWORD;          hwnd : HWND;       end;     tagEVENTMSG = EVENTMSG;     TEVENTMSG = EVENTMSG;     PEVENTMSG = ^EVENTMSG;     EXCEPTION_POINTERS = record          ExceptionRecord : PEXCEPTION_RECORD;          ContextRecord : PCONTEXT;       end;     LPEXCEPTION_POINTERS = ^EXCEPTION_POINTERS;     PEXCEPTION_POINTERS = ^EXCEPTION_POINTERS;     _EXCEPTION_POINTERS = EXCEPTION_POINTERS;     TEXCEPTIONPOINTERS = EXCEPTION_POINTERS;     PEXCEPTIONPOINTERS = ^EXCEPTION_POINTERS;     EXT_BUTTON = record          idCommand : WORD;          idsHelp : WORD;          fsStyle : WORD;       end;     LPEXT_BUTTON = ^EXT_BUTTON;     _EXT_BUTTON = EXT_BUTTON;     TEXTBUTTON = EXT_BUTTON;     PEXTBUTTON = ^EXT_BUTTON;     FILTERKEYS = record          cbSize : UINT;          dwFlags : DWORD;          iWaitMSec : DWORD;          iDelayMSec : DWORD;          iRepeatMSec : DWORD;          iBounceMSec : DWORD;       end;     tagFILTERKEYS = FILTERKEYS;     TFILTERKEYS = FILTERKEYS;     PFILTERKEYS = ^FILTERKEYS;     FIND_NAME_BUFFER = record          length : UCHAR;          access_control : UCHAR;          frame_control : UCHAR;          destination_addr : array[0..5] of UCHAR;          source_addr : array[0..5] of UCHAR;          routing_info : array[0..17] of UCHAR;       end;     _FIND_NAME_BUFFER = FIND_NAME_BUFFER;     TFINDNAMEBUFFER = FIND_NAME_BUFFER;     PFINDNAMEBUFFER = ^FIND_NAME_BUFFER;     FIND_NAME_HEADER = record          node_count : WORD;          reserved : UCHAR;          unique_group : UCHAR;       end;     _FIND_NAME_HEADER = FIND_NAME_HEADER;     TFINDNAMEHEADER = FIND_NAME_HEADER;     PFINDNAMEHEADER = ^FIND_NAME_HEADER;     FINDREPLACE = record          lStructSize : DWORD;          hwndOwner : HWND;          hInstance : HINST;          Flags : DWORD;          lpstrFindWhat : LPTSTR;          lpstrReplaceWith : LPTSTR;          wFindWhatLen : WORD;          wReplaceWithLen : WORD;          lCustData : LPARAM;          lpfnHook : LPFRHOOKPROC;          lpTemplateName : LPCTSTR;       end;     LPFINDREPLACE = ^FINDREPLACE;     TFINDREPLACE = FINDREPLACE;     PFINDREPLACE = ^FINDREPLACE;     {FINDTEXT = record conflicts with FindText function }     TFINDTEXT = record          chrg : CHARRANGE;          lpstrText : LPSTR;       end;     _findtext = TFINDTEXT;     Pfindtext = ^TFINDTEXT;     FINDTEXTEX = record          chrg : CHARRANGE;          lpstrText : LPSTR;          chrgText : CHARRANGE;       end;     _findtextex = FINDTEXTEX;     Tfindtextex = FINDTEXTEX;     Pfindtextex = ^FINDTEXTEX;     FMS_GETDRIVEINFOA = record          dwTotalSpace : DWORD;          dwFreeSpace : DWORD;          szPath : array[0..259] of AnsiCHAR;          szVolume : array[0..13] of AnsiCHAR;          szShare : array[0..127] of AnsiCHAR;       end;     _FMS_GETDRIVEINFOA = FMS_GETDRIVEINFOA;     TFMSGETDRIVEINFOA = FMS_GETDRIVEINFOA;     PFMSGETDRIVEINFOA = ^FMS_GETDRIVEINFOA;     FMS_GETDRIVEINFOW = record          dwTotalSpace : DWORD;          dwFreeSpace : DWORD;          szPath : array[0..259] of WCHAR;          szVolume : array[0..13] of WCHAR;          szShare : array[0..127] of WCHAR;       end;     _FMS_GETDRIVEINFOW = FMS_GETDRIVEINFOW;     TFMSGETDRIVEINFOW  = FMS_GETDRIVEINFOW;     PFMSGETDRIVEINFOW  = ^FMS_GETDRIVEINFOW;     {$ifdef Unicode}       _FMS_GETDRIVEINFO = FMS_GETDRIVEINFOW;       TFMSGETDRIVEINFO  = FMS_GETDRIVEINFOW;       PFMSGETDRIVEINFO  = PFMSGETDRIVEINFOW;       FMS_GETDRIVEINFO  = FMS_GETDRIVEINFOW;     {$else}       _FMS_GETDRIVEINFO = FMS_GETDRIVEINFOA;       TFMSGETDRIVEINFO  = FMS_GETDRIVEINFOA;       PFMSGETDRIVEINFO  = PFMSGETDRIVEINFOA;       FMS_GETDRIVEINFO  = FMS_GETDRIVEINFOA;     {$endif}     FMS_GETFILESELA = record          ftTime : FILETIME;          dwSize : DWORD;          bAttr : BYTE;          szName : array[0..259] of AnsiCHAR;       end;     _FMS_GETFILESELA = FMS_GETFILESELA;     TFMSGETFILESELA  = FMS_GETFILESELA;     PFMSGETFILESELA  = ^FMS_GETFILESELA;     FMS_GETFILESELW = record          ftTime : FILETIME;          dwSize : DWORD;          bAttr : BYTE;          szName : array[0..259] of WCHAR;       end;     _FMS_GETFILESELW = FMS_GETFILESELW;     TFMSGETFILESELW  = FMS_GETFILESELW;     PFMSGETFILESELW  = ^FMS_GETFILESELW;     {$ifdef Unicode}       _FMS_GETFILESEL  = FMS_GETFILESELW;       TFMSGETFILESEL   = FMS_GETFILESELW;       FMS_GETFILESEL   = FMS_GETFILESELW;       PFMSGETFILESEL   = PFMSGETFILESELW;     {$else}       _FMS_GETFILESEL  = FMS_GETFILESELA;       TFMSGETFILESEL   = FMS_GETFILESELA;       FMS_GETFILESEL   = FMS_GETFILESELA;       PFMSGETFILESEL   = PFMSGETFILESELA;     {$endif}     FMS_LOADA = record          dwSize : DWORD;          szMenuName : array[0..(MENU_TEXT_LEN)-1] of AnsiCHAR;          hMenu : HMENU;          wMenuDelta : UINT;       end;     _FMS_LOADA = FMS_LOADA;     TFMSLOADA  = FMS_LOADA;     PFMSLOADA  = ^FMS_LOADA;     FMS_LOADW = record          dwSize : DWORD;          szMenuName : array[0..(MENU_TEXT_LEN)-1] of WCHAR;          hMenu : HMENU;          wMenuDelta : UINT;       end;     _FMS_LOADW = FMS_LOADW;     TFMSLOADW = FMS_LOADW;     PFMSLOADW = ^FMS_LOADW;     {$ifdef unicode}       _FMS_LOAD = FMS_LOADW;       TFMSLOAD  = FMS_LOADW;       PFMSLOAD  = PFMSLOADW;       FMS_LOAD  = FMS_LOADW;     {$else}       _FMS_LOAD = FMS_LOADA;       TFMSLOAD  = FMS_LOADA;       PFMSLOAD  = PFMSLOADA;       FMS_LOAD  = FMS_LOADA;     {$endif}     FMS_TOOLBARLOAD = record          dwSize : DWORD;          lpButtons : LPEXT_BUTTON;          cButtons : WORD;          cBitmaps : WORD;          idBitmap : WORD;          hBitmap : HBITMAP;       end;     _FMS_TOOLBARLOAD = FMS_TOOLBARLOAD;     TFMSTOOLBARLOAD = FMS_TOOLBARLOAD;     PFMSTOOLBARLOAD = ^FMS_TOOLBARLOAD;     FOCUS_EVENT_RECORD = record          bSetFocus : WINBOOL;       end;     _FOCUS_EVENT_RECORD = FOCUS_EVENT_RECORD;     TFOCUSEVENTRECORD = FOCUS_EVENT_RECORD;     PFOCUSEVENTRECORD = ^FOCUS_EVENT_RECORD;     FORM_INFO_1 = record          Flags : DWORD;          pName : LPTSTR;          Size : SIZEL;          ImageableArea : RECTL;       end;     _FORM_INFO_1 = FORM_INFO_1;     TFORMINFO1 = FORM_INFO_1;     PFORMINFO1 = ^FORM_INFO_1;     FORMAT_PARAMETERS = record          MediaType : MEDIA_TYPE;          StartCylinderNumber : DWORD;          EndCylinderNumber : DWORD;          StartHeadNumber : DWORD;          EndHeadNumber : DWORD;       end;     _FORMAT_PARAMETERS = FORMAT_PARAMETERS;     TFORMATPARAMETERS = FORMAT_PARAMETERS;     PFORMATPARAMETERS = ^FORMAT_PARAMETERS;     FORMATRANGE = record          _hdc : HDC;          hdcTarget : HDC;          rc : RECT;          rcPage : RECT;          chrg : CHARRANGE;       end;     _formatrange = FORMATRANGE;     Tformatrange = FORMATRANGE;     Pformatrange = ^FORMATRANGE;     GCP_RESULTSA = record          lStructSize : DWORD;          lpOutString : LPSTR;          lpOrder : ^UINT;          lpDx : ^WINT;          lpCaretPos : ^WINT;          lpClass : LPSTR;           { Unicode-independent, i.e. not LPTSTR }          lpGlyphs : LPWSTR;         { Unicode-independent }          nGlyphs : UINT;          nMaxFit : WINT;       end;     LPGCP_RESULTSA = ^GCP_RESULTSA;     tagGCP_RESULTSA= GCP_RESULTSA;     TGCPRESULTSA   = GCP_RESULTSA;     PGCPRESULTSA   = ^GCP_RESULTSA;     GCP_RESULTSW = record          lStructSize : DWORD;          lpOutString : LPWSTR;          lpOrder : ^UINT;          lpDx : ^WINT;          lpCaretPos : ^WINT;          lpClass : LPSTR;           { Unicode-independent, i.e. not LPTSTR }          lpGlyphs : LPWSTR;         { Unicode-independent }          nGlyphs : UINT;          nMaxFit : WINT;       end;     LPGCP_RESULTSW  = ^GCP_RESULTSW;     tagGCP_RESULTSW = GCP_RESULTSW;     TGCPRESULTSW    = GCP_RESULTSW;     PGCPRESULTSW    = ^GCP_RESULTSW;     {$ifdef Unicode}     LPGCP_RESULTS   = ^GCP_RESULTSW;     tagGCP_RESULTS  = GCP_RESULTSW;     TGCPRESULTS     = GCP_RESULTSW;     GCPRESULTS      = GCP_RESULTSW;     PGCPRESULTS     = ^GCP_RESULTSW;     {$else}     LPGCP_RESULTS   = ^GCP_RESULTSA;     tagGCP_RESULTS  = GCP_RESULTSA;     TGCPRESULTS     = GCP_RESULTSA;     GCPRESULTS      = GCP_RESULTSA;     PGCPRESULTS     = ^GCP_RESULTSA;     {$endif}     GENERIC_MAPPING = record          GenericRead : ACCESS_MASK;          GenericWrite : ACCESS_MASK;          GenericExecute : ACCESS_MASK;          GenericAll : ACCESS_MASK;       end;     PGENERIC_MAPPING = ^GENERIC_MAPPING;     _GENERIC_MAPPING = GENERIC_MAPPING;     TGENERICMAPPING = GENERIC_MAPPING;     PGENERICMAPPING = ^GENERIC_MAPPING;     GLYPHMETRICS = record          gmBlackBoxX : UINT;          gmBlackBoxY : UINT;          gmptGlyphOrigin : POINT;          gmCellIncX : SHORT;          gmCellIncY : SHORT;       end;     LPGLYPHMETRICS = ^GLYPHMETRICS;     _GLYPHMETRICS = GLYPHMETRICS;     TGLYPHMETRICS = GLYPHMETRICS;     PGLYPHMETRICS = ^GLYPHMETRICS;     HANDLETABLE = record          objectHandle : array[0..0] of HGDIOBJ;       end;     tagHANDLETABLE = HANDLETABLE;     THANDLETABLE = HANDLETABLE;     LPHANDLETABLE = ^HANDLETABLE;     HD_HITTESTINFO = record          pt : POINT;          flags : UINT;          iItem : longint;       end;     _HD_HITTESTINFO = HD_HITTESTINFO;     THDHITTESTINFO = HD_HITTESTINFO;     PHDHITTESTINFO = ^HD_HITTESTINFO;     HD_ITEM = record          mask : UINT;          cxy : longint;          pszText : LPTSTR;          hbm : HBITMAP;          cchTextMax : longint;          fmt : longint;          lParam : LPARAM;       end;     _HD_ITEM = HD_ITEM;     THDITEM = HD_ITEM;     PHDITEM = ^HD_ITEM;     WINDOWPOS = record          _hwnd : HWND;          hwndInsertAfter : HWND;          x : longint;          y : longint;          cx : longint;          cy : longint;          flags : UINT;       end;     LPWINDOWPOS = ^WINDOWPOS;     _WINDOWPOS = WINDOWPOS;     TWINDOWPOS = WINDOWPOS;     PWINDOWPOS = ^WINDOWPOS;     PWindowInfo = ^TWindowInfo;     LPWindowInfo = ^TWindowInfo;     tagWINDOWINFO = record          cbSize: DWORD;          rcWindow: TRect;          rcClient: TRect;          dwStyle: DWORD;          dwExStyle: DWORD;          dwWindowStatus: DWORD;          cxWindowBorders: UINT;          cyWindowBorders: UINT;          atomWindowType: TAtom;          wCreatorVersion: WORD;       end;     TWindowInfo = tagWINDOWINFO;     HD_LAYOUT = record          prc : ^RECT;          pwpos : ^WINDOWPOS;       end;     _HD_LAYOUT = HD_LAYOUT;     THDLAYOUT = HD_LAYOUT;     PHDLAYOUT = ^HD_LAYOUT;     HD_NOTIFY = record          hdr : NMHDR;          iItem : longint;          iButton : longint;          pitem : ^HD_ITEM;       end;     _HD_NOTIFY = HD_NOTIFY;     THDNOTIFY = HD_NOTIFY;     PHDNOTIFY = ^HD_NOTIFY;     HELPINFO = record          cbSize : UINT;          iContextType : longint;          iCtrlId : longint;          hItemHandle : HANDLE;          dwContextId : DWORD_PTR; // NOTE:  this is defined as DWORD in http://msdn.microsoft.com/en-us/library/windows/desktop/bb773313%28v=vs.85%29.asp// but mingw has it as DWORD_PTR, so we will use that          MousePos : POINT;       end;     LPHELPINFO = ^HELPINFO;     tagHELPINFO = HELPINFO;     THELPINFO = HELPINFO;     PHELPINFO = ^HELPINFO;     HELPWININFOA = record          wStructSize : longint;          x : longint;          y : longint;          dx : longint;          dy : longint;          wMax : longint;          rgchMember : array[0..1] of AnsiCHAR;       end;     THELPWININFOA = HELPWININFOA;     PHELPWININFOA = ^HELPWININFOA;     HELPWININFOW = record          wStructSize : longint;          x : longint;          y : longint;          dx : longint;          dy : longint;          wMax : longint;          rgchMember : array[0..1] of WCHAR;       end;     THELPWININFOW = HELPWININFOW;     PHELPWININFOW = ^HELPWININFOW;     {$ifdef Unicode}       HELPWININFO  = HELPWININFOW;       THELPWININFO = HELPWININFOW;       PHELPWININFO = PHELPWININFOW;     {$else}       HELPWININFO  = HELPWININFOA;       THELPWININFO = HELPWININFOA;       PHELPWININFO = PHELPWININFOA;     {$endif}     HIGHCONTRAST = record          cbSize : UINT;          dwFlags : DWORD;          lpszDefaultScheme : LPTSTR;       end;     LPHIGHCONTRAST = ^HIGHCONTRAST;     tagHIGHCONTRAST = HIGHCONTRAST;     THIGHCONTRAST = HIGHCONTRAST;     PHIGHCONTRAST = ^HIGHCONTRAST;     HSZPAIR = record          hszSvc : HSZ;          hszTopic : HSZ;       end;     tagHSZPAIR = HSZPAIR;     THSZPAIR = HSZPAIR;     PHSZPAIR = ^HSZPAIR;     ICONINFO = record          fIcon : WINBOOL;          xHotspot : DWORD;          yHotspot : DWORD;          hbmMask : HBITMAP;          hbmColor : HBITMAP;       end;     _ICONINFO = ICONINFO;     TICONINFO = ICONINFO;     PICONINFO = ^ICONINFO;     ICONMETRICS = record          cbSize : UINT;          iHorzSpacing : longint;          iVertSpacing : longint;          iTitleWrap : longint;          lfFont : LOGFONT;       end;     LPICONMETRICS = ^ICONMETRICS;     tagICONMETRICS = ICONMETRICS;     TICONMETRICS = ICONMETRICS;     PICONMETRICS = ^ICONMETRICS;     IMAGEINFO = record          hbmImage : HBITMAP;          hbmMask : HBITMAP;          Unused1 : longint;          Unused2 : longint;          rcImage : RECT;       end;     _IMAGEINFO = IMAGEINFO;     TIMAGEINFO = IMAGEINFO;     PIMAGEINFO = ^IMAGEINFO;     KEY_EVENT_RECORD = packed record          bKeyDown : WINBOOL;          wRepeatCount : WORD;          wVirtualKeyCode : WORD;          wVirtualScanCode : WORD;          case longint of             0 : ( UnicodeChar : WCHAR;                   dwControlKeyState : DWORD; );             1 : ( AsciiChar : CHAR );       end;     _KEY_EVENT_RECORD = KEY_EVENT_RECORD;     TKEYEVENTRECORD = KEY_EVENT_RECORD;     PKEYEVENTRECORD = ^KEY_EVENT_RECORD;     MOUSE_EVENT_RECORD = record          dwMousePosition : COORD;          dwButtonState : DWORD;          dwControlKeyState : DWORD;          dwEventFlags : DWORD;       end;     _MOUSE_EVENT_RECORD = MOUSE_EVENT_RECORD;     TMOUSEEVENTRECORD = MOUSE_EVENT_RECORD;     PMOUSEEVENTRECORD = ^MOUSE_EVENT_RECORD;     WINDOW_BUFFER_SIZE_RECORD = record          dwSize : COORD;       end;     _WINDOW_BUFFER_SIZE_RECORD = WINDOW_BUFFER_SIZE_RECORD;     TWINDOWBUFFERSIZERECORD = WINDOW_BUFFER_SIZE_RECORD;     PWINDOWBUFFERSIZERECORD = ^WINDOW_BUFFER_SIZE_RECORD;     MENU_EVENT_RECORD = record          dwCommandId : UINT;       end;     PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD;     _MENU_EVENT_RECORD = MENU_EVENT_RECORD;     TMENUEVENTRECORD = MENU_EVENT_RECORD;     PMENUEVENTRECORD = ^MENU_EVENT_RECORD;     INPUT_RECORD = record          EventType: Word;          Reserved: Word;          Event : record case longint of                 0 : ( KeyEvent : KEY_EVENT_RECORD );                 1 : ( MouseEvent : MOUSE_EVENT_RECORD );                 2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD );                 3 : ( MenuEvent : MENU_EVENT_RECORD );                 4 : ( FocusEvent : FOCUS_EVENT_RECORD );       end;      end;     PINPUT_RECORD = ^INPUT_RECORD;     _INPUT_RECORD = INPUT_RECORD;     TINPUTRECORD = INPUT_RECORD;     PINPUTRECORD = ^INPUT_RECORD;     SYSTEMTIME = record          case integer of           1 : (             wYear : WORD;             wMonth : WORD;             wDayOfWeek : WORD;             wDay : WORD;             wHour : WORD;             wMinute : WORD;             wSecond : WORD;             wMilliseconds : WORD;               );           { Compatibility for FPC }           2 : (             Year : WORD;             Month : WORD;             DayOfWeek : WORD;             Day : WORD;             Hour : WORD;             Minute : WORD;             Second : WORD;             Millisecond : WORD;               );       end;     LPSYSTEMTIME = ^SYSTEMTIME;     _SYSTEMTIME = SYSTEMTIME;     TSYSTEMTIME = SYSTEMTIME;     PSYSTEMTIME = ^SYSTEMTIME;     JOB_INFO_1 = record          JobId : DWORD;          pPrinterName : LPTSTR;          pMachineName : LPTSTR;          pUserName : LPTSTR;          pDocument : LPTSTR;          pDatatype : LPTSTR;          pStatus : LPTSTR;          Status : DWORD;          Priority : DWORD;          Position : DWORD;          TotalPages : DWORD;          PagesPrinted : DWORD;          Submitted : SYSTEMTIME;       end;     _JOB_INFO_1 = JOB_INFO_1;     TJOBINFO1 = JOB_INFO_1;     PJOBINFO1 = ^JOB_INFO_1;     SID_IDENTIFIER_AUTHORITY = record          Value : array[0..5] of BYTE;       end;     LPSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY;     PSID_IDENTIFIER_AUTHORITY = ^SID_IDENTIFIER_AUTHORITY;     _SID_IDENTIFIER_AUTHORITY = SID_IDENTIFIER_AUTHORITY;     TSIDIDENTIFIERAUTHORITY = SID_IDENTIFIER_AUTHORITY;     PSIDIDENTIFIERAUTHORITY = ^SID_IDENTIFIER_AUTHORITY;     SID = record          Revision : BYTE;          SubAuthorityCount : BYTE;          IdentifierAuthority : SID_IDENTIFIER_AUTHORITY;          SubAuthority : array[0..(ANYSIZE_ARRAY)-1] of DWORD;       end;     _SID = SID;     TSID = SID;     PSID = ^SID;     SECURITY_DESCRIPTOR_CONTROL = WORD;     PSECURITY_DESCRIPTOR_CONTROL = ^SECURITY_DESCRIPTOR_CONTROL;     TSECURITYDESCRIPTORCONTROL = SECURITY_DESCRIPTOR_CONTROL;     PSECURITYDESCRIPTORCONTROL = ^SECURITY_DESCRIPTOR_CONTROL;     SECURITY_DESCRIPTOR = record          Revision : BYTE;          Sbz1 : BYTE;          Control : SECURITY_DESCRIPTOR_CONTROL;          Owner : PSID;          Group : PSID;          Sacl : PACL;          Dacl : PACL;       end;     PSECURITY_DESCRIPTOR = ^SECURITY_DESCRIPTOR;     _SECURITY_DESCRIPTOR = SECURITY_DESCRIPTOR;     TSECURITYDESCRIPTOR = SECURITY_DESCRIPTOR;     PSECURITYDESCRIPTOR = ^SECURITY_DESCRIPTOR;     JOB_INFO_2 = record          JobId : DWORD;          pPrinterName : LPTSTR;          pMachineName : LPTSTR;          pUserName : LPTSTR;          pDocument : LPTSTR;          pNotifyName : LPTSTR;          pDatatype : LPTSTR;          pPrintProcessor : LPTSTR;          pParameters : LPTSTR;          pDriverName : LPTSTR;          pDevMode : LPDEVMODE;          pStatus : LPTSTR;          pSecurityDescriptor : PSECURITY_DESCRIPTOR;          Status : DWORD;          Priority : DWORD;          Position : DWORD;          StartTime : DWORD;          UntilTime : DWORD;          TotalPages : DWORD;          Size : DWORD;          Submitted : SYSTEMTIME;          Time : DWORD;          PagesPrinted : DWORD;       end;     _JOB_INFO_2 = JOB_INFO_2;     TJOBINFO2 = JOB_INFO_2;     PJOBINFO2 = ^JOB_INFO_2;     KERNINGPAIR = record          wFirst : WORD;          wSecond : WORD;          iKernAmount : longint;       end;     LPKERNINGPAIR = ^KERNINGPAIR;     tagKERNINGPAIR = KERNINGPAIR;     TKERNINGPAIR = KERNINGPAIR;     PKERNINGPAIR = ^KERNINGPAIR;     LANA_ENUM = record          length : UCHAR;          lana : array[0..(MAX_LANA)-1] of UCHAR;       end;     _LANA_ENUM = LANA_ENUM;     TLANAENUM = LANA_ENUM;     PLANAENUM = ^LANA_ENUM;     LDT_ENTRY = record          LimitLow : WORD;          BaseLow : WORD;          HighWord : record              case longint of                 0 : ( Bytes : record                      BaseMid : BYTE;                      Flags1 : BYTE;                      Flags2 : BYTE;                      BaseHi : BYTE;                   end );                 1 : ( Bits : record                      flag0 : longint;                   end );              end;       end;     LPLDT_ENTRY = ^LDT_ENTRY;     PLDT_ENTRY = ^LDT_ENTRY;     _LDT_ENTRY = LDT_ENTRY;     TLDTENTRY = LDT_ENTRY;     PLDTENTRY = ^LDT_ENTRY;  const     bm_LDT_ENTRY_BaseMid = $FF;     bp_LDT_ENTRY_BaseMid = 0;     bm_LDT_ENTRY_Type = $1F00;     bp_LDT_ENTRY_Type = 8;     bm_LDT_ENTRY_Dpl = $6000;     bp_LDT_ENTRY_Dpl = 13;     bm_LDT_ENTRY_Pres = $8000;     bp_LDT_ENTRY_Pres = 15;     bm_LDT_ENTRY_LimitHi = $F0000;     bp_LDT_ENTRY_LimitHi = 16;     bm_LDT_ENTRY_Sys = $100000;     bp_LDT_ENTRY_Sys = 20;     bm_LDT_ENTRY_Reserved_0 = $200000;     bp_LDT_ENTRY_Reserved_0 = 21;     bm_LDT_ENTRY_Default_Big = $400000;     bp_LDT_ENTRY_Default_Big = 22;     bm_LDT_ENTRY_Granularity = $800000;     bp_LDT_ENTRY_Granularity = 23;     bm_LDT_ENTRY_BaseHi = $FF000000;     bp_LDT_ENTRY_BaseHi = 24;  type     LOCALESIGNATURE = record          lsUsb : array[0..3] of DWORD;          lsCsbDefault : array[0..1] of DWORD;          lsCsbSupported : array[0..1] of DWORD;       end;     tagLOCALESIGNATURE = LOCALESIGNATURE;     TLOCALESIGNATURE = LOCALESIGNATURE;     PLOCALESIGNATURE = ^LOCALESIGNATURE;     LOCALGROUP_MEMBERS_INFO_0 = record          lgrmi0_sid : PSID;       end;     _LOCALGROUP_MEMBERS_INFO_0 = LOCALGROUP_MEMBERS_INFO_0;     TLOCALGROUPMEMBERSINFO0 = LOCALGROUP_MEMBERS_INFO_0;     PLOCALGROUPMEMBERSINFO0 = ^LOCALGROUP_MEMBERS_INFO_0;     LOCALGROUP_MEMBERS_INFO_3 = record          lgrmi3_domainandname : LPWSTR;       end;     _LOCALGROUP_MEMBERS_INFO_3 = LOCALGROUP_MEMBERS_INFO_3;     TLOCALGROUPMEMBERSINFO3 = LOCALGROUP_MEMBERS_INFO_3;     PLOCALGROUPMEMBERSINFO3 = ^LOCALGROUP_MEMBERS_INFO_3;     FXPT16DOT16 = longint;     LPFXPT16DOT16 = ^FXPT16DOT16;     TFXPT16DOT16 = FXPT16DOT16;     PFXPT16DOT16 = ^FXPT16DOT16;     LUID = TlargeInteger;     TLUID = LUID;     PLUID = ^LUID;     LUID_AND_ATTRIBUTES = packed record          Luid : LUID;          Attributes : DWORD;       end;     _LUID_AND_ATTRIBUTES = LUID_AND_ATTRIBUTES;     TLUIDANDATTRIBUTES = LUID_AND_ATTRIBUTES;     PLUIDANDATTRIBUTES = ^LUID_AND_ATTRIBUTES;     LUID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;     PLUID_AND_ATTRIBUTES_ARRAY = ^LUID_AND_ATTRIBUTES_ARRAY;     TLUIDANDATTRIBUTESARRAY = LUID_AND_ATTRIBUTES_ARRAY;     PLUIDANDATTRIBUTESARRAY = ^LUID_AND_ATTRIBUTES_ARRAY;     LV_COLUMN = record          mask : UINT;          fmt : longint;          cx : longint;          pszText : LPTSTR;          cchTextMax : longint;          iSubItem : longint;       end;     _LV_COLUMN = LV_COLUMN;     TLVCOLUMN = LV_COLUMN;     PLVCOLUMN = ^LV_COLUMN;     LV_ITEM = record          mask : UINT;          iItem : longint;          iSubItem : longint;          state : UINT;          stateMask : UINT;          pszText : LPTSTR;          cchTextMax : longint;          iImage : longint;          lParam : LPARAM;       end;     _LV_ITEM = LV_ITEM;     TLVITEM = LV_ITEM;     PLVITEM = ^LV_ITEM;     LV_DISPINFO = record          hdr : NMHDR;          item : LV_ITEM;       end;     tagLV_DISPINFO = LV_DISPINFO;     TLVDISPINFO = LV_DISPINFO;     PLVDISPINFO = ^LV_DISPINFO;     LV_FINDINFO = record          flags : UINT;          psz : LPCTSTR;          lParam : LPARAM;          pt : POINT;          vkDirection : UINT;       end;     _LV_FINDINFO = LV_FINDINFO;     TLVFINDINFO = LV_FINDINFO;     PLVFINDINFO = ^LV_FINDINFO;     LV_HITTESTINFO = record          pt : POINT;          flags : UINT;          iItem : longint;          iSubItem : longint;          iGroup : longint;       end;     _LV_HITTESTINFO = LV_HITTESTINFO;     TLVHITTESTINFO = LV_HITTESTINFO;     PLVHITTESTINFO = ^LV_HITTESTINFO;     LV_KEYDOWN = record          hdr : NMHDR;          wVKey : WORD;          flags : UINT;       end;     tagLV_KEYDOWN = LV_KEYDOWN;     TLVKEYDOWN = LV_KEYDOWN;     PLVKEYDOWN = ^LV_KEYDOWN;     MAT2 = packed record          eM11 : FIXED;          eM12 : FIXED;          eM21 : FIXED;          eM22 : FIXED;       end;     _MAT2 = MAT2;     TMAT2 = MAT2;     PMAT2 = ^MAT2;     MDICREATESTRUCT = record          szClass : LPCTSTR;          szTitle : LPCTSTR;          hOwner : HANDLE;          x : longint;          y : longint;          cx : longint;          cy : longint;          style : DWORD;          lParam : LPARAM;       end;     LPMDICREATESTRUCT = ^MDICREATESTRUCT;     tagMDICREATESTRUCT = MDICREATESTRUCT;     TMDICREATESTRUCT = MDICREATESTRUCT;     PMDICREATESTRUCT = ^MDICREATESTRUCT;     MEASUREITEMSTRUCT = record          CtlType : UINT;          CtlID : UINT;          itemID : UINT;          itemWidth : UINT;          itemHeight : UINT;          itemData : ULONG_PTR;       end;     LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;     tagMEASUREITEMSTRUCT = MEASUREITEMSTRUCT;     TMEASUREITEMSTRUCT = MEASUREITEMSTRUCT;     PMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;     MEMORY_BASIC_INFORMATION = record          BaseAddress : PVOID;          AllocationBase : PVOID;          AllocationProtect : DWORD;          RegionSize : PTRUINT; // MvdV: size_t in win SDK 6.0.          State : DWORD;          Protect : DWORD;          _Type : DWORD;       end;     PMEMORY_BASIC_INFORMATION = ^MEMORY_BASIC_INFORMATION;     _MEMORY_BASIC_INFORMATION = MEMORY_BASIC_INFORMATION;     TMEMORYBASICINFORMATION = MEMORY_BASIC_INFORMATION;     PMEMORYBASICINFORMATION = ^MEMORY_BASIC_INFORMATION;     MEMORYSTATUS = record          dwLength : DWORD;          dwMemoryLoad : DWORD;          dwTotalPhys : SIZE_T;          dwAvailPhys : SIZE_T;          dwTotalPageFile : SIZE_T;          dwAvailPageFile : SIZE_T;          dwTotalVirtual : SIZE_T;          dwAvailVirtual : SIZE_T;       end;     LPMEMORYSTATUS = ^MEMORYSTATUS;     _MEMORYSTATUS = MEMORYSTATUS;     TMEMORYSTATUS = MEMORYSTATUS;     PMEMORYSTATUS = ^MEMORYSTATUS;     MENUEX_TEMPLATE_HEADER = record          wVersion : WORD;          wOffset : WORD;          dwHelpId : DWORD;       end;     TMENUXTEMPLATEHEADER = MENUEX_TEMPLATE_HEADER;     PMENUXTEMPLATEHEADER = ^MENUEX_TEMPLATE_HEADER;     MENUEX_TEMPLATE_ITEM = record          dwType : DWORD;          dwState : DWORD;          uId : UINT;          bResInfo : BYTE;          szText : array[0..0] of WCHAR;          dwHelpId : DWORD;       end;     TMENUEXTEMPLATEITEM = MENUEX_TEMPLATE_ITEM;     PMENUEXTEMPLATEITEM = ^MENUEX_TEMPLATE_ITEM;     MENUINFO = record          cbSize : DWORD;          fMask : DWORD;          dwStyle : DWORD;          cyMax : UINT;          hbrBack : HBRUSH;          dwContextHelpID : DWORD;          dwMenuData : ULONG_PTR;       end;     LPMENUINFO = ^MENUINFO;     LPCMENUINFO = ^MENUINFO;     tagMENUINFO = MENUINFO;     TMENUINFO = MENUINFO;     PMENUINFO = ^MENUINFO;     MENUITEMINFOA = record          cbSize : UINT;          fMask : UINT;          fType : UINT;          fState : UINT;          wID : UINT;          hSubMenu : HMENU;          hbmpChecked : HBITMAP;          hbmpUnchecked : HBITMAP;          dwItemData : ULONG_PTR;          dwTypeData : LPSTR;          cch : UINT;          hbmpItem : HBITMAP;       end;     LPMENUITEMINFOA = ^MENUITEMINFOA;     LPCMENUITEMINFOA = ^MENUITEMINFOA;     tagMENUITEMINFOA = MENUITEMINFOA;     TMENUITEMINFOA = MENUITEMINFOA;     PMENUITEMINFOA = ^MENUITEMINFOA;     MENUITEMINFOW = record          cbSize : UINT;          fMask : UINT;          fType : UINT;          fState : UINT;          wID : UINT;          hSubMenu : HMENU;          hbmpChecked : HBITMAP;          hbmpUnchecked : HBITMAP;          dwItemData : ULONG_PTR;          dwTypeData : LPWSTR;          cch : UINT;          hbmpItem : HBITMAP;       end;     LPMENUITEMINFOW = ^MENUITEMINFOW;     LPCMENUITEMINFOW = ^MENUITEMINFOW;     tagMENUITEMINFOW = MENUITEMINFOW;     TMENUITEMINFOW = MENUITEMINFOW;     PMENUITEMINFOW = ^MENUITEMINFOW;     {$ifdef unicode}     LPMENUITEMINFO   = ^MENUITEMINFOW;     LPCMENUITEMINFO  = ^MENUITEMINFOW;     tagMENUITEMINFO  =  MENUITEMINFOW;     TMENUITEMINFO    =  MENUITEMINFOW;     PMENUITEMINFO    = ^MENUITEMINFOW;     MENUITEMINFO     =  MENUITEMINFOW;     {$ELSE}     LPMENUITEMINFO   = ^MENUITEMINFOA;     LPCMENUITEMINFO  = ^MENUITEMINFOA;     tagMENUITEMINFO  = MENUITEMINFOA;     TMENUITEMINFO    = MENUITEMINFOA;     PMENUITEMINFO    = ^MENUITEMINFOA;     MENUITEMINFO     =  MENUITEMINFOA;     {$ENDIF}     MENUITEMTEMPLATE = record          mtOption : WORD;          mtID : WORD;          mtString : array[0..0] of WCHAR;       end;     TMENUITEMTEMPLATE = MENUITEMTEMPLATE;     PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE;     MENUITEMTEMPLATEHEADER = record          versionNumber : WORD;          offset : WORD;       end;     TMENUITEMTEMPLATEHEADER = MENUITEMTEMPLATEHEADER;     PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;     MENUTEMPLATE = record                    end;     LPMENUTEMPLATE = ^MENUTEMPLATE;     TMENUTEMPLATE = MENUTEMPLATE;     PMENUTEMPLATE = ^MENUTEMPLATE;     METAFILEPICT = record          mm : LONG;          xExt : LONG;          yExt : LONG;          hMF : HMETAFILE;       end;     LPMETAFILEPICT = ^METAFILEPICT;     tagMETAFILEPICT = METAFILEPICT;     TMETAFILEPICT = METAFILEPICT;     PMETAFILEPICT = ^METAFILEPICT;     METAHEADER = packed record          mtType : WORD;          mtHeaderSize : WORD;          mtVersion : WORD;          mtSize : DWORD;          mtNoObjects : WORD;          mtMaxRecord : DWORD;          mtNoParameters : WORD;       end;     tagMETAHEADER = METAHEADER;     TMETAHEADER = METAHEADER;     PMETAHEADER = ^METAHEADER;     METARECORD = record          rdSize : DWORD;          rdFunction : WORD;          rdParm : array[0..0] of WORD;       end;     LPMETARECORD = ^METARECORD;     tagMETARECORD = METARECORD;     TMETARECORD = METARECORD;     PMETARECORD = ^METARECORD;     MINIMIZEDMETRICS = record          cbSize : UINT;          iWidth : longint;          iHorzGap : longint;          iVertGap : longint;          iArrange : longint;       end;     LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;     tagMINIMIZEDMETRICS = MINIMIZEDMETRICS;     TMINIMIZEDMETRICS = MINIMIZEDMETRICS;     PMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;     MINMAXINFO = record          ptReserved : POINT;          ptMaxSize : POINT;          ptMaxPosition : POINT;          ptMinTrackSize : POINT;          ptMaxTrackSize : POINT;       end;     tagMINMAXINFO = MINMAXINFO;     TMINMAXINFO = MINMAXINFO;     PMINMAXINFO = ^MINMAXINFO;     MODEMDEVCAPS = record          dwActualSize : DWORD;          dwRequiredSize : DWORD;          dwDevSpecificOffset : DWORD;          dwDevSpecificSize : DWORD;          dwModemProviderVersion : DWORD;          dwModemManufacturerOffset : DWORD;          dwModemManufacturerSize : DWORD;          dwModemModelOffset : DWORD;          dwModemModelSize : DWORD;          dwModemVersionOffset : DWORD;          dwModemVersionSize : DWORD;          dwDialOptions : DWORD;          dwCallSetupFailTimer : DWORD;          dwInactivityTimeout : DWORD;          dwSpeakerVolume : DWORD;          dwSpeakerMode : DWORD;          dwModemOptions : DWORD;          dwMaxDTERate : DWORD;          dwMaxDCERate : DWORD;          abVariablePortion : array[0..0] of BYTE;       end;     LPMODEMDEVCAPS = ^MODEMDEVCAPS;     TMODEMDEVCAPS = MODEMDEVCAPS;     PMODEMDEVCAPS = ^MODEMDEVCAPS;     modemdevcaps_tag = MODEMDEVCAPS;     MODEMSETTINGS = record          dwActualSize : DWORD;          dwRequiredSize : DWORD;          dwDevSpecificOffset : DWORD;          dwDevSpecificSize : DWORD;          dwCallSetupFailTimer : DWORD;          dwInactivityTimeout : DWORD;          dwSpeakerVolume : DWORD;          dwSpeakerMode : DWORD;          dwPreferredModemOptions : DWORD;          dwNegotiatedModemOptions : DWORD;          dwNegotiatedDCERate : DWORD;          abVariablePortion : array[0..0] of BYTE;       end;     LPMODEMSETTINGS = ^MODEMSETTINGS;     TMODEMSETTINGS = MODEMSETTINGS;     PMODEMSETTINGS = ^MODEMSETTINGS;     modemsettings_tag = MODEMSETTINGS;     MONCBSTRUCT = record          cb : UINT;          dwTime : DWORD;          hTask : HANDLE;          dwRet : DWORD;          wType : UINT;          wFmt : UINT;          hConv : HCONV;          hsz1 : HSZ;          hsz2 : HSZ;          hData : HDDEDATA;          dwData1 : ULONG_PTR;          dwData2 : ULONG_PTR;          cc : CONVCONTEXT;          cbData : DWORD;          Data : array[0..7] of DWORD;       end;     tagMONCBSTRUCT = MONCBSTRUCT;     TMONCBSTRUCT = MONCBSTRUCT;     PMONCBSTRUCT = ^MONCBSTRUCT;     MONCONVSTRUCT = record          cb : UINT;          fConnect : WINBOOL;          dwTime : DWORD;          hTask : HANDLE;          hszSvc : HSZ;          hszTopic : HSZ;          hConvClient : HCONV;          hConvServer : HCONV;       end;     tagMONCONVSTRUCT = MONCONVSTRUCT;     TMONCONVSTRUCT = MONCONVSTRUCT;     PMONCONVSTRUCT = ^MONCONVSTRUCT;     MONERRSTRUCT = record          cb : UINT;          wLastError : UINT;          dwTime : DWORD;          hTask : HANDLE;       end;     tagMONERRSTRUCT = MONERRSTRUCT;     TMONERRSTRUCT = MONERRSTRUCT;     PMONERRSTRUCT = ^MONERRSTRUCT;     MONHSZSTRUCTA = record          cb : UINT;          fsAction : WINBOOL;          dwTime : DWORD;          hsz : HSZ;          hTask : HANDLE;          str : array[0..0] of AnsiCHAR;       end;     tagMONHSZSTRUCTA = MONHSZSTRUCTA;     TMONHSZSTRUCTA   = MONHSZSTRUCTA;     PMONHSZSTRUCTA   = ^MONHSZSTRUCTA;     MONHSZSTRUCTW = record          cb : UINT;          fsAction : WINBOOL;          dwTime : DWORD;          hsz : HSZ;          hTask : HANDLE;          str : array[0..0] of WCHAR;       end;     tagMONHSZSTRUCTW = MONHSZSTRUCTW;     TMONHSZSTRUCTW   = MONHSZSTRUCTW;     PMONHSZSTRUCTW   = ^MONHSZSTRUCTW;     {$ifdef unicode}       tagMONHSZSTRUCT  = MONHSZSTRUCTW;       TMONHSZSTRUCT    = MONHSZSTRUCTW;       PMONHSZSTRUCT    = PMONHSZSTRUCTW;       MONHSZSTRUCT     = MONHSZSTRUCTW;     {$else}       tagMONHSZSTRUCT  = MONHSZSTRUCTA;       TMONHSZSTRUCT    = MONHSZSTRUCTA;       PMONHSZSTRUCT    = PMONHSZSTRUCTA;       MONHSZSTRUCT     = MONHSZSTRUCTA;     {$endif}     MONITOR_INFO_1 = record          pName : LPTSTR;       end;     _MONITOR_INFO_1 = MONITOR_INFO_1;     TMONITORINFO1 = MONITOR_INFO_1;     PMONITORINFO1 = ^MONITOR_INFO_1;     MONITOR_INFO_2 = record          pName : LPTSTR;          pEnvironment : LPTSTR;          pDLLName : LPTSTR;       end;     _MONITOR_INFO_2 = MONITOR_INFO_2;     TMONITORINFO2 = MONITOR_INFO_2;     PMONITORINFO2 = ^MONITOR_INFO_2;     MONLINKSTRUCT = record          cb : UINT;          dwTime : DWORD;          hTask : HANDLE;          fEstablished : WINBOOL;          fNoData : WINBOOL;          hszSvc : HSZ;          hszTopic : HSZ;          hszItem : HSZ;          wFmt : UINT;          fServer : WINBOOL;          hConvServer : HCONV;          hConvClient : HCONV;       end;     tagMONLINKSTRUCT = MONLINKSTRUCT;     TMONLINKSTRUCT = MONLINKSTRUCT;     PMONLINKSTRUCT = ^MONLINKSTRUCT;     MONMSGSTRUCT = record          cb : UINT;          hwndTo : HWND;          dwTime : DWORD;          hTask : HANDLE;          wMsg : UINT;          wParam : WPARAM;          lParam : LPARAM;          dmhd : DDEML_MSG_HOOK_DATA;       end;     tagMONMSGSTRUCT = MONMSGSTRUCT;     TMONMSGSTRUCT = MONMSGSTRUCT;     PMONMSGSTRUCT = ^MONMSGSTRUCT;     MOUSEHOOKSTRUCT = record          pt : POINT;          hwnd : HWND;          wHitTestCode : UINT;          dwExtraInfo : ULONG_PTR;       end;     LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;     tagMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT;     TMOUSEHOOKSTRUCT = MOUSEHOOKSTRUCT;     PMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;     MOUSEKEYS = record          cbSize : DWORD;          dwFlags : DWORD;          iMaxSpeed : DWORD;          iTimeToMaxSpeed : DWORD;          iCtrlSpeed : DWORD;          dwReserved1 : DWORD;          dwReserved2 : DWORD;       end;     TMOUSEKEYS = MOUSEKEYS;     PMOUSEKEYS = ^MOUSEKEYS;     MSGBOXCALLBACK = procedure (lpHelpInfo:LPHELPINFO);stdcall;     TMSGBOXCALLBACK = MSGBOXCALLBACK;     MSGBOXPARAMSA = record          cbSize : UINT;          hwndOwner : HWND;          hInstance : HINST;          lpszText : LPCSTR;          lpszCaption : LPCSTR;          dwStyle : DWORD;          lpszIcon : LPCSTR;          dwContextHelpId : DWORD_PTR;          lpfnMsgBoxCallback : MSGBOXCALLBACK;          dwLanguageId : DWORD;       end;     LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;     TMSGBOXPARAMSA  =  MSGBOXPARAMSA;     PMSGBOXPARAMSA  = ^MSGBOXPARAMSA;     MSGBOXPARAMSW = record          cbSize : UINT;          hwndOwner : HWND;          hInstance : HINST;          lpszText : LPCWSTR;          lpszCaption : LPCWSTR;          dwStyle : DWORD;          lpszIcon : LPCWSTR;          dwContextHelpId : DWORD_PTR;          lpfnMsgBoxCallback : MSGBOXCALLBACK;          dwLanguageId : DWORD;     end;     LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;     TMSGBOXPARAMSW  =  MSGBOXPARAMSW;     PMSGBOXPARAMSW  = ^MSGBOXPARAMSW;     {$ifdef Unicode}     LPMSGBOXPARAMS  = ^MSGBOXPARAMSW;     TMSGBOXPARAMS   =  MSGBOXPARAMSW;     PMSGBOXPARAMS   = ^MSGBOXPARAMSW;     MSGBOXPARAMS    =  MSGBOXPARAMSW;     {$else}     LPMSGBOXPARAMS  = ^MSGBOXPARAMSA;     TMSGBOXPARAMS   =  MSGBOXPARAMSA;     PMSGBOXPARAMS   = ^MSGBOXPARAMSA;     MSGBOXPARAMS    =  MSGBOXPARAMSA;     {$endif}     MSGFILTER = record          nmhdr : NMHDR;          msg : UINT;          wParam : WPARAM;          lParam : LPARAM;       end;     _msgfilter = MSGFILTER;     Tmsgfilter = MSGFILTER;     Pmsgfilter = ^MSGFILTER;     MULTIKEYHELPA = record          mkSize : DWORD;          mkKeylist : AnsiCHAR;          szKeyphrase : array[0..0] of AnsiCHAR;       end;     tagMULTIKEYHELPA = MULTIKEYHELPA;     TMULTIKEYHELPA   = MULTIKEYHELPA;     PMULTIKEYHELPA   = ^MULTIKEYHELPA;     MULTIKEYHELPW = record          mkSize : DWORD;          mkKeylist : WideCHAR;          szKeyphrase : array[0..0] of WideCHAR;       end;     tagMULTIKEYHELPW = MULTIKEYHELPW;     TMULTIKEYHELPW   = MULTIKEYHELPW;     PMULTIKEYHELPW   = ^MULTIKEYHELPW;     {$ifdef Unicode}        tagMULTIKEYHELP = MULTIKEYHELPW;        TMULTIKEYHELP   = MULTIKEYHELPW;        PMULTIKEYHELP   = PMULTIKEYHELPW;        MULTIKEYHELP    = MULTIKEYHELPW;     {$else}        tagMULTIKEYHELP = MULTIKEYHELPA;        TMULTIKEYHELP   = MULTIKEYHELPA;        PMULTIKEYHELP   = PMULTIKEYHELPA;        MULTIKEYHELP    = MULTIKEYHELPA;     {$endif}     NAME_BUFFER = record          name : array[0..(NCBNAMSZ)-1] of UCHAR;          name_num : UCHAR;          name_flags : UCHAR;       end;     _NAME_BUFFER = NAME_BUFFER;     TNAMEBUFFER = NAME_BUFFER;     PNAMEBUFFER = ^NAME_BUFFER;     p_NCB = ^_NCB;     NCB = record          ncb_command : UCHAR;          ncb_retcode : UCHAR;          ncb_lsn : UCHAR;          ncb_num : UCHAR;          ncb_buffer : PUCHAR;          ncb_length : WORD;          ncb_callname : array[0..(NCBNAMSZ)-1] of UCHAR;          ncb_name : array[0..(NCBNAMSZ)-1] of UCHAR;          ncb_rto : UCHAR;          ncb_sto : UCHAR;          ncb_post : procedure (_para1:p_NCB);CDECL;          ncb_lana_num : UCHAR;          ncb_cmd_cplt : UCHAR;          ncb_reserve : array[0..9] of UCHAR;          ncb_event : HANDLE;       end;     _NCB = NCB;     TNCB = NCB;     PNCB = ^NCB;     NCCALCSIZE_PARAMS = record          rgrc : array[0..2] of RECT;          lppos : PWINDOWPOS;       end;     _NCCALCSIZE_PARAMS = NCCALCSIZE_PARAMS;     TNCCALCSIZEPARAMS = NCCALCSIZE_PARAMS;     PNCCALCSIZEPARAMS = ^NCCALCSIZE_PARAMS;     NDDESHAREINFO = record          lRevision : LONG;          lpszShareName : LPTSTR;          lShareType : LONG;          lpszAppTopicList : LPTSTR;          fSharedFlag : LONG;          fService : LONG;          fStartAppFlag : LONG;          nCmdShow : LONG;          qModifyId : array[0..1] of LONG;          cNumItems : LONG;          lpszItemList : LPTSTR;       end;     _NDDESHAREINFO = NDDESHAREINFO;     TNDDESHAREINFO = NDDESHAREINFO;     PNDDESHAREINFO = ^NDDESHAREINFO;     NETRESOURCEA = record          dwScope : DWORD;          dwType : DWORD;          dwDisplayType : DWORD;          dwUsage : DWORD;          lpLocalName : LPSTR;          lpRemoteName : LPSTR;          lpComment : LPSTR;          lpProvider : LPSTR;       end;     LPNETRESOURCEA = ^NETRESOURCEA;     _NETRESOURCEA  = NETRESOURCEA;     TNETRESOURCEA  = NETRESOURCEA;     PNETRESOURCEA  = ^NETRESOURCEA;     NETRESOURCEW = record          dwScope : DWORD;          dwType : DWORD;          dwDisplayType : DWORD;          dwUsage : DWORD;          lpLocalName : LPWSTR;          lpRemoteName : LPWSTR;          lpComment : LPWSTR;          lpProvider : LPWSTR;       end;     LPNETRESOURCEW = ^NETRESOURCEW;     _NETRESOURCEW = NETRESOURCEW;     TNETRESOURCEW = NETRESOURCEW;     PNETRESOURCEW = ^NETRESOURCEW;     {$ifdef Unicode}     LPNETRESOURCE = ^NETRESOURCEW;     _NETRESOURCE  = NETRESOURCEW;     TNETRESOURCE  = NETRESOURCEW;     NETRESOURCE   = NETRESOURCEW;     PNETRESOURCE  = ^NETRESOURCEW;     {$else}     LPNETRESOURCE = ^NETRESOURCEA;     _NETRESOURCE  = NETRESOURCEA;     TNETRESOURCE  = NETRESOURCEA;     NETRESOURCE   = NETRESOURCEA;     PNETRESOURCE  = ^NETRESOURCEA;     {$endif}     NEWCPLINFOA = record          dwSize : DWORD;          dwFlags : DWORD;          dwHelpContext : DWORD;          lData : LONG_PTR;          hIcon : HICON;          szName : array[0..31] of AnsiCHAR;          szInfo : array[0..63] of AnsiCHAR;          szHelpFile : array[0..127] of AnsiCHAR;       end;     tagNEWCPLINFOA = NEWCPLINFOA;     TNEWCPLINFOA   = NEWCPLINFOA;     PNEWCPLINFOA   = ^NEWCPLINFOA;     NEWCPLINFOW = record          dwSize : DWORD;          dwFlags : DWORD;          dwHelpContext : DWORD;          lData : LONG;          hIcon : HICON;          szName : array[0..31] of WideCHAR;          szInfo : array[0..63] of WideCHAR;          szHelpFile : array[0..127] of WideCHAR;       end;     tagNEWCPLINFOW = NEWCPLINFOW;     TNEWCPLINFOW   = NEWCPLINFOW;     PNEWCPLINFOW   = ^NEWCPLINFOW;     {$ifdef Unicode}       tagNEWCPLINFO = NEWCPLINFOW;       TNEWCPLINFO   = NEWCPLINFOW;       PNEWCPLINFO   = PNEWCPLINFOW;       NEWCPLINFO    = NEWCPLINFOW;     {$else}       tagNEWCPLINFO = NEWCPLINFOA;       TNEWCPLINFO   = NEWCPLINFOA;       PNEWCPLINFO   = PNEWCPLINFOA;       NEWCPLINFO    = NEWCPLINFOA;     {$endif}     NEWTEXTMETRICA = record          tmHeight : LONG;          tmAscent : LONG;          tmDescent : LONG;          tmInternalLeading : LONG;          tmExternalLeading : LONG;          tmAveCharWidth : LONG;          tmMaxCharWidth : LONG;          tmWeight : LONG;          tmOverhang : LONG;          tmDigitizedAspectX : LONG;          tmDigitizedAspectY : LONG;          tmFirstChar : AnsiChar;          tmLastChar : AnsiChar;          tmDefaultChar : AnsiChar;          tmBreakChar : AnsiChar;          tmItalic : BYTE;          tmUnderlined : BYTE;          tmStruckOut : BYTE;          tmPitchAndFamily : BYTE;          tmCharSet : BYTE;          ntmFlags : DWORD;          ntmSizeEM : UINT;          ntmCellHeight : UINT;          ntmAvgWidth : UINT;       end;     LPNEWTEXTMETRICA  = ^NEWTEXTMETRICA;     tagNEWTEXTMETRICA = NEWTEXTMETRICA;     _NEWTEXTMETRICA   = NEWTEXTMETRICA;     TNEWTEXTMETRICA   = NEWTEXTMETRICA;     PNEWTEXTMETRICA   = ^NEWTEXTMETRICA;        NEWTEXTMETRICW    = record       tmHeight           :LONG;       tmAscent           :LONG;       tmDescent          :LONG;       tmInternalLeading  :LONG;       tmExternalLeading  :LONG;       tmAveCharWidth     :LONG;       tmMaxCharWidth     :LONG;       tmWeight           :LONG;       tmOverhang         :LONG;       tmDigitizedAspectX :LONG;       tmDigitizedAspectY :LONG;       tmFirstChar        :WCHAR;       tmLastChar         :WCHAR;       tmDefaultChar      :WCHAR;       tmBreakChar        :WCHAR;       tmItalic           :Byte;       tmUnderlined       :Byte;       tmStruckOut        :Byte;       tmPitchAndFamily   :Byte;       tmCharSet          :Byte;       ntmFlags           :DWORD;       ntmSizeEM          :UINT;       ntmCellHeight      :UINT;       ntmAvgWidth        :UINT;     end;     LPNEWTEXTMETRICW  = ^NEWTEXTMETRICW;     tagNEWTEXTMETRICW = NEWTEXTMETRICW;     _NEWTEXTMETRICW   = NEWTEXTMETRICW;     TNEWTEXTMETRICW   = NEWTEXTMETRICW;     PNEWTEXTMETRICW   = ^NEWTEXTMETRICW;       {$IFNDEF UNICODE}     LPNEWTEXTMETRIC   = ^NEWTEXTMETRICA;     _NEWTEXTMETRIC    = NEWTEXTMETRICA;     tagNEWTEXTMETRIC  = NEWTEXTMETRICA;     TNEWTEXTMETRIC    = NEWTEXTMETRICA;     PNEWTEXTMETRIC    = ^NEWTEXTMETRICA;     NEWTEXTMETRIC     = NEWTEXTMETRICA;    {$ELSE}     LPNEWTEXTMETRIC   = ^NEWTEXTMETRICW;     _NEWTEXTMETRIC    = NEWTEXTMETRICW;     tagNEWTEXTMETRIC  = NEWTEXTMETRICW;     TNEWTEXTMETRIC    = NEWTEXTMETRICW;     PNEWTEXTMETRIC    = ^NEWTEXTMETRICW;     NEWTEXTMETRIC     = NEWTEXTMETRICW;    {$ENDIF}     NEWTEXTMETRICEXA = record          ntmentm : NEWTEXTMETRICA;          ntmeFontSignature : FONTSIGNATURE;       end;     LPNEWTEXTMETRICEXA  = ^NEWTEXTMETRICEXA;     tagNEWTEXTMETRICEXA = NEWTEXTMETRICEXA;     TNEWTEXTMETRICEXA   = NEWTEXTMETRICEXA;     PNEWTEXTMETRICEXA   = ^NEWTEXTMETRICEXA;        NEWTEXTMETRICEXW    = record       ntmentm           :NEWTEXTMETRICW;       ntmeFontSignature :FONTSIGNATURE;    end;     LPNEWTEXTMETRICEXW  = ^NEWTEXTMETRICEXW;     tagNEWTEXTMETRICEXW = NEWTEXTMETRICEXW;     TNEWTEXTMETRICEXW   = NEWTEXTMETRICEXW;     PNEWTEXTMETRICEXW   = ^NEWTEXTMETRICEXW;       {$IFNDEF UNICODE}     LPNEWTEXTMETRICEX   = ^NEWTEXTMETRICEXA;     _NEWTEXTMETRICEX    = NEWTEXTMETRICEXA;     tagNEWTEXTMETRICEX  = NEWTEXTMETRICEXA;     TNEWTEXTMETRICEX    = NEWTEXTMETRICEXA;     PNEWTEXTMETRICEX    = ^NEWTEXTMETRICEXA;     NEWTEXTMETRICEX     = NEWTEXTMETRICEXA;    {$ELSE}     LPNEWTEXTMETRICEX   = ^NEWTEXTMETRICEXW;     _NEWTEXTMETRICEX    = NEWTEXTMETRICEXW;     tagNEWTEXTMETRICEX  = NEWTEXTMETRICEXW;     TNEWTEXTMETRICEX    = NEWTEXTMETRICEXW;     PNEWTEXTMETRICEX    = ^NEWTEXTMETRICEXW;     NEWTEXTMETRICEX     = NEWTEXTMETRICEXW;    {$ENDIF}        NM_LISTVIEW = record          hdr : NMHDR;          iItem : longint;          iSubItem : longint;          uNewState : UINT;          uOldState : UINT;          uChanged : UINT;          ptAction : POINT;          lParam : LPARAM;       end;     tagNM_LISTVIEW = NM_LISTVIEW;     TNMLISTVIEW = NM_LISTVIEW;     PNMLISTVIEW = ^NM_LISTVIEW;     TV_ITEM = record          mask : UINT;          hItem : HTREEITEM;          state : UINT;          stateMask : UINT;          pszText : LPTSTR;          cchTextMax : longint;          iImage : longint;          iSelectedImage : longint;          cChildren : longint;          lParam : LPARAM;       end;     LPTV_ITEM = ^TV_ITEM;     _TV_ITEM = TV_ITEM;     TTVITEM = TV_ITEM;     PTVITEM = ^TV_ITEM;     NM_TREEVIEW = record          hdr : NMHDR;          action : UINT;          itemOld : TV_ITEM;          itemNew : TV_ITEM;          ptDrag : POINT;       end;     LPNM_TREEVIEW = ^NM_TREEVIEW;     _NM_TREEVIEW = NM_TREEVIEW;     TNMTREEVIEW = NM_TREEVIEW;     PNMTREEVIEW = ^NM_TREEVIEW;     NM_UPDOWNW = record          hdr : NMHDR;          iPos : longint;          iDelta : longint;       end;     _NM_UPDOWN = NM_UPDOWNW;     TNMUPDOWN = NM_UPDOWNW;     PNMUPDOWN = ^NM_UPDOWNW;     NONCLIENTMETRICS = record          cbSize : UINT;          iBorderWidth : longint;          iScrollWidth : longint;          iScrollHeight : longint;          iCaptionWidth : longint;          iCaptionHeight : longint;          lfCaptionFont : LOGFONT;          iSmCaptionWidth : longint;          iSmCaptionHeight : longint;          lfSmCaptionFont : LOGFONT;          iMenuWidth : longint;          iMenuHeight : longint;          lfMenuFont : LOGFONT;          lfStatusFont : LOGFONT;          lfMessageFont : LOGFONT;          //iPaddedBorderWidth : longint;     // WINVER >= 0x0600       end;     LPNONCLIENTMETRICS = ^NONCLIENTMETRICS;     tagNONCLIENTMETRICS = NONCLIENTMETRICS;     TNONCLIENTMETRICS = NONCLIENTMETRICS;     PNONCLIENTMETRICS = ^NONCLIENTMETRICS;     SERVICE_ADDRESS = record          dwAddressType : DWORD;          dwAddressFlags : DWORD;          dwAddressLength : DWORD;          dwPrincipalLength : DWORD;          lpAddress : ^BYTE;          lpPrincipal : ^BYTE;       end;     _SERVICE_ADDRESS = SERVICE_ADDRESS;     TSERVICEADDRESS = SERVICE_ADDRESS;     PSERVICEADDRESS = ^SERVICE_ADDRESS;     SERVICE_ADDRESSES = record          dwAddressCount : DWORD;          Addresses : array[0..0] of SERVICE_ADDRESS;       end;     LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;     _SERVICE_ADDRESSES = SERVICE_ADDRESSES;     TSERVICEADDRESSES = SERVICE_ADDRESSES;     PSERVICEADDRESSES = ^SERVICE_ADDRESSES;     GUID = system.tguid;     LPGUID = ^GUID;     _GUID = GUID;     TGUID = GUID;     PGUID = ^GUID;     CLSID = GUID;     LPCLSID = ^CLSID;     TCLSID = CLSID;     PCLSID = ^CLSID;     SERVICE_INFO = record          lpServiceType : LPGUID;          lpServiceName : LPTSTR;          lpComment : LPTSTR;          lpLocale : LPTSTR;          dwDisplayHint : DWORD;          dwVersion : DWORD;          dwTime : DWORD;          lpMachineName : LPTSTR;          lpServiceAddress : LPSERVICE_ADDRESSES;          ServiceSpecificInfo : BLOB;       end;     _SERVICE_INFO = SERVICE_INFO;     TSERVICEINFO = SERVICE_INFO;     PSERVICEINFO = ^SERVICE_INFO;     NS_SERVICE_INFO = record          dwNameSpace : DWORD;          ServiceInfo : SERVICE_INFO;       end;     _NS_SERVICE_INFO = NS_SERVICE_INFO;     TNSSERVICEINFO = NS_SERVICE_INFO;     PNSSERVICEINFO = ^NS_SERVICE_INFO;     NUMBERFMTA = record          NumDigits : UINT;          LeadingZero : UINT;          Grouping : UINT;          lpDecimalSep : LPSTR;          lpThousandSep : LPSTR;          NegativeOrder : UINT;       end;     _numberfmtA = NUMBERFMTA;     TnumberfmtA = NUMBERFMTA;     PnumberfmtA = ^NUMBERFMTA;     NUMBERFMTW = record          NumDigits : UINT;          LeadingZero : UINT;          Grouping : UINT;          lpDecimalSep : LPWSTR;          lpThousandSep : LPWSTR;          NegativeOrder : UINT;       end;     _numberfmtW = NUMBERFMTW;     TnumberfmtW = NUMBERFMTW;     PnumberfmtW = ^NUMBERFMTW;     {$ifdef Unicode}     _NUMBERFMT = NUMBERFMTW;     TNUMBERFMT = NUMBERFMTW;     NUMBERFMT  = NUMBERFMTW;     PNUMBERFMT = ^NUMBERFMTW;     {$else}     _NUMBERFMT = NUMBERFMTA;     TNUMBERFMT = NUMBERFMTA;     NUMBERFMT  = NUMBERFMTA;     PNUMBERFMT = ^NUMBERFMTA;     {$endif}     OFSTRUCT = record          cBytes : BYTE;          fFixedDisk : BYTE;          nErrCode : WORD;          Reserved1 : WORD;          Reserved2 : WORD;          szPathName : array[0..(OFS_MAXPATHNAME)-1] of CHAR;       end;     LPOFSTRUCT = ^OFSTRUCT;     _OFSTRUCT = OFSTRUCT;     TOFSTRUCT = OFSTRUCT;     POFSTRUCT = ^OFSTRUCT;     OPENFILENAME_NT4 = record          lStructSize : DWORD;          hwndOwner : HWND;          hInstance : HINST;          lpstrFilter : LPCTSTR;          lpstrCustomFilter : LPTSTR;          nMaxCustFilter : DWORD;          nFilterIndex : DWORD;          lpstrFile : LPTSTR;          nMaxFile : DWORD;          lpstrFileTitle : LPTSTR;          nMaxFileTitle : DWORD;          lpstrInitialDir : LPCTSTR;          lpstrTitle : LPCTSTR;          Flags : DWORD;          nFileOffset : WORD;          nFileExtension : WORD;          lpstrDefExt : LPCTSTR;          lCustData : LPARAM;          lpfnHook : LPOFNHOOKPROC;          lpTemplateName : LPCTSTR;       end;     LPOPENFILENAME_NT4 = ^OPENFILENAME_NT4;     TOPENFILENAME_NT4 = OPENFILENAME_NT4;     POPENFILENAME_NT4 = ^OPENFILENAME_NT4;     OPENFILENAME = record          lStructSize : DWORD;          hwndOwner : HWND;          hInstance : HINST;          lpstrFilter : LPCTSTR;          lpstrCustomFilter : LPTSTR;          nMaxCustFilter : DWORD;          nFilterIndex : DWORD;          lpstrFile : LPTSTR;          nMaxFile : DWORD;          lpstrFileTitle : LPTSTR;          nMaxFileTitle : DWORD;          lpstrInitialDir : LPCTSTR;          lpstrTitle : LPCTSTR;          Flags : DWORD;          nFileOffset : WORD;          nFileExtension : WORD;          lpstrDefExt : LPCTSTR;          lCustData : LPARAM;          lpfnHook : LPOFNHOOKPROC;          lpTemplateName : LPCTSTR;          pvReserved : pointer;          dwreserved : dword;          FlagsEx    : dword;       end;     LPOPENFILENAME = ^OPENFILENAME;     TOPENFILENAME = OPENFILENAME;     POPENFILENAME = ^OPENFILENAME;     tagOFN = OPENFILENAME;     TOFN = OPENFILENAME;     POFN = ^OPENFILENAME;     OFNOTIFY = record          hdr : NMHDR;          lpOFN : LPOPENFILENAME;          pszFile : LPTSTR;       end;     LPOFNOTIFY = ^OFNOTIFY;     _OFNOTIFY = OFNOTIFY;     TOFNOTIFY = OFNOTIFY;     POFNOTIFY = ^OFNOTIFY;     OSVERSIONINFOA = record          dwOSVersionInfoSize : DWORD;          dwMajorVersion : DWORD;          dwMinorVersion : DWORD;          dwBuildNumber : DWORD;          dwPlatformId : DWORD;          szCSDVersion : array[0..127] of AnsiCHAR;       end;     LPOSVERSIONINFOA= ^OSVERSIONINFOA;     _OSVERSIONINFOA = OSVERSIONINFOA;     TOSVERSIONINFOA = OSVERSIONINFOA;     POSVERSIONINFOA = LPOSVERSIONINFOA;     OSVERSIONINFOW = record       dwOSVersionInfoSize : DWORD;       dwMajorVersion : DWORD;       dwMinorVersion : DWORD;       dwBuildNumber : DWORD;       dwPlatformId : DWORD;       szCSDVersion : array[0..127] of WCHAR;     end;     LPOSVERSIONINFOW = ^OSVERSIONINFOW;     _OSVERSIONINFOW = OSVERSIONINFOW;     TOSVERSIONINFOW = OSVERSIONINFOW;     POSVERSIONINFOW = LPOSVERSIONINFOW;     {$IFNDEF UNICODE}       LPOSVERSIONINFO  = ^OSVERSIONINFOA;       _OSVERSIONINFO   = OSVERSIONINFOA;       TOSVERSIONINFO   = OSVERSIONINFOA;       POSVERSIONINFO   = ^OSVERSIONINFOA;       OSVERSIONINFO    = OSVERSIONINFOA;     {$ELSE}       LPOSVERSIONINFO  = ^OSVERSIONINFOW;       _OSVERSIONINFO   = OSVERSIONINFOW;       TOSVERSIONINFO   = OSVERSIONINFOW;       POSVERSIONINFO   = ^OSVERSIONINFOW;       OSVERSIONINFO    = OSVERSIONINFOW;     {$ENDIF}     {$push}     {$packrecords 4}     TEXTMETRICA = record          tmHeight : LONG;          tmAscent : LONG;          tmDescent : LONG;          tmInternalLeading : LONG;          tmExternalLeading : LONG;          tmAveCharWidth : LONG;          tmMaxCharWidth : LONG;          tmWeight : LONG;          tmOverhang : LONG;          tmDigitizedAspectX : LONG;          tmDigitizedAspectY : LONG;          tmFirstChar : AnsiChar;          tmLastChar : AnsiChar;          tmDefaultChar : AnsiChar;          tmBreakChar : AnsiChar;          tmItalic : BYTE;          tmUnderlined : BYTE;          tmStruckOut : BYTE;          tmPitchAndFamily : BYTE;          tmCharSet : BYTE;       end;     LPTEXTMETRICA  = ^TEXTMETRICA;     tagTEXTMETRICA = TEXTMETRICA;     _TEXTMETRICA   = TEXTMETRICA;     TTEXTMETRICA   = TEXTMETRICA;     PTEXTMETRICA   = LPTEXTMETRICA;     TEXTMETRICW = record          tmHeight : LONG;          tmAscent : LONG;          tmDescent : LONG;          tmInternalLeading : LONG;          tmExternalLeading : LONG;          tmAveCharWidth : LONG;          tmMaxCharWidth : LONG;          tmWeight : LONG;          tmOverhang : LONG;          tmDigitizedAspectX : LONG;          tmDigitizedAspectY : LONG;          tmFirstChar : WCHAR;          tmLastChar : WCHAR;          tmDefaultChar : WCHAR;          tmBreakChar : WCHAR;          tmItalic : BYTE;          tmUnderlined : BYTE;          tmStruckOut : BYTE;          tmPitchAndFamily : BYTE;          tmCharSet : BYTE;       end;     LPTEXTMETRICW = ^TEXTMETRICW;     tagTEXTMETRICW = TEXTMETRICW;     _TEXTMETRICW   = TEXTMETRICW;     TTEXTMETRICW = TEXTMETRICW;     PTEXTMETRICW = ^TEXTMETRICW;     {$IFNDEF UNICODE}       LPTEXTMETRIC       = ^TEXTMETRICA;       _TEXTMETRIC        = TEXTMETRICA;       tagTEXTMETRIC      = TEXTMETRICA;       TTEXTMETRIC        = TEXTMETRICA;       PTEXTMETRIC        = ^TEXTMETRICA;       TEXTMETRIC         = TEXTMETRICA;     {$ELSE}       LPTEXTMETRIC       = ^TEXTMETRICW;       _TEXTMETRIC        = TEXTMETRICW;       tagTEXTMETRIC      = TEXTMETRICW;       TTEXTMETRIC        = TEXTMETRICW;       PTEXTMETRIC        = ^TEXTMETRICW;       TEXTMETRIC         = TEXTMETRICW;     {$ENDIF}     {$PACKRECORDS C}     OUTLINETEXTMETRICA = record          otmSize : UINT;          otmTextMetrics : TEXTMETRICA;          otmFiller : BYTE;          otmPanoseNumber : PANOSE;          otmfsSelection : UINT;          otmfsType : UINT;          otmsCharSlopeRise : longint;          otmsCharSlopeRun : longint;          otmItalicAngle : longint;          otmEMSquare : UINT;          otmAscent : longint;          otmDescent : longint;          otmLineGap : UINT;          otmsCapEmHeight : UINT;          otmsXHeight : UINT;          otmrcFontBox : RECT;          otmMacAscent : longint;          otmMacDescent : longint;          otmMacLineGap : UINT;          otmusMinimumPPEM : UINT;          otmptSubscriptSize : POINT;          otmptSubscriptOffset : POINT;          otmptSuperscriptSize : POINT;          otmptSuperscriptOffset : POINT;          otmsStrikeoutSize : UINT;          otmsStrikeoutPosition : longint;          otmsUnderscoreSize : longint;          otmsUnderscorePosition : longint;          otmpFamilyName : PSTR;          otmpFaceName : PSTR;          otmpStyleName : PSTR;          otmpFullName : PSTR;       end;     LPOUTLINETEXTMETRICA = ^OUTLINETEXTMETRICA;     _OUTLINETEXTMETRICA = OUTLINETEXTMETRICA;     TOUTLINETEXTMETRICA = OUTLINETEXTMETRICA;     POUTLINETEXTMETRICA = ^OUTLINETEXTMETRICA;     OUTLINETEXTMETRICW = record          otmSize : UINT;          otmTextMetrics : TEXTMETRICW;          otmFiller : BYTE;          otmPanoseNumber : PANOSE;          otmfsSelection : UINT;          otmfsType : UINT;          otmsCharSlopeRise : longint;          otmsCharSlopeRun : longint;          otmItalicAngle : longint;          otmEMSquare : UINT;          otmAscent : longint;          otmDescent : longint;          otmLineGap : UINT;          otmsCapEmHeight : UINT;          otmsXHeight : UINT;          otmrcFontBox : RECT;          otmMacAscent : longint;          otmMacDescent : longint;          otmMacLineGap : UINT;          otmusMinimumPPEM : UINT;          otmptSubscriptSize : POINT;          otmptSubscriptOffset : POINT;          otmptSuperscriptSize : POINT;          otmptSuperscriptOffset : POINT;          otmsStrikeoutSize : UINT;          otmsStrikeoutPosition : longint;          otmsUnderscoreSize : longint;          otmsUnderscorePosition : longint;          otmpFamilyName : PSTR;          otmpFaceName : PSTR;          otmpStyleName : PSTR;          otmpFullName : PSTR;       end;     LPOUTLINETEXTMETRICW = ^OUTLINETEXTMETRICW;     _OUTLINETEXTMETRICW = OUTLINETEXTMETRICW;     TOUTLINETEXTMETRICW = OUTLINETEXTMETRICW;     POUTLINETEXTMETRICW = LPOUTLINETEXTMETRICW;     {$ifdef Unicode}     LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICW;     _OUTLINETEXTMETRIC  = OUTLINETEXTMETRICW;     TOUTLINETEXTMETRIC  = OUTLINETEXTMETRICW;     POUTLINETEXTMETRIC  = LPOUTLINETEXTMETRICW;     OUTLINETEXTMETRIC   = OUTLINETEXTMETRICW;     {$else}     LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICA;     _OUTLINETEXTMETRIC  = OUTLINETEXTMETRICA;     TOUTLINETEXTMETRIC  = OUTLINETEXTMETRICA;     POUTLINETEXTMETRIC  = LPOUTLINETEXTMETRICA;     OUTLINETEXTMETRIC   = OUTLINETEXTMETRICA;     {$endif}     {$POP}     OVERLAPPED = record          Internal : ULONG_PTR;          InternalHigh : ULONG_PTR;          Offset : DWORD;          OffsetHigh : DWORD;          hEvent : HANDLE;       end;     LPOVERLAPPED = ^OVERLAPPED;     _OVERLAPPED = OVERLAPPED;     TOVERLAPPED = OVERLAPPED;     POVERLAPPED = ^OVERLAPPED;     {PAGESETUPDLG = record conflicts with function PageSetupDlg }     TPAGESETUPDLG = record          lStructSize : DWORD;          hwndOwner : HWND;          hDevMode : HGLOBAL;          hDevNames : HGLOBAL;          Flags : DWORD;          ptPaperSize : POINT;          rtMinMargin : RECT;          rtMargin : RECT;          hInstance : HINST;          lCustData : LPARAM;          lpfnPageSetupHook : LPPAGESETUPHOOK;          lpfnPagePaintHook : LPPAGEPAINTHOOK;          lpPageSetupTemplateName : LPCTSTR;          hPageSetupTemplate : HGLOBAL;       end;     LPPAGESETUPDLG = ^TPAGESETUPDLG;     PPAGESETUPDLG = ^TPAGESETUPDLG;     tagPSD = TPAGESETUPDLG;     TPSD = TPAGESETUPDLG;     PPSD = ^TPAGESETUPDLG;     PAINTSTRUCT = record          hdc : HDC;          fErase : WINBOOL;          rcPaint : RECT;          fRestore : WINBOOL;          fIncUpdate : WINBOOL;          rgbReserved : array[0..31] of BYTE;       end;     LPPAINTSTRUCT = ^PAINTSTRUCT;     tagPAINTSTRUCT = PAINTSTRUCT;     TPAINTSTRUCT = PAINTSTRUCT;     PPAINTSTRUCT = ^PAINTSTRUCT;     PARAFORMAT = record          cbSize : UINT;          dwMask : DWORD;          wNumbering : WORD;          wReserved : WORD;          dxStartIndent : LONG;          dxRightIndent : LONG;          dxOffset : LONG;          wAlignment : WORD;          cTabCount : SHORT;          rgxTabs : array[0..(MAX_TAB_STOPS)-1] of LONG;       end;     _paraformat = PARAFORMAT;     Tparaformat = PARAFORMAT;     Pparaformat = ^PARAFORMAT;     PERF_COUNTER_BLOCK = record          ByteLength : DWORD;       end;     _PERF_COUNTER_BLOCK = PERF_COUNTER_BLOCK;     TPERFCOUNTERBLOCK = PERF_COUNTER_BLOCK;     PPERFCOUNTERBLOCK = ^PERF_COUNTER_BLOCK;     PERF_COUNTER_DEFINITION = record          ByteLength : DWORD;          CounterNameTitleIndex : DWORD;          CounterNameTitle : LPWSTR;          CounterHelpTitleIndex : DWORD;          CounterHelpTitle : LPWSTR;          DefaultScale : DWORD;          DetailLevel : DWORD;          CounterType : DWORD;          CounterSize : DWORD;          CounterOffset : DWORD;       end;     _PERF_COUNTER_DEFINITION = PERF_COUNTER_DEFINITION;     TPERFCOUNTERDEFINITION = PERF_COUNTER_DEFINITION;     PPERFCOUNTERDEFINITION = ^PERF_COUNTER_DEFINITION;     PERF_DATA_BLOCK = record          Signature : array[0..3] of WCHAR;          LittleEndian : DWORD;          Version : DWORD;          Revision : DWORD;          TotalByteLength : DWORD;          HeaderLength : DWORD;          NumObjectTypes : DWORD;          DefaultObject : DWORD;          SystemTime : SYSTEMTIME;          PerfTime : LARGE_INTEGER;          PerfFreq : LARGE_INTEGER;          PerfTime100nSec : LARGE_INTEGER;          SystemNameLength : DWORD;          SystemNameOffset : DWORD;       end;     _PERF_DATA_BLOCK = PERF_DATA_BLOCK;     TPERFDATABLOCK = PERF_DATA_BLOCK;     PPERFDATABLOCK = ^PERF_DATA_BLOCK;     PERF_INSTANCE_DEFINITION = record          ByteLength : DWORD;          ParentObjectTitleIndex : DWORD;          ParentObjectInstance : DWORD;          UniqueID : DWORD;          NameOffset : DWORD;          NameLength : DWORD;       end;     _PERF_INSTANCE_DEFINITION = PERF_INSTANCE_DEFINITION;     TPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION;     PPERFINSTANCEDEFINITION = PERF_INSTANCE_DEFINITION;     PERF_OBJECT_TYPE = record          TotalByteLength : DWORD;          DefinitionLength : DWORD;          HeaderLength : DWORD;          ObjectNameTitleIndex : DWORD;          ObjectNameTitle : LPWSTR;          ObjectHelpTitleIndex : DWORD;          ObjectHelpTitle : LPWSTR;          DetailLevel : DWORD;          NumCounters : DWORD;          DefaultCounter : DWORD;          NumInstances : DWORD;          CodePage : DWORD;          PerfTime : LARGE_INTEGER;          PerfFreq : LARGE_INTEGER;       end;     _PERF_OBJECT_TYPE = PERF_OBJECT_TYPE;     TPERFOBJECTTYPE = PERF_OBJECT_TYPE;     PPERFOBJECTTYPE = ^PERF_OBJECT_TYPE;     POLYTEXTA = record          x : longint;          y : longint;          n : UINT;          lpstr : LPCSTR;          uiFlags : UINT;          rcl : RECT;          pdx : ^longint;       end;     _POLYTEXTA = POLYTEXTA;     TPOLYTEXTA = POLYTEXTA;     PPOLYTEXTA = ^POLYTEXTA;     POLYTEXTW = record          x : longint;          y : longint;          n : UINT;          lpstr : LPCWSTR;          uiFlags : UINT;          rcl : RECT;          pdx : ^longint;       end;     _POLYTEXTW = POLYTEXTW;     TPOLYTEXTW = POLYTEXTW;     PPOLYTEXTW = ^POLYTEXTW;     {$ifdef unicode}     _POLYTEXT = POLYTEXTW;     TPOLYTEXT = POLYTEXTW;     POLYTEXT  = POLYTEXTW;     PPOLYTEXT = ^POLYTEXTW;     {$else}     _POLYTEXT = POLYTEXTA;     TPOLYTEXT = POLYTEXTA;     POLYTEXT  = POLYTEXTA;     PPOLYTEXT = ^POLYTEXTA;     {$endif}     PORT_INFO_1 = record          pName : LPTSTR;       end;     _PORT_INFO_1 = PORT_INFO_1;     TPORTINFO1 = PORT_INFO_1;     PPORTINFO1 = ^PORT_INFO_1;     PORT_INFO_2 = record          pPortName : LPSTR;          pMonitorName : LPSTR;          pDescription : LPSTR;          fPortType : DWORD;          Reserved : DWORD;       end;     _PORT_INFO_2 = PORT_INFO_2;     TPORTINFO2 = PORT_INFO_2;     PPORTINFO2 = ^PORT_INFO_2;     PREVENT_MEDIA_REMOVAL = record          PreventMediaRemoval : BOOLEAN;       end;     _PREVENT_MEDIA_REMOVAL = PREVENT_MEDIA_REMOVAL;     TPREVENTMEDIAREMOVAL = PREVENT_MEDIA_REMOVAL;     PPREVENTMEDIAREMOVAL = ^PREVENT_MEDIA_REMOVAL;     {PRINTDLG = record conflicts with PrintDlg function }     TPRINTDLG = {$ifndef win64}packed {$endif}record          lStructSize : DWORD;          hwndOwner : HWND;          hDevMode : HGLOBAL;          hDevNames : HGLOBAL;          hDC : HDC;          Flags : DWORD;          nFromPage : WORD;          nToPage : WORD;          nMinPage : WORD;          nMaxPage : WORD;          nCopies : WORD;          hInstance : HINST;          lCustData : LPARAM;          lpfnPrintHook : LPPRINTHOOKPROC;          lpfnSetupHook : LPSETUPHOOKPROC;          lpPrintTemplateName : LPCTSTR;          lpSetupTemplateName : LPCTSTR;          hPrintTemplate : HGLOBAL;          hSetupTemplate : HGLOBAL;       end;     LPPRINTDLG = ^TPRINTDLG;     PPRINTDLG = ^TPRINTDLG;     tagPD = TPRINTDLG;     TPD = TPRINTDLG;     PPD = ^TPRINTDLG;     PRINTER_DEFAULTS = record          pDatatype : LPTSTR;          pDevMode : LPDEVMODE;          DesiredAccess : ACCESS_MASK;       end;     _PRINTER_DEFAULTS = PRINTER_DEFAULTS;     TPRINTERDEFAULTS = PRINTER_DEFAULTS;     PPRINTERDEFAULTS = ^PRINTER_DEFAULTS;     PRINTER_INFO_1 = record          Flags : DWORD;          pDescription : LPTSTR;          pName : LPTSTR;          pComment : LPTSTR;       end;     LPPRINTER_INFO_1 = ^PRINTER_INFO_1;     PPRINTER_INFO_1 = ^PRINTER_INFO_1;     _PRINTER_INFO_1 = PRINTER_INFO_1;     TPRINTERINFO1 = PRINTER_INFO_1;     PPRINTERINFO1 = ^PRINTER_INFO_1;     PRINTER_INFO_2 = record          pServerName : LPTSTR;          pPrinterName : LPTSTR;          pShareName : LPTSTR;          pPortName : LPTSTR;          pDriverName : LPTSTR;          pComment : LPTSTR;          pLocation : LPTSTR;          pDevMode : LPDEVMODE;          pSepFile : LPTSTR;          pPrintProcessor : LPTSTR;          pDatatype : LPTSTR;          pParameters : LPTSTR;          pSecurityDescriptor : PSECURITY_DESCRIPTOR;          Attributes : DWORD;          Priority : DWORD;          DefaultPriority : DWORD;          StartTime : DWORD;          UntilTime : DWORD;          Status : DWORD;          cJobs : DWORD;          AveragePPM : DWORD;       end;     _PRINTER_INFO_2 = PRINTER_INFO_2;     TPRINTERINFO2 = PRINTER_INFO_2;     PPRINTERINFO2 = ^PRINTER_INFO_2;     PRINTER_INFO_3 = record          pSecurityDescriptor : PSECURITY_DESCRIPTOR;       end;     _PRINTER_INFO_3 = PRINTER_INFO_3;     TPRINTERINFO3 = PRINTER_INFO_3;     PPRINTERINFO3 = ^PRINTER_INFO_3;     PRINTER_INFO_4 = record          pPrinterName : LPTSTR;          pServerName : LPTSTR;          Attributes : DWORD;       end;     _PRINTER_INFO_4 = PRINTER_INFO_4;     TPRINTERINFO4 = PRINTER_INFO_4;     PPRINTERINFO4 = ^PRINTER_INFO_4;     PRINTER_INFO_5 = record          pPrinterName : LPTSTR;          pPortName : LPTSTR;          Attributes : DWORD;          DeviceNotSelectedTimeout : DWORD;          TransmissionRetryTimeout : DWORD;       end;     _PRINTER_INFO_5 = PRINTER_INFO_5;     TPRINTERINFO5 = PRINTER_INFO_5;     PPRINTERINFO5 = ^PRINTER_INFO_5;     PRINTER_NOTIFY_INFO_DATA = record          _Type : WORD;          Field : WORD;          Reserved : DWORD;          Id : DWORD;          NotifyData : record              case longint of                 0 : ( adwData : array[0..1] of DWORD );                 1 : ( Data : record                      cbBuf : DWORD;                      pBuf : LPVOID;                   end );              end;       end;     _PRINTER_NOTIFY_INFO_DATA = PRINTER_NOTIFY_INFO_DATA;     TPRINTERNOTIFYINFODATA = PRINTER_NOTIFY_INFO_DATA;     PPRINTERNOTIFYINFODATA = ^PRINTER_NOTIFY_INFO_DATA;     PRINTER_NOTIFY_INFO = record          Version : DWORD;          Flags : DWORD;          Count : DWORD;          aData : array[0..0] of PRINTER_NOTIFY_INFO_DATA;       end;     _PRINTER_NOTIFY_INFO = PRINTER_NOTIFY_INFO;     TPRINTERNOTIFYINFO = PRINTER_NOTIFY_INFO;     PPRINTERNOTIFYINFO = ^PRINTER_NOTIFY_INFO;     PRINTER_NOTIFY_OPTIONS_TYPE = record          _Type : WORD;          Reserved0 : WORD;          Reserved1 : DWORD;          Reserved2 : DWORD;          Count : DWORD;          pFields : PWORD;       end;     PPRINTER_NOTIFY_OPTIONS_TYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE;     _PRINTER_NOTIFY_OPTIONS_TYPE = PRINTER_NOTIFY_OPTIONS_TYPE;     TPRINTERNOTIFYOPTIONSTYPE = PRINTER_NOTIFY_OPTIONS_TYPE;     PPRINTERNOTIFYOPTIONSTYPE = ^PRINTER_NOTIFY_OPTIONS_TYPE;     PRINTER_NOTIFY_OPTIONS = record          Version : DWORD;          Flags : DWORD;          Count : DWORD;          pTypes : PPRINTER_NOTIFY_OPTIONS_TYPE;       end;     _PRINTER_NOTIFY_OPTIONS = PRINTER_NOTIFY_OPTIONS;     TPRINTERNOTIFYOPTIONS = PRINTER_NOTIFY_OPTIONS;     PPRINTERNOTIFYOPTIONS = ^PRINTER_NOTIFY_OPTIONS;     PRINTPROCESSOR_INFO_1 = record          pName : LPTSTR;       end;     _PRINTPROCESSOR_INFO_1 = PRINTPROCESSOR_INFO_1;     TPRINTPROCESSORINFO1 = PRINTPROCESSOR_INFO_1;     PPRINTPROCESSORINFO1 = ^PRINTPROCESSOR_INFO_1;     PRIVILEGE_SET = record          PrivilegeCount : DWORD;          Control : DWORD;          Privilege : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;       end;     LPPRIVILEGE_SET = ^PRIVILEGE_SET;     PPRIVILEGE_SET = ^PRIVILEGE_SET;     _PRIVILEGE_SET = PRIVILEGE_SET;     TPRIVILEGESET = PRIVILEGE_SET;     PPRIVILEGESET = ^PRIVILEGE_SET;     PROCESS_HEAPENTRY = record          lpData : PVOID;          cbData : DWORD;          cbOverhead : BYTE;          iRegionIndex : BYTE;          wFlags : WORD;          case longint of            0 : (hMem : HANDLE;                 dwReserved : array [0..2] of DWORD;                );            1 : (dwCommittedSize : DWORD;                 dwUnCommittedSize : DWORD;                 lpFirstBlock : LPVOID;                 lpLastBlock : LPVOID;                );       end;     LPPROCESS_HEAP_ENTRY = ^PROCESS_HEAPENTRY;     _PROCESS_HEAP_ENTRY = PROCESS_HEAPENTRY;     TPROCESSHEAPENTRY = PROCESS_HEAPENTRY;     PPROCESSHEAPENTRY = ^PROCESS_HEAPENTRY;     PROCESS_INFORMATION = record          hProcess : HANDLE;          hThread : HANDLE;          dwProcessId : DWORD;          dwThreadId : DWORD;       end;     LPPROCESS_INFORMATION = ^PROCESS_INFORMATION;     _PROCESS_INFORMATION = PROCESS_INFORMATION;     TPROCESSINFORMATION = PROCESS_INFORMATION;     PPROCESSINFORMATION = ^PROCESS_INFORMATION;     LPFNPSPCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPVOID):UINT;stdcall;     TFNPSPCALLBACK = LPFNPSPCALLBACK;     PROPSHEETPAGE = record          dwSize : DWORD;          dwFlags : DWORD;          hInstance : HINST;          case longint of            0 : (pszTemplate : LPCTSTR);            1 : (pResource : LPCDLGTEMPLATE;                 case longint of                    0 : (hIcon : HICON);                    1 : (pszIcon : LPCTSTR;                         pszTitle : LPCTSTR;                         pfnDlgProc : DLGPROC;                         lParam : LPARAM;                         pfnCallback : LPFNPSPCALLBACK;                         pcRefParent : ^UINT;                        );                );       end;     LPPROPSHEETPAGE = ^PROPSHEETPAGE;     LPCPROPSHEETPAGE = ^PROPSHEETPAGE;     _PROPSHEETPAGE = PROPSHEETPAGE;     TPROPSHEETPAGE = PROPSHEETPAGE;     PPROPSHEETPAGE = ^PROPSHEETPAGE;     emptyrecord = record       end;     lpemptyrecord = ^emptyrecord;     HPROPSHEETPAGE = ^emptyrecord;     PROPSHEETHEADERA = record          dwSize : DWORD;          dwFlags : DWORD;          hwndParent : HWND;          hInstance : HINST;          case longint of              0 : (hIcon : HICON);              1 : (pszIcon : LPCSTR;                   pszCaption : LPCSTR;                   nPages : UINT;                   case longint of                      0 : (nStartPage : UINT);                      1 : (pStartPage : LPCSTR;                           case longint of                              0 : (ppsp : LPCPROPSHEETPAGE);                              1 : (phpage : ^HPROPSHEETPAGE;                                   pfnCallback : PFNPROPSHEETCALLBACK;                                   case longint of                                     0 : (hbmWatermark : HBITMAP);                                     1 : (pszbmWatermark : LPCSTR;                                          hplWatermark : HPALETTE;                                          case longint of                                             0 : (hbmHeader : HBITMAP);                                             1 : (pszbmHeader: LPCStr);                                         );                                  );                          );                  );       end;     LPPROPSHEETHEADERA = ^PROPSHEETHEADERA;     LPCPROPSHEETHEADERA = ^PROPSHEETHEADERA;     _PROPSHEETHEADERA = PROPSHEETHEADERA;     TPROPSHEETHEADERA = PROPSHEETHEADERA;     PPROPSHEETHEADERA = ^PROPSHEETHEADERA;     PROPSHEETHEADERW = record          dwSize : DWORD;          dwFlags : DWORD;          hwndParent : HWND;          hInstance : HINST;          case longint of              0 : (hIcon : HICON);              1 : (pszIcon : LPCWSTR;                   pszCaption : LPCWSTR;                   nPages : UINT;                   case longint of                      0 : (nStartPage : UINT);                      1 : (pStartPage : LPCWSTR;                           case longint of                              0 : (ppsp : LPCPROPSHEETPAGE);                              1 : (phpage : ^HPROPSHEETPAGE;                                   pfnCallback : PFNPROPSHEETCALLBACK;                                   case longint of                                     0 : (hbmWatermark : HBITMAP);                                     1 : (pszbmWatermark : LPCWSTR;                                          hplWatermark : HPALETTE;                                          case longint of                                             0 : (hbmHeader : HBITMAP);                                             1 : (pszbmHeader: LPCWStr);                                         );                                  );                          );                  );       end;     LPPROPSHEETHEADERW = ^PROPSHEETHEADERW;     LPCPROPSHEETHEADERW = ^PROPSHEETHEADERW;     _PROPSHEETHEADERW = PROPSHEETHEADERW;     TPROPSHEETHEADERW = PROPSHEETHEADERW;     PPROPSHEETHEADERW = ^PROPSHEETHEADERW;     {$ifdef Unicode}     PROPSHEETHEADER    = PROPSHEETHEADERW;     LPPROPSHEETHEADER  = LPPROPSHEETHEADERW;     LPCPROPSHEETHEADER = LPCPROPSHEETHEADERW;     _PROPSHEETHEADER   = _PROPSHEETHEADERW;     TPROPSHEETHEADER   = TPROPSHEETHEADERW;     PPROPSHEETHEADER   = PPROPSHEETHEADERW;     {$else}     PROPSHEETHEADER    = PROPSHEETHEADERA;     LPPROPSHEETHEADER  = LPPROPSHEETHEADERA;     LPCPROPSHEETHEADER = LPCPROPSHEETHEADERA;     _PROPSHEETHEADER   = _PROPSHEETHEADERA;     TPROPSHEETHEADER   = TPROPSHEETHEADERA;     PPROPSHEETHEADER   = PPROPSHEETHEADERA;     {$endif}         { PropertySheet callbacks  }     LPFNADDPROPSHEETPAGE = function (_para1:HPROPSHEETPAGE; _para2:LPARAM):WINBOOL;stdcall;     TFNADDPROPSHEETPAGE = LPFNADDPROPSHEETPAGE;     LPFNADDPROPSHEETPAGES = function (_para1:LPVOID; _para2:LPFNADDPROPSHEETPAGE; _para3:LPARAM):WINBOOL;stdcall;     TFNADDPROPSHEETPAGES = LPFNADDPROPSHEETPAGES;     PROTOCOL_INFO = record          dwServiceFlags : DWORD;          iAddressFamily : WINT;          iMaxSockAddr : WINT;          iMinSockAddr : WINT;          iSocketType : WINT;          iProtocol : WINT;          dwMessageSize : DWORD;          lpProtocol : LPTSTR;       end;     _PROTOCOL_INFO = PROTOCOL_INFO;     TPROTOCOLINFO = PROTOCOL_INFO;     PPROTOCOLINFO = ^PROTOCOL_INFO;     PROVIDOR_INFO_1 = record          pName : LPTSTR;          pEnvironment : LPTSTR;          pDLLName : LPTSTR;       end;     _PROVIDOR_INFO_1 = PROVIDOR_INFO_1;     TPROVIDORINFO1 = PROVIDOR_INFO_1;     PPROVIDORINFO1 = ^PROVIDOR_INFO_1;     PSHNOTIFY = record          hdr : NMHDR;          lParam : LPARAM;       end;     LPPSHNOTIFY = ^PSHNOTIFY;     _PSHNOTIFY = PSHNOTIFY;     TPSHNOTIFY = PSHNOTIFY;     PPSHNOTIFY = ^PSHNOTIFY;     PUNCTUATION = record          iSize : UINT;          szPunctuation : LPSTR;       end;     _punctuation = PUNCTUATION;     Tpunctuation = PUNCTUATION;     Ppunctuation = ^PUNCTUATION;     QUERY_SERVICE_CONFIG = record          dwServiceType : DWORD;          dwStartType : DWORD;          dwErrorControl : DWORD;          lpBinaryPathName : LPTSTR;          lpLoadOrderGroup : LPTSTR;          dwTagId : DWORD;          lpDependencies : LPTSTR;          lpServiceStartName : LPTSTR;          lpDisplayName : LPTSTR;       end;     LPQUERY_SERVICE_CONFIG = ^QUERY_SERVICE_CONFIG;     _QUERY_SERVICE_CONFIG = QUERY_SERVICE_CONFIG;     TQUERYSERVICECONFIG = QUERY_SERVICE_CONFIG;     PQUERYSERVICECONFIG = ^QUERY_SERVICE_CONFIG;     QUERY_SERVICE_CONFIGA = record          dwServiceType : DWORD;          dwStartType : DWORD;          dwErrorControl : DWORD;          lpBinaryPathName : LPSTR;          lpLoadOrderGroup : LPSTR;          dwTagId : DWORD;          lpDependencies : LPSTR;          lpServiceStartName : LPSTR;          lpDisplayName : LPSTR;       end;     LPQUERY_SERVICE_CONFIGA = ^QUERY_SERVICE_CONFIGA;     _QUERY_SERVICE_CONFIGA  = QUERY_SERVICE_CONFIGA;     TQUERYSERVICECONFIGA    = QUERY_SERVICE_CONFIGA;     PQUERYSERVICECONFIGA    = ^QUERY_SERVICE_CONFIGA;     QUERY_SERVICE_CONFIGW = record          dwServiceType : DWORD;          dwStartType : DWORD;          dwErrorControl : DWORD;          lpBinaryPathName : LPWSTR;          lpLoadOrderGroup : LPWSTR;          dwTagId : DWORD;          lpDependencies : LPWSTR;          lpServiceStartName : LPWSTR;          lpDisplayName : LPWSTR;       end;     LPQUERY_SERVICE_CONFIGW = ^QUERY_SERVICE_CONFIGW;     _QUERY_SERVICE_CONFIGW  = QUERY_SERVICE_CONFIGW;     TQUERYSERVICECONFIGW    = QUERY_SERVICE_CONFIGW;     PQUERYSERVICECONFIGW    = ^QUERY_SERVICE_CONFIGW;     QUERY_SERVICE_LOCK_STATUSA = record          fIsLocked : DWORD;          lpLockOwner : LPSTR;          dwLockDuration : DWORD;       end;     LPQUERY_SERVICE_LOCK_STATUSA = ^QUERY_SERVICE_LOCK_STATUSA;     _QUERY_SERVICE_LOCK_STATUSA  = QUERY_SERVICE_LOCK_STATUSA;     TQUERYSERVICELOCKSTATUSA     = QUERY_SERVICE_LOCK_STATUSA;     PQUERYSERVICELOCKSTATUSA     = ^QUERY_SERVICE_LOCK_STATUSA;     QUERY_SERVICE_LOCK_STATUSW = record          fIsLocked : DWORD;          lpLockOwner : LPWSTR;          dwLockDuration : DWORD;       end;     LPQUERY_SERVICE_LOCK_STATUSW = ^QUERY_SERVICE_LOCK_STATUSW;     _QUERY_SERVICE_LOCK_STATUSW = QUERY_SERVICE_LOCK_STATUSW;     TQUERYSERVICELOCKSTATUSW = QUERY_SERVICE_LOCK_STATUSW;     PQUERYSERVICELOCKSTATUSW = ^QUERY_SERVICE_LOCK_STATUSW;     {$ifdef Unicode}     LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUSW;     _QUERY_SERVICE_LOCK_STATUS  = QUERY_SERVICE_LOCK_STATUSW;     QUERY_SERVICE_LOCK_STATUS   = QUERY_SERVICE_LOCK_STATUSW;     TQUERYSERVICELOCKSTATUS     = QUERY_SERVICE_LOCK_STATUSW;     PQUERYSERVICELOCKSTATUS     = ^QUERY_SERVICE_LOCK_STATUSW;     {$else}     LPQUERY_SERVICE_LOCK_STATUS = ^QUERY_SERVICE_LOCK_STATUSA;     _QUERY_SERVICE_LOCK_STATUS  = QUERY_SERVICE_LOCK_STATUSA;     QUERY_SERVICE_LOCK_STATUS   = QUERY_SERVICE_LOCK_STATUSA;     TQUERYSERVICELOCKSTATUS     = QUERY_SERVICE_LOCK_STATUSA;     PQUERYSERVICELOCKSTATUS     = ^QUERY_SERVICE_LOCK_STATUSA;     {$endif}     RASAMBA = record          dwSize : DWORD;          dwError : DWORD;          szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of AnsiCHAR;          bLana : BYTE;       end;     _RASAMBA = RASAMBA;     TRASAMBA = RASAMBA;     PRASAMBA = ^RASAMBA;     RASAMBW = record          dwSize : DWORD;          dwError : DWORD;          szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of WideCHAR;          bLana : BYTE;       end;     _RASAMBW = RASAMBW;     TRASAMBW = RASAMBW;     PRASAMBW = ^RASAMBW;     {$ifdef Unicode}       _RASAMB = RASAMBW;       TRASAMB = RASAMBW;       PRASAMB = PRASAMBW;       RASAMB  = RASAMBW;     {$else}       _RASAMB = RASAMBA;       TRASAMB = RASAMBA;       RASAMB  = RASAMBA;       PRASAMB = PRASAMBA;     {$endif}     RASCONNA = record          dwSize : DWORD;          hrasconn : HRASCONN;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of AnsiCHAR;          szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of AnsiCHAR;          szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of AnsiCHAR;       end;     _RASCONNA = RASCONNA;     TRASCONNA = RASCONNA;     PRASCONNA = ^RASCONNA;     RASCONNW = record          dwSize : DWORD;          hrasconn : HRASCONN;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of WideCHAR;          szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of WideCHAR;          szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of WideCHAR;       end;     _RASCONNW = RASCONNW;     TRASCONNW = RASCONNW;     PRASCONNW = ^RASCONNW;     {$ifdef Unicode}        _RASCONN = RASCONNW;        TRASCONN = RASCONNW;        PRASCONN = PRASCONNW;        RASCONN  = RASCONNW;     {$else}        _RASCONN = RASCONNA;        TRASCONN = RASCONNA;        PRASCONN = PRASCONNA;        RASCONN  = RASCONNA;     {$endif}     { actually: in_addr }     RASIPV4ADDR = record       case longint of         0 : (s_b1 : BYTE;              s_b2 : BYTE;              s_b3 : BYTE;              s_b4 : BYTE;             );         1 : (s_w1 : USHORT;              s_w2 : USHORT;             );         2 : (S_addr : ULONG;);     end;     { actually: in6_addr }     RASIPV6ADDR = record       case longint of         0 : (rbyte : array[0..15] of BYTE);         1 : (rword : array[0..7] of USHORT);     end;     RASTUNNELENDPOINT = record       dwType : DWORD;       case longint of         0 : (ipv4 : RASIPV4ADDR);         1 : (ipv6 : RASIPV6ADDR);     end;     RASCONNSUBSTATE = longint;   //enumerated type     RASCONNSTATUSA = record          dwSize : DWORD;          rasconnstate : RASCONNSTATE;          dwError : DWORD;          szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of AnsiCHAR;          szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of AnsiCHAR;          szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of AnsiCHAR; // http://msdn.microsoft.com/en-us/library/windows/desktop/aa376728%28v=vs.85%29.aspx          localEndPoint : RASTUNNELENDPOINT;          remoteEndPoint : RASTUNNELENDPOINT;          rasconnsubstate : RASCONNSUBSTATE;       end;     _RASCONNSTATUSA = RASCONNSTATUSA;     TRASCONNSTATUSA = RASCONNSTATUSA;     PRASCONNSTATUSA = ^RASCONNSTATUSA;     RASCONNSTATUSW = record          dwSize : DWORD;          rasconnstate : RASCONNSTATE;          dwError : DWORD;          szDeviceType : array[0..(RAS_MaxDeviceType + 1)-1] of WideCHAR;          szDeviceName : array[0..(RAS_MaxDeviceName + 1)-1] of WideCHAR;          szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of WideCHAR; // http://msdn.microsoft.com/en-us/library/windows/desktop/aa376728%28v=vs.85%29.aspx          localEndPoint : RASTUNNELENDPOINT;          remoteEndPoint : RASTUNNELENDPOINT;          rasconnsubstate : RASCONNSUBSTATE;       end;     _RASCONNSTATUSW = RASCONNSTATUSW;     TRASCONNSTATUSW = RASCONNSTATUSW;     PRASCONNSTATUSW = ^RASCONNSTATUSW;     {$ifdef Unicode}       _RASCONNSTATUS = RASCONNSTATUSW;       TRASCONNSTATUS = RASCONNSTATUSW;       PRASCONNSTATUS = PRASCONNSTATUSW;       RASCONNSTATUS  = RASCONNSTATUSW;     {$else}       _RASCONNSTATUS = RASCONNSTATUSA;       TRASCONNSTATUS = RASCONNSTATUSA;       PRASCONNSTATUS = PRASCONNSTATUSA;       RASCONNSTATUS  = RASCONNSTATUSA;     {$endif}     RASDIALEXTENSIONS = record          dwSize : DWORD;          dwfOptions : DWORD;          hwndParent : HWND;          reserved : DWORD;       end;     _RASDIALEXTENSIONS = RASDIALEXTENSIONS;     TRASDIALEXTENSIONS = RASDIALEXTENSIONS;     PRASDIALEXTENSIONS = ^RASDIALEXTENSIONS;     RASDIALPARAMSA = record          dwSize : DWORD;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of AnsiCHAR;          szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of AnsiCHAR;          szCallbackNumber : array[0..(RAS_MaxCallbackNumber + 1)-1] of AnsiCHAR;          szUserName : array[0..(UNLEN + 1)-1] of AnsiCHAR;          szPassword : array[0..(PWLEN + 1)-1] of AnsiCHAR;          szDomain : array[0..(DNLEN + 1)-1] of AnsiCHAR;          dwSubEntry : DWORD; // http://msdn.microsoft.com/en-us/library/windows/desktop/aa377238%28v=vs.85%29.aspx          dwCallbackId : ULONG_PTR;          dwIfIndex : DWORD;       end;     _RASDIALPARAMSA = RASDIALPARAMSA;     TRASDIALPARAMSA = RASDIALPARAMSA;     PRASDIALPARAMSA = ^RASDIALPARAMSA;     RASDIALPARAMSW = record          dwSize : DWORD;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of WCHAR;          szPhoneNumber : array[0..(RAS_MaxPhoneNumber + 1)-1] of WCHAR;          szCallbackNumber : array[0..(RAS_MaxCallbackNumber + 1)-1] of WCHAR;          szUserName : array[0..(UNLEN + 1)-1] of WCHAR;          szPassword : array[0..(PWLEN + 1)-1] of WCHAR;          szDomain : array[0..(DNLEN + 1)-1] of WCHAR;          dwSubEntry : DWORD; // http://msdn.microsoft.com/en-us/library/windows/desktop/aa377238%28v=vs.85%29.aspx          dwCallbackId : ULONG_PTR;          dwIfIndex : DWORD;       end;     _RASDIALPARAMSW = RASDIALPARAMSW;     TRASDIALPARAMSW = RASDIALPARAMSW;     PRASDIALPARAMSW = ^RASDIALPARAMSW;     {$ifdef Unicode}        _RASDIALPARAMS = RASDIALPARAMSW;        TRASDIALPARAMS = RASDIALPARAMSW;        PRASDIALPARAMS = PRASDIALPARAMSW;        RASDIALPARAMS  = RASDIALPARAMSW;     {$else}        _RASDIALPARAMS = RASDIALPARAMSA;        TRASDIALPARAMS = RASDIALPARAMSA;        PRASDIALPARAMS = PRASDIALPARAMSA;        RASDIALPARAMS  = RASDIALPARAMSA;     {$endif}     RASENTRYNAMEA = record          dwSize : DWORD;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of AnsiCHAR;          { Winver>=0x500 members }          dwFlags : DWORD;          szPhonebookPath : array[0..(MAX_PATH + 1)-1] of AnsiCHAR;       end;     _RASENTRYNAMEA = RASENTRYNAMEA;     TRASENTRYNAMEA = RASENTRYNAMEA;     PRASENTRYNAMEA = ^RASENTRYNAMEA;     RASENTRYNAMEW = record          dwSize : DWORD;          szEntryName : array[0..(RAS_MaxEntryName + 1)-1] of WCHAR;          { Winver>=0x500 members }          dwFlags : DWORD;          szPhonebookPath : array[0..(MAX_PATH + 1)-1] of WCHAR;       end;     _RASENTRYNAMEW = RASENTRYNAMEW;     TRASENTRYNAMEW = RASENTRYNAMEW;     PRASENTRYNAMEW = ^RASENTRYNAMEW;     {$ifdef Unicode}         _RASENTRYNAME = RASENTRYNAMEW;         TRASENTRYNAME = RASENTRYNAMEW;         PRASENTRYNAME = ^RASENTRYNAMEW;         RASENTRYNAME  = RASENTRYNAMEW;     {$else}         _RASENTRYNAME = RASENTRYNAMEA;         TRASENTRYNAME = RASENTRYNAMEA;         PRASENTRYNAME = ^RASENTRYNAMEA;         RASENTRYNAME  = RASENTRYNAMEA;     {$endif}     RASPPPIPA = record          dwSize : DWORD;          dwError : DWORD;          szIpAddress : array[0..(RAS_MaxIpAddress + 1)-1] of AnsiCHAR;       end;     _RASPPPIPA = RASPPPIPA;     TRASPPPIPA = RASPPPIPA;     PRASPPPIPA = ^RASPPPIPA;     RASPPPIPW = record          dwSize : DWORD;          dwError : DWORD;          szIpAddress : array[0..(RAS_MaxIpAddress + 1)-1] of WCHAR;       end;     _RASPPPIPW = RASPPPIPW;     TRASPPPIPW = RASPPPIPW;     PRASPPPIPW = ^RASPPPIPW;     {$ifdef Unicode}        _RASPPPIP  = RASPPPIPW;        TRASPPPIP  = RASPPPIPW;        PRASPPPIP  = PRASPPPIPW;        RASPPPIP   = RASPPPIPW;     {$else}        _RASPPPIP  = RASPPPIPA;        TRASPPPIP  = RASPPPIPA;        PRASPPPIP  = PRASPPPIPA;        RASPPPIP   = RASPPPIPA;     {$endif}     RASPPPIPXA = record          dwSize : DWORD;          dwError : DWORD;          szIpxAddress : array[0..(RAS_MaxIpxAddress + 1)-1] of AnsiCHAR;       end;     _RASPPPIPXA = RASPPPIPXA;     TRASPPPIPXA = RASPPPIPXA;     PRASPPPIPXA = ^RASPPPIPXA;     RASPPPIPXW = record          dwSize : DWORD;          dwError : DWORD;          szIpxAddress : array[0..(RAS_MaxIpxAddress + 1)-1] of WCHAR;       end;     _RASPPPIPXW = RASPPPIPXW;     TRASPPPIPXW = RASPPPIPXW;     PRASPPPIPXW = ^RASPPPIPXW;     {$ifdef Unicode}        _RASPPPIPX  = RASPPPIPXW;        TRASPPPIPX  = RASPPPIPXW;        PRASPPPIPX  = PRASPPPIPXW;        RASPPPIPX   = RASPPPIPXW;     {$else}        _RASPPPIPX  = RASPPPIPXA;        TRASPPPIPX  = RASPPPIPXA;        PRASPPPIPX  = PRASPPPIPXA;        RASPPPIPX   = RASPPPIPXA;      {$endif}     RASPPPNBFA = record          dwSize : DWORD;          dwError : DWORD;          dwNetBiosError : DWORD;          szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of AnsiCHAR;          szWorkstationName : array[0..(NETBIOS_NAME_LEN + 1)-1] of AnsiCHAR;          bLana : BYTE;       end;     _RASPPPNBFA = RASPPPNBFA;     TRASPPPNBFA = RASPPPNBFA;     PRASPPPNBFA = ^RASPPPNBFA;     RASPPPNBFW = record          dwSize : DWORD;          dwError : DWORD;          dwNetBiosError : DWORD;          szNetBiosError : array[0..(NETBIOS_NAME_LEN + 1)-1] of WCHAR;          szWorkstationName : array[0..(NETBIOS_NAME_LEN + 1)-1] of WCHAR;          bLana : BYTE;       end;     _RASPPPNBFW = RASPPPNBFW;     TRASPPPNBFW = RASPPPNBFW;     PRASPPPNBFW = ^RASPPPNBFW;     {$ifdef Unicode}        _RASPPPNBF  = RASPPPNBFW;        TRASPPPNBF  = RASPPPNBFW;        PRASPPPNBF  = PRASPPPNBFW;        RASPPPNBF   = RASPPPNBFW;     {$else}        _RASPPPNBF  = RASPPPNBFA;        TRASPPPNBF  = RASPPPNBFA;        PRASPPPNBF  = PRASPPPNBFA;        RASPPPNBF   = RASPPPNBFA;     {$endif}     RASTERIZER_STATUS = record          nSize : short;          wFlags : short;          nLanguageID : short;       end;     LPRASTERIZER_STATUS = ^RASTERIZER_STATUS;     _RASTERIZER_STATUS = RASTERIZER_STATUS;     TRASTERIZERSTATUS = RASTERIZER_STATUS;     PRASTERIZERSTATUS = ^RASTERIZER_STATUS;     REASSIGN_BLOCKS = record          Reserved : WORD;          Count : WORD;          BlockNumber : array[0..0] of DWORD;       end;     _REASSIGN_BLOCKS = REASSIGN_BLOCKS;     TREASSIGNBLOCKS = REASSIGN_BLOCKS;     PREASSIGNBLOCKS = ^REASSIGN_BLOCKS;     REMOTE_NAME_INFOA = record          lpUniversalName : LPTSTR;          lpConnectionName : LPTSTR;          lpRemainingPath : LPTSTR;       end;     _REMOTE_NAME_INFOA = REMOTE_NAME_INFOA;     TREMOTENAMEINFOA = REMOTE_NAME_INFOA;     PREMOTENAMEINFOA = ^REMOTE_NAME_INFOA;     REMOTE_NAME_INFOW = record          lpUniversalName : LPWSTR;          lpConnectionName : LPWSTR;          lpRemainingPath : LPWSTR;       end;     _REMOTE_NAME_INFOW = REMOTE_NAME_INFOW;     TREMOTENAMEINFOW = REMOTE_NAME_INFOW;     PREMOTENAMEINFOW = ^REMOTE_NAME_INFOW;{$IFNDEF UNICODE}     REMOTE_NAME_INFO = REMOTE_NAME_INFOA;     _REMOTE_NAME_INFO = REMOTE_NAME_INFOA;     TREMOTENAMEINFO = REMOTE_NAME_INFOA;     PREMOTENAMEINFO = ^REMOTE_NAME_INFOA;{$ELSE UNICODE}     REMOTE_NAME_INFO = REMOTE_NAME_INFOW;     _REMOTE_NAME_INFO = REMOTE_NAME_INFOW;     TREMOTENAMEINFO = REMOTE_NAME_INFOW;     PREMOTENAMEINFO = ^REMOTE_NAME_INFOW;{$ENDIF UNICODE}  (*   TODO: OLE  typedef struct _reobject {    DWORD  cbStruct;    LONG   cp;    CLSID  clsid;    LPOLEOBJECT      poleobj;    LPSTORAGE        pstg;    LPOLECLIENTSITE  polesite;    SIZEL  sizel;    DWORD  dvaspect;    DWORD  dwFlags;    DWORD  dwUser;  } REOBJECT;   *)     REPASTESPECIAL = record          dwAspect : DWORD;          dwParam : DWORD;       end;     _repastespecial = REPASTESPECIAL;     Trepastespecial = REPASTESPECIAL;     Prepastespecial = ^REPASTESPECIAL;     REQRESIZE = record          nmhdr : NMHDR;          rc : RECT;       end;     _reqresize = REQRESIZE;     Treqresize = REQRESIZE;     Preqresize = ^REQRESIZE;     RGNDATAHEADER = record          dwSize : DWORD;          iType : DWORD;          nCount : DWORD;          nRgnSize : DWORD;          rcBound : RECT;       end;     _RGNDATAHEADER = RGNDATAHEADER;     TRGNDATAHEADER = RGNDATAHEADER;     PRGNDATAHEADER = ^RGNDATAHEADER;     RGNDATA = record          rdh : RGNDATAHEADER;          Buffer : array[0..0] of Ansichar;       end;     LPRGNDATA = ^RGNDATA;     _RGNDATA = RGNDATA;     TRGNDATA = RGNDATA;     PRGNDATA = ^RGNDATA;     SCROLLINFO = record          cbSize : UINT;          fMask : UINT;          nMin : longint;          nMax : longint;          nPage : UINT;          nPos : longint;          nTrackPos : longint;       end;     LPSCROLLINFO = ^SCROLLINFO;     LPCSCROLLINFO = ^SCROLLINFO;     tagSCROLLINFO = SCROLLINFO;     TSCROLLINFO = SCROLLINFO;     PSCROLLINFO = ^SCROLLINFO;     SECURITY_ATTRIBUTES = record          nLength : DWORD;          lpSecurityDescriptor : LPVOID;          bInheritHandle : WINBOOL;       end;     LPSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES;     _SECURITY_ATTRIBUTES = SECURITY_ATTRIBUTES;     TSECURITYATTRIBUTES = SECURITY_ATTRIBUTES;     PSECURITYATTRIBUTES = ^SECURITY_ATTRIBUTES;     SECURITY_INFORMATION = DWORD;     PSECURITY_INFORMATION = ^SECURITY_INFORMATION;     TSECURITYINFORMATION = SECURITY_INFORMATION;     PSECURITYINFORMATION = ^SECURITY_INFORMATION;     SELCHANGE = record          nmhdr : NMHDR;          chrg : CHARRANGE;          seltyp : WORD;       end;     _selchange = SELCHANGE;     Tselchange = SELCHANGE;     Pselchange = ^SELCHANGE;     SERIALKEYS = record          cbSize : UINT;          dwFlags : DWORD;          lpszActivePort : LPSTR;          lpszPort : LPSTR;          iBaudRate : DWORD;          iPortState : DWORD;       end;     LPSERIALKEYS = ^SERIALKEYS;     tagSERIALKEYS = SERIALKEYS;     TSERIALKEYS = SERIALKEYS;     PSERIALKEYS = ^SERIALKEYS;     SERVICE_TABLE_ENTRY = record          lpServiceName : LPTSTR;          lpServiceProc : LPSERVICE_MAIN_FUNCTION;       end;     LPSERVICE_TABLE_ENTRY = ^SERVICE_TABLE_ENTRY;     _SERVICE_TABLE_ENTRY = SERVICE_TABLE_ENTRY;     TSERVICETABLEENTRY = SERVICE_TABLE_ENTRY;     PSERVICETABLEENTRY = ^SERVICE_TABLE_ENTRY;     SERVICE_TABLE_ENTRYA = record          lpServiceName : LPSTR;          lpServiceProc : LPSERVICE_MAIN_FUNCTIONA;       end;     LPSERVICE_TABLE_ENTRYA = ^SERVICE_TABLE_ENTRYA;     _SERVICE_TABLE_ENTRYA = SERVICE_TABLE_ENTRYA;     TSERVICETABLEENTRYA = SERVICE_TABLE_ENTRYA;     PSERVICETABLEENTRYA = ^SERVICE_TABLE_ENTRYA;     SERVICE_TABLE_ENTRYW = record          lpServiceName : LPWSTR;          lpServiceProc : LPSERVICE_MAIN_FUNCTIONW;       end;     LPSERVICE_TABLE_ENTRYW = ^SERVICE_TABLE_ENTRYW;     _SERVICE_TABLE_ENTRYW = SERVICE_TABLE_ENTRYW;     TSERVICETABLEENTRYW = SERVICE_TABLE_ENTRYW;     PSERVICETABLEENTRYW = ^SERVICE_TABLE_ENTRYW;     SERVICE_TYPE_VALUE_ABS = record          dwNameSpace : DWORD;          dwValueType : DWORD;          dwValueSize : DWORD;          lpValueName : LPTSTR;          lpValue : PVOID;       end;     _SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABS;     TSERVICETYPEVALUEABS = SERVICE_TYPE_VALUE_ABS;     PSERVICETYPEVALUEABS = ^SERVICE_TYPE_VALUE_ABS;     SERVICE_TYPE_INFO_ABS = record          lpTypeName : LPTSTR;          dwValueCount : DWORD;          Values : array[0..0] of SERVICE_TYPE_VALUE_ABS;       end;     _SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABS;     TSERVICETYPEINFOABS = SERVICE_TYPE_INFO_ABS;     PSERVICETYPEINFOABS = ^SERVICE_TYPE_INFO_ABS;     SESSION_BUFFER = record          lsn : UCHAR;          state : UCHAR;          local_name : array[0..(NCBNAMSZ)-1] of UCHAR;          remote_name : array[0..(NCBNAMSZ)-1] of UCHAR;          rcvs_outstanding : UCHAR;          sends_outstanding : UCHAR;       end;     _SESSION_BUFFER = SESSION_BUFFER;     TSESSIONBUFFER = SESSION_BUFFER;     PSESSIONBUFFER = ^SESSION_BUFFER;     SESSION_HEADER = record          sess_name : UCHAR;          num_sess : UCHAR;          rcv_dg_outstanding : UCHAR;          rcv_any_outstanding : UCHAR;       end;     _SESSION_HEADER = SESSION_HEADER;     TSESSIONHEADER = SESSION_HEADER;     PSESSIONHEADER = ^SESSION_HEADER;     SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64,       SHCONTF_INCLUDEHIDDEN := 128);     tagSHCONTF = SHCONTF;     TSHCONTF = SHCONTF;     SHFILEINFO = record          hIcon : HICON;          iIcon : longint;          dwAttributes : DWORD;          szDisplayName : array[0..(MAX_PATH)-1] of TCHAR;          szTypeName : array[0..79] of TCHAR;       end;     _SHFILEINFO = SHFILEINFO;     TSHFILEINFO = SHFILEINFO;     PSHFILEINFO = ^SHFILEINFO;     FILEOP_FLAGS = WORD;     TFILEOPFLAGS = FILEOP_FLAGS;     PFILEOPFLAGS = ^FILEOP_FLAGS;     SHFILEOPSTRUCT = record          hwnd : HWND;          wFunc : UINT;          pFrom : LPCSTR;   // PCZZTSTR          pTo : LPCSTR;     // PCZZTSTR          fFlags : FILEOP_FLAGS;          fAnyOperationsAborted : WINBOOL;          hNameMappings : LPVOID;          lpszProgressTitle : LPCSTR;   // PCTSTR       end;     LPSHFILEOPSTRUCT = ^SHFILEOPSTRUCT;     _SHFILEOPSTRUCT = SHFILEOPSTRUCT;     TSHFILEOPSTRUCT = SHFILEOPSTRUCT;     PSHFILEOPSTRUCT = ^SHFILEOPSTRUCT;     SHGNO = (SHGDN_NORMAL := 0,SHGDN_INFOLDER := 1,       SHGDN_FORPARSING := $8000);     tagSHGDN = SHGNO;     TSHGDN = SHGNO;     SHNAMEMAPPING = record          pszOldPath : LPSTR;          pszNewPath : LPSTR;          cchOldPath : longint;          cchNewPath : longint;       end;     LPSHNAMEMAPPING = ^SHNAMEMAPPING;     _SHNAMEMAPPING = SHNAMEMAPPING;     TSHNAMEMAPPING = SHNAMEMAPPING;     PSHNAMEMAPPING = ^SHNAMEMAPPING;     SID_AND_ATTRIBUTES = record          Sid : PSID;          Attributes : DWORD;       end;     _SID_AND_ATTRIBUTES = SID_AND_ATTRIBUTES;     TSIDANDATTRIBUTES = SID_AND_ATTRIBUTES;     PSIDANDATTRIBUTES = ^SID_AND_ATTRIBUTES;     SID_AND_ATTRIBUTES_ARRAY = array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES;     PSID_AND_ATTRIBUTES_ARRAY = ^SID_AND_ATTRIBUTES_ARRAY;     TSIDANDATTRIBUTESARRAY = SID_AND_ATTRIBUTES_ARRAY;     PSIDANDATTRIBUTESARRAY = ^SID_AND_ATTRIBUTES_ARRAY;     SINGLE_LIST_ENTRY = record          Next : ^_SINGLE_LIST_ENTRY;       end;     _SINGLE_LIST_ENTRY = SINGLE_LIST_ENTRY;     TSINGLELISTENTRY = SINGLE_LIST_ENTRY;     PSINGLELISTENTRY = ^SINGLE_LIST_ENTRY;     SOUNDSENTRY = record          cbSize : UINT;          dwFlags : DWORD;          iFSTextEffect : DWORD;          iFSTextEffectMSec : DWORD;          iFSTextEffectColorBits : DWORD;          iFSGrafEffect : DWORD;          iFSGrafEffectMSec : DWORD;          iFSGrafEffectColor : DWORD;          iWindowsEffect : DWORD;          iWindowsEffectMSec : DWORD;          lpszWindowsEffectDLL : LPTSTR;          iWindowsEffectOrdinal : DWORD;       end;     LPSOUNDSENTRY = ^SOUNDSENTRY;     tagSOUNDSENTRY = SOUNDSENTRY;     TSOUNDSENTRY = SOUNDSENTRY;     PSOUNDSENTRY = ^SOUNDSENTRY;     STARTUPINFOA = record          cb : DWORD;          lpReserved : LPSTR;          lpDesktop : LPSTR;          lpTitle : LPSTR;          dwX : DWORD;          dwY : DWORD;          dwXSize : DWORD;          dwYSize : DWORD;          dwXCountChars : DWORD;          dwYCountChars : DWORD;          dwFillAttribute : DWORD;          dwFlags : DWORD;          wShowWindow : WORD;          cbReserved2 : WORD;          lpReserved2 : LPBYTE;          hStdInput : HANDLE;          hStdOutput : HANDLE;          hStdError : HANDLE;       end;     LPSTARTUPINFOA = ^STARTUPINFOA;     _STARTUPINFOA = STARTUPINFOA;     TSTARTUPINFOA = STARTUPINFOA;     PSTARTUPINFOA = ^STARTUPINFOA;     STARTUPINFOW = record          cb : DWORD;          lpReserved : LPWSTR;          lpDesktop : LPWSTR;          lpTitle : LPWSTR;          dwX : DWORD;          dwY : DWORD;          dwXSize : DWORD;          dwYSize : DWORD;          dwXCountChars : DWORD;          dwYCountChars : DWORD;          dwFillAttribute : DWORD;          dwFlags : DWORD;          wShowWindow : WORD;          cbReserved2 : WORD;          lpReserved2 : LPBYTE;          hStdInput : HANDLE;          hStdOutput : HANDLE;          hStdError : HANDLE;       end;     LPSTARTUPINFOW = ^STARTUPINFOW;     _STARTUPINFOW = STARTUPINFOW;     TSTARTUPINFOW = STARTUPINFOW;     PSTARTUPINFOW = ^STARTUPINFOW;     STARTUPINFO = record          cb : DWORD;          lpReserved : LPTSTR;          lpDesktop : LPTSTR;          lpTitle : LPTSTR;          dwX : DWORD;          dwY : DWORD;          dwXSize : DWORD;          dwYSize : DWORD;          dwXCountChars : DWORD;          dwYCountChars : DWORD;          dwFillAttribute : DWORD;          dwFlags : DWORD;          wShowWindow : WORD;          cbReserved2 : WORD;          lpReserved2 : LPBYTE;          hStdInput : HANDLE;          hStdOutput : HANDLE;          hStdError : HANDLE;       end;     {$ifdef Unicode}     LPSTARTUPINFO = LPSTARTUPINFOW;     _STARTUPINFO = _STARTUPINFOW;     TSTARTUPINFO = TSTARTUPINFOW;     PSTARTUPINFO = PSTARTUPINFOW;     {$else}     LPSTARTUPINFO = LPSTARTUPINFOA;     _STARTUPINFO = _STARTUPINFOA;     TSTARTUPINFO = TSTARTUPINFOA;     PSTARTUPINFO = PSTARTUPINFOA;     {$endif}     STICKYKEYS = record          cbSize : DWORD;          dwFlags : DWORD;       end;     LPSTICKYKEYS = ^STICKYKEYS;     tagSTICKYKEYS = STICKYKEYS;     TSTICKYKEYS = STICKYKEYS;     PSTICKYKEYS = ^STICKYKEYS;     STRRET = record          utype : UINT;          case longint of           0: ( polestr:LPWSTR);           1: ( uOffset : UINT);           2: ( cStr : array[0..(MAX_PATH)-1] of char );       end;     LPSTRRET = ^STRRET;     _STRRET = STRRET;     TSTRRET = STRRET;     PSTRRET = ^STRRET;     STYLEBUF = record          dwStyle : DWORD;          szDescription : array[0..31] of TCHAR;       end;     LPSTYLEBUF = ^STYLEBUF;     _tagSTYLEBUF = STYLEBUF;     TSTYLEBUF = STYLEBUF;     PSTYLEBUF = ^STYLEBUF;     STYLESTRUCT = record          styleOld : DWORD;          styleNew : DWORD;       end;     LPSTYLESTRUCT = ^STYLESTRUCT;     tagSTYLESTRUCT = STYLESTRUCT;     TSTYLESTRUCT = STYLESTRUCT;     PSTYLESTRUCT = ^STYLESTRUCT;     SYSTEM_AUDIT_ACE = record          Header : ACE_HEADER;          Mask : ACCESS_MASK;          SidStart : DWORD;       end;     _SYSTEM_AUDIT_ACE = SYSTEM_AUDIT_ACE;     TSYSTEMAUDITACE = SYSTEM_AUDIT_ACE;     PSYSTEMAUDITACE = ^SYSTEM_AUDIT_ACE;     SYSTEM_INFO = record              case longint of                 0 : ( dwOemId : DWORD;		       dwPageSize : DWORD;          	       lpMinimumApplicationAddress : LPVOID;          	       lpMaximumApplicationAddress : LPVOID;          	       dwActiveProcessorMask : DWORD_PTR;          	       dwNumberOfProcessors : DWORD;                       dwProcessorType : DWORD;                       dwAllocationGranularity : DWORD;                       wProcessorLevel : WORD;                       wProcessorRevision : WORD;				 );                 1 : (                      wProcessorArchitecture : WORD;                      wReserved : WORD;                    );       end;     LPSYSTEM_INFO = ^SYSTEM_INFO;     _SYSTEM_INFO = SYSTEM_INFO;     TSYSTEMINFO = SYSTEM_INFO;     PSYSTEMINFO = ^SYSTEM_INFO;     SYSTEM_POWER_STATUS = record          ACLineStatus : BYTE;          BatteryFlag : BYTE;          BatteryLifePercent : BYTE;          Reserved1 : BYTE;          BatteryLifeTime : DWORD;          BatteryFullLifeTime : DWORD;       end;     _SYSTEM_POWER_STATUS = SYSTEM_POWER_STATUS;     TSYSTEMPOWERSTATUS = SYSTEM_POWER_STATUS;     PSYSTEMPOWERSTATUS = ^SYSTEM_POWER_STATUS;     LPSYSTEM_POWER_STATUS = ^emptyrecord;     TAPE_ERASE = record          _Type : ULONG;          Immediate : BOOLEAN;       end;     _TAPE_ERASE = TAPE_ERASE;     TTAPEERASE = TAPE_ERASE;     PTAPEERASE = ^TAPE_ERASE;     TAPE_GET_DRIVE_PARAMETERS = record          ECC : BOOLEAN;          Compression : BOOLEAN;          DataPadding : BOOLEAN;          ReportSetmarks : BOOLEAN;          DefaultBlockSize : ULONG;          MaximumBlockSize : ULONG;          MinimumBlockSize : ULONG;          MaximumPartitionCount : ULONG;          FeaturesLow : ULONG;          FeaturesHigh : ULONG;          EOTWarningZoneSize : ULONG;       end;     _TAPE_GET_DRIVE_PARAMETERS = TAPE_GET_DRIVE_PARAMETERS;     TTAPEGETDRIVEPARAMETERS = TAPE_GET_DRIVE_PARAMETERS;     PTAPEGETDRIVEPARAMETERS = ^TAPE_GET_DRIVE_PARAMETERS;     TAPE_GET_MEDIA_PARAMETERS = record          Capacity : LARGE_INTEGER;          Remaining : LARGE_INTEGER;          BlockSize : ULONG;          PartitionCount : ULONG;          WriteProtected : BOOLEAN;       end;     _TAPE_GET_MEDIA_PARAMETERS = TAPE_GET_MEDIA_PARAMETERS;     TTAPEGETMEDIAPARAMETERS = TAPE_GET_MEDIA_PARAMETERS;     PTAPEGETMEDIAPARAMETERS = ^TAPE_GET_MEDIA_PARAMETERS;     TAPE_GET_POSITION = record          _Type : ULONG;          Partition : ULONG;          OffsetLow : ULONG;          OffsetHigh : ULONG;       end;     _TAPE_GET_POSITION = TAPE_GET_POSITION;     TTAPEGETPOSITION = TAPE_GET_POSITION;     PTAPEGETPOSITION = ^TAPE_GET_POSITION;     TAPE_PREPARE = record          Operation : ULONG;          Immediate : BOOLEAN;       end;     _TAPE_PREPARE = TAPE_PREPARE;     TTAPEPREPARE = TAPE_PREPARE;     PTAPEPREPARE = ^TAPE_PREPARE;     TAPE_SET_DRIVE_PARAMETERS = record          ECC : BOOLEAN;          Compression : BOOLEAN;          DataPadding : BOOLEAN;          ReportSetmarks : BOOLEAN;          EOTWarningZoneSize : ULONG;       end;     _TAPE_SET_DRIVE_PARAMETERS = TAPE_SET_DRIVE_PARAMETERS;     TTAPESETDRIVEPARAMETERS = TAPE_SET_DRIVE_PARAMETERS;     PTAPESETDRIVEPARAMETERS = ^TAPE_SET_DRIVE_PARAMETERS;     TAPE_SET_MEDIA_PARAMETERS = record          BlockSize : ULONG;       end;     _TAPE_SET_MEDIA_PARAMETERS = TAPE_SET_MEDIA_PARAMETERS;     TTAPESETMEDIAPARAMETERS = TAPE_SET_MEDIA_PARAMETERS;     PTAPESETMEDIAPARAMETERS = ^TAPE_SET_MEDIA_PARAMETERS;     TAPE_SET_POSITION = record          Method : ULONG;          Partition : ULONG;          OffsetLow : ULONG;          OffsetHigh : ULONG;          Immediate : BOOLEAN;       end;     _TAPE_SET_POSITION = TAPE_SET_POSITION;     TTAPESETPOSITION = TAPE_SET_POSITION;     PTAPESETPOSITION = ^TAPE_SET_POSITION;     TAPE_WRITE_MARKS = record          _Type : ULONG;          Count : ULONG;          Immediate : BOOLEAN;       end;     _TAPE_WRITE_MARKS = TAPE_WRITE_MARKS;     TTAPEWRITEMARKS = TAPE_WRITE_MARKS;     PTAPEWRITEMARKS = ^TAPE_WRITE_MARKS;     TBADDBITMAP = record          hInst : HINST;          nID : UINT_PTR;       end;     LPTBADDBITMAP = ^TBADDBITMAP;     TTBADDBITMAP = TBADDBITMAP;     PTBADDBITMAP = ^TBADDBITMAP;     TBBUTTON = record          iBitmap : longint;          idCommand : longint;          fsState : BYTE;          fsStyle : BYTE;{$ifdef WIN64}          bReserved : array[0..5] of BYTE;{$else}          bReserved : array[0..1] of BYTE;{$endif}          dwData : DWORD_PTR;          iString : INT_PTR;       end;     LPTBBUTTON = ^TBBUTTON;     LPCTBBUTTON = ^TBBUTTON;     _TBBUTTON = TBBUTTON;     TTBBUTTON = TBBUTTON;     PTBBUTTON = ^TBBUTTON;     TBNOTIFY = record          hdr : NMHDR;          iItem : longint;          tbButton : TBBUTTON;          cchText : longint;          pszText : LPTSTR;       end;     LPTBNOTIFY = ^TBNOTIFY;     TTBNOTIFY = TBNOTIFY;     PTBNOTIFY = ^TBNOTIFY;     TBSAVEPARAMS = record          hkr : HKEY;          pszSubKey : LPCTSTR;          pszValueName : LPCTSTR;       end;     TTBSAVEPARAMS = TBSAVEPARAMS;     PTBSAVEPARAMS = ^TBSAVEPARAMS;     TC_HITTESTINFO = record          pt : POINT;          flags : UINT;       end;     _TC_HITTESTINFO = TC_HITTESTINFO;     TTCHITTESTINFO = TC_HITTESTINFO;     PTCHITTESTINFO = ^TC_HITTESTINFO;     TC_ITEM = record          mask : UINT;          lpReserved1 : UINT;          lpReserved2 : UINT;          pszText : LPTSTR;          cchTextMax : longint;          iImage : longint;          lParam : LPARAM;       end;     _TC_ITEM = TC_ITEM;     TTCITEM = TC_ITEM;     PTCITEM = ^TC_ITEM;     TC_ITEMHEADER = record          mask : UINT;          lpReserved1 : UINT;          lpReserved2 : UINT;          pszText : LPTSTR;          cchTextMax : longint;          iImage : longint;       end;     _TC_ITEMHEADER = TC_ITEMHEADER;     TTCITEMHEADER = TC_ITEMHEADER;     PTCITEMHEADER = ^TC_ITEMHEADER;     TC_KEYDOWN = record          hdr : NMHDR;          wVKey : WORD;          flags : UINT;       end;     _TC_KEYDOWN = TC_KEYDOWN;     TTCKEYDOWN = TC_KEYDOWN;     PTCKEYDOWN = ^TC_KEYDOWN;     TEXTRANGE = record          chrg : CHARRANGE;          lpstrText : LPSTR;       end;     _textrange = TEXTRANGE;     Ttextrange = TEXTRANGE;     Ptextrange = ^TEXTRANGE;     TIME_ZONE_INFORMATION = record          Bias : LONG;          StandardName : array[0..31] of WCHAR;          StandardDate : SYSTEMTIME;          StandardBias : LONG;          DaylightName : array[0..31] of WCHAR;          DaylightDate : SYSTEMTIME;          DaylightBias : LONG;       end;     LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;     _TIME_ZONE_INFORMATION = TIME_ZONE_INFORMATION;     TTIMEZONEINFORMATION = TIME_ZONE_INFORMATION;     PTIMEZONEINFORMATION = ^TIME_ZONE_INFORMATION;     TIME_DYNAMIC_ZONE_INFORMATION = record       Bias: Longint;       StandardName: array[0..31] of WCHAR;       StandardDate: TSystemTime;       StandardBias: Longint;       DaylightName: array[0..31] of WCHAR;       DaylightDate: TSystemTime;       DaylightBias: Longint;       TimeZoneKeyName: array[0..127] of WCHAR;       DynamicDaylightTimeDisabled: ByteBool;     end;     LPTIME_DYNAMIC_ZONE_INFORMATION = ^TIME_DYNAMIC_ZONE_INFORMATION;     _TIME_DYNAMIC_ZONE_INFORMATION = TIME_DYNAMIC_ZONE_INFORMATION;     TDYNAMICTIMEZONEINFORMATION = TIME_DYNAMIC_ZONE_INFORMATION;     PDYNAMICTIMEZONEINFORMATION = ^TDYNAMICTIMEZONEINFORMATION;     TOGGLEKEYS = record          cbSize : DWORD;          dwFlags : DWORD;       end;     tagTOGGLEKEYS = TOGGLEKEYS;     TTOGGLEKEYS = TOGGLEKEYS;     PTOGGLEKEYS = ^TOGGLEKEYS;     TOKEN_SOURCE = record          SourceName : array[0..7] of CHAR;  // 0..(TOKEN_SOURCE_LENGTH-1)          SourceIdentifier : LUID;       end;     _TOKEN_SOURCE = TOKEN_SOURCE;     TTOKENSOURCE = TOKEN_SOURCE;     PTOKENSOURCE = ^TOKEN_SOURCE;     TOKEN_CONTROL = record          TokenId : LUID;          AuthenticationId : LUID;          ModifiedId : LUID;          TokenSource : TOKEN_SOURCE;       end;     _TOKEN_CONTROL = TOKEN_CONTROL;     TTOKENCONTROL = TOKEN_CONTROL;     PTOKENCONTROL = ^TOKEN_CONTROL;     TOKEN_DEFAULT_DACL = record          DefaultDacl : PACL;       end;     _TOKEN_DEFAULT_DACL = TOKEN_DEFAULT_DACL;     TTOKENDEFAULTDACL = TOKEN_DEFAULT_DACL;     PTOKENDEFAULTDACL = ^TOKEN_DEFAULT_DACL;     TOKEN_GROUPS = record          GroupCount : DWORD;          Groups : array[0..(ANYSIZE_ARRAY)-1] of SID_AND_ATTRIBUTES;       end;     PTOKEN_GROUPS = ^TOKEN_GROUPS;     LPTOKEN_GROUPS = ^TOKEN_GROUPS;     _TOKEN_GROUPS = TOKEN_GROUPS;     TTOKENGROUPS = TOKEN_GROUPS;     PTOKENGROUPS = ^TOKEN_GROUPS;     TOKEN_OWNER = record          Owner : PSID;       end;     _TOKEN_OWNER = TOKEN_OWNER;     TTOKENOWNER = TOKEN_OWNER;     PTOKENOWNER = ^TOKEN_OWNER;     TOKEN_PRIMARY_GROUP = record          PrimaryGroup : PSID;       end;     _TOKEN_PRIMARY_GROUP = TOKEN_PRIMARY_GROUP;     TTOKENPRIMARYGROUP = TOKEN_PRIMARY_GROUP;     PTOKENPRIMARYGROUP = ^TOKEN_PRIMARY_GROUP;     TOKEN_PRIVILEGES = packed record          PrivilegeCount : DWORD;          Privileges : array[0..(ANYSIZE_ARRAY)-1] of LUID_AND_ATTRIBUTES;       end;     PTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES;     LPTOKEN_PRIVILEGES = ^TOKEN_PRIVILEGES;     _TOKEN_PRIVILEGES = TOKEN_PRIVILEGES;     TTOKENPRIVILEGES = TOKEN_PRIVILEGES;     PTOKENPRIVILEGES = ^TOKEN_PRIVILEGES;     TOKEN_STATISTICS = record          TokenId : LUID;          AuthenticationId : LUID;          ExpirationTime : LARGE_INTEGER;          TokenType : TOKEN_TYPE;          ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL;          DynamicCharged : DWORD;          DynamicAvailable : DWORD;          GroupCount : DWORD;          PrivilegeCount : DWORD;          ModifiedId : LUID;       end;     _TOKEN_STATISTICS = TOKEN_STATISTICS;     TTOKENSTATISTICS = TOKEN_STATISTICS;     PTOKENSTATISTICS = ^TOKEN_STATISTICS;     TOKEN_USER = record          User : SID_AND_ATTRIBUTES;       end;     _TOKEN_USER = TOKEN_USER;     TTOKENUSER = TOKEN_USER;     PTOKENUSER = ^TOKEN_USER;     TOOLINFO = record          cbSize : UINT;          uFlags : UINT;          hwnd : HWND;          uId : UINT;          rect : RECT;          hinst : HINST;          lpszText : LPTSTR;          lParam : LPARAM;          lpReserved : LPVOID;       end;     LPTOOLINFO = ^TOOLINFO;     TTOOLINFO = TOOLINFO;     PTOOLINFO = ^TOOLINFO;     TOOLTIPTEXTA = record          hdr : NMHDR;          lpszText : LPSTR;          szText : array[0..79] of AnsiCHAR;          hinst : HINST;          uFlags : UINT;          lParam : LPARAM;       end;     LPTOOLTIPTEXTA = ^TOOLTIPTEXTA;     TTOOLTIPTEXTA  = TOOLTIPTEXTA;     PTOOLTIPTEXTA  = ^TOOLTIPTEXTA;     TOOLTIPTEXTW = record          hdr : NMHDR;          lpszText : LPWSTR;          szText : array[0..79] of WideCHAR;          hinst : HINST;          uFlags : UINT;          lParam : LPARAM;       end;     LPTOOLTIPTEXTW = ^TOOLTIPTEXTW;     TTOOLTIPTEXTW  = TOOLTIPTEXTW;     PTOOLTIPTEXTW  = ^TOOLTIPTEXTW;     {$ifdef Unicode}     LPTOOLTIPTEXT  = ^TOOLTIPTEXTW;     TOOLTIPTEXT    = TOOLTIPTEXTW;     TTOOLTIPTEXT   = TOOLTIPTEXTW;     PTOOLTIPTEXT   = ^TOOLTIPTEXTW;     {$else}     LPTOOLTIPTEXT  = ^TOOLTIPTEXTA;     TOOLTIPTEXT    = TOOLTIPTEXTA;     TTOOLTIPTEXT   = TOOLTIPTEXTA;     PTOOLTIPTEXT   = ^TOOLTIPTEXTA;     {$endif}     TPMPARAMS = record          cbSize : UINT;          rcExclude : RECT;       end;     LPTPMPARAMS = ^TPMPARAMS;     tagTPMPARAMS = TPMPARAMS;     TTPMPARAMS = TPMPARAMS;     PTPMPARAMS = ^TPMPARAMS;     TRANSMIT_FILE_BUFFERS = record          Head : PVOID;          HeadLength : DWORD;          Tail : PVOID;          TailLength : DWORD;       end;     _TRANSMIT_FILE_BUFFERS = TRANSMIT_FILE_BUFFERS;     TTRANSMITFILEBUFFERS = TRANSMIT_FILE_BUFFERS;     PTRANSMITFILEBUFFERS = ^TRANSMIT_FILE_BUFFERS;     TTHITTESTINFO = record          hwnd : HWND;          pt : POINT;          ti : TOOLINFO;       end;     LPHITTESTINFO = ^TTHITTESTINFO;     _TT_HITTESTINFO = TTHITTESTINFO;     TTTHITTESTINFO = TTHITTESTINFO;     PTTHITTESTINFO = ^TTHITTESTINFO;     TTPOLYCURVE = record          wType : WORD;          cpfx : WORD;          apfx : array[0..0] of POINTFX;       end;     LPTTPOLYCURVE = ^TTPOLYCURVE;     tagTTPOLYCURVE = TTPOLYCURVE;     TTTPOLYCURVE = TTPOLYCURVE;     PTTPOLYCURVE = ^TTPOLYCURVE;     TTPOLYGONHEADER = record          cb : DWORD;          dwType : DWORD;          pfxStart : POINTFX;       end;     LPTTPOLYGONHEADER = ^TTPOLYGONHEADER;     _TTPOLYGONHEADER = TTPOLYGONHEADER;     TTTPOLYGONHEADER = TTPOLYGONHEADER;     PTTPOLYGONHEADER = ^TTPOLYGONHEADER;     TV_DISPINFO = record          hdr : NMHDR;          item : TV_ITEM;       end;     _TV_DISPINFO = TV_DISPINFO;     TTVDISPINFO = TV_DISPINFO;     PTVDISPINFO = ^TV_DISPINFO;     TV_HITTESTINFO = record          pt : POINT;          flags : UINT;          hItem : HTREEITEM;       end;     LPTV_HITTESTINFO = ^TV_HITTESTINFO;     _TVHITTESTINFO = TV_HITTESTINFO;     TTVHITTESTINFO = TV_HITTESTINFO;     PTVHITTESTINFO = ^TV_HITTESTINFO;     TVITEMEX = record          mask : UINT;          hItem : HTREEITEM;          state : UINT;          stateMask : UINT;          pszText : LPTSTR;          cchTextMax : longint;          iImage : longint;          iSelectedImage : longint;          cChildren : longint;          lParam : LPARAM;          iIntegral : longint;       end;     TV_INSERTSTRUCT = record          hParent : HTREEITEM;          hInsertAfter : HTREEITEM;          case longint of          0 : (item : TV_ITEM;);          1 : (itemex : TVITEMEX;);       end;     LPTV_INSERTSTRUCT = ^TV_INSERTSTRUCT;     _TV_INSERTSTRUCT = TV_INSERTSTRUCT;     TTVINSERTSTRUCT = TV_INSERTSTRUCT;     PTVINSERTSTRUCT = ^TV_INSERTSTRUCT;     TV_KEYDOWN = record          hdr : NMHDR;          wVKey : WORD;          flags : UINT;       end;     _TV_KEYDOWN = TV_KEYDOWN;     TTVKEYDOWN = TV_KEYDOWN;     PTVKEYDOWN = ^TV_KEYDOWN;     TV_SORTCB = record          hParent : HTREEITEM;          lpfnCompare : PFNTVCOMPARE;          lParam : LPARAM;       end;     LPTV_SORTCB = ^TV_SORTCB;     _TV_SORTCB = TV_SORTCB;     TTVSORTCB = TV_SORTCB;     PTVSORTCB = ^TV_SORTCB;     UDACCEL = record          nSec : UINT;          nInc : UINT;       end;     TUDACCEL = UDACCEL;     PUDACCEL = ^UDACCEL;     UNIVERSAL_NAME_INFO = record          lpUniversalName : LPTSTR;       end;     _UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFO;     TUNIVERSALNAMEINFO = UNIVERSAL_NAME_INFO;     PUNIVERSALNAMEINFO = ^UNIVERSAL_NAME_INFO;     USEROBJECTFLAGS = record          fInherit : WINBOOL;          fReserved : WINBOOL;          dwFlags : DWORD;       end;     tagUSEROBJECTFLAGS = USEROBJECTFLAGS;     TUSEROBJECTFLAGS = USEROBJECTFLAGS;     PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;     VALENTA = record          ve_valuename : LPSTR;          ve_valuelen : DWORD;          ve_valueptr : DWORD_PTR;          ve_type : DWORD;       end;     TVALENTA = VALENTA;     PVALENTA = ^VALENTA;     VALENTW = record          ve_valuename : LPWSTR;          ve_valuelen : DWORD;          ve_valueptr : DWORD_PTR;          ve_type : DWORD;       end;     TVALENTW = VALENTW;     PVALENTW = ^VALENTW;     {$ifdef Unicode}     VALENT  = VALENTW;     TVALENT = VALENTW;     PVALENT = ^VALENTW;     {$else}     VALENT  = VALENTA;     TVALENT = VALENTA;     PVALENT = ^VALENTA;     {$endif}     value_ent = VALENT;     Tvalue_ent = VALENT;     Pvalue_ent = ^VALENT;     VERIFY_INFORMATION = record          StartingOffset : LARGE_INTEGER;          Length : DWORD;       end;     _VERIFY_INFORMATION = VERIFY_INFORMATION;     TVERIFYINFORMATION = VERIFY_INFORMATION;     PVERIFYINFORMATION = ^VERIFY_INFORMATION;     VS_FIXEDFILEINFO = record          dwSignature : DWORD;          dwStrucVersion : DWORD;          dwFileVersionMS : DWORD;          dwFileVersionLS : DWORD;          dwProductVersionMS : DWORD;          dwProductVersionLS : DWORD;          dwFileFlagsMask : DWORD;          dwFileFlags : DWORD;          dwFileOS : DWORD;          dwFileType : DWORD;          dwFileSubtype : DWORD;          dwFileDateMS : DWORD;          dwFileDateLS : DWORD;       end;     _VS_FIXEDFILEINFO = VS_FIXEDFILEINFO;     TVSFIXEDFILEINFO = VS_FIXEDFILEINFO;     PVSFIXEDFILEINFO = ^VS_FIXEDFILEINFO;     WIN32_FIND_DATAA = record          dwFileAttributes : DWORD;          ftCreationTime : FILETIME;          ftLastAccessTime : FILETIME;          ftLastWriteTime : FILETIME;          nFileSizeHigh : DWORD;          nFileSizeLow : DWORD;          dwReserved0 : DWORD;          dwReserved1 : DWORD;          cFileName : array[0..(MAX_PATH)-1] of AnsiCHAR;          cAlternateFileName : array[0..13] of AnsiCHAR;       end;     LPWIN32_FIND_DATAA = ^WIN32_FIND_DATAA;     PWIN32_FIND_DATAA = ^WIN32_FIND_DATAA;     _WIN32_FIND_DATAA = WIN32_FIND_DATAA;     TWIN32FINDDATAA = WIN32_FIND_DATAA;     WIN32FINDDATAA = WIN32_FIND_DATAA;     PWIN32FINDDATAA = ^WIN32_FIND_DATAA;     WIN32_FIND_DATAW = record          dwFileAttributes : DWORD;          ftCreationTime : FILETIME;          ftLastAccessTime : FILETIME;          ftLastWriteTime : FILETIME;          nFileSizeHigh : DWORD;          nFileSizeLow : DWORD;          dwReserved0 : DWORD;          dwReserved1 : DWORD;          cFileName : array[0..(MAX_PATH)-1] of WCHAR;          cAlternateFileName : array[0..13] of WCHAR;       end;     LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;     PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;     _WIN32_FIND_DATAW = WIN32_FIND_DATAW;     TWIN32FINDDATAW = WIN32_FIND_DATAW;     PWIN32FINDDATAW = ^WIN32_FIND_DATAW;     {$ifdef Unicode}        LPWIN32_FIND_DATA = PWIN32_FIND_DATAW;        PWIN32_FIND_DATA  = PWIN32_FIND_DATAW;        _WIN32_FIND_DATA  = WIN32_FIND_DATAW;        WIN32_FIND_DATA   = WIN32_FIND_DATAW;        TWIN32FINDDATA    = WIN32_FIND_DATAW;        WIN32FINDDATA     = WIN32_FIND_DATAW;        PWIN32FINDDATA    = PWIN32_FIND_DATAW;     {$else}        LPWIN32_FIND_DATA = PWIN32_FIND_DATAA;        PWIN32_FIND_DATA  = PWIN32_FIND_DATAA;        _WIN32_FIND_DATA  = WIN32_FIND_DATAA;        WIN32_FIND_DATA   = WIN32_FIND_DATAA;        TWIN32FINDDATA    = WIN32_FIND_DATAA;        WIN32FINDDATA     = WIN32_FIND_DATAA;        PWIN32FINDDATA    = PWIN32_FIND_DATAA;     {$endif}     WIN32_STREAM_ID = record          dwStreamId : DWORD;          dwStreamAttributes : DWORD;          Size : LARGE_INTEGER;          dwStreamNameSize : DWORD;          cStreamName : array[0..0] of WCHAR;  // really array[0..(dwStreamNameSize)] of WCHAR       end;     _WIN32_STREAM_ID = WIN32_STREAM_ID;     TWIN32STREAMID = WIN32_STREAM_ID;     PWIN32STREAMID = ^WIN32_STREAM_ID;     WINDOWPLACEMENT = record          length : UINT;          flags : UINT;          showCmd : UINT;          ptMinPosition : POINT;          ptMaxPosition : POINT;          rcNormalPosition : RECT;       end;     _WINDOWPLACEMENT = WINDOWPLACEMENT;     TWINDOWPLACEMENT = WINDOWPLACEMENT;     PWINDOWPLACEMENT = ^WINDOWPLACEMENT;     WNDCLASSA = record          style : UINT;          lpfnWndProc : WNDPROC;          cbClsExtra : longint;          cbWndExtra : longint;          hInstance : HINST;          hIcon : HICON;          hCursor : HCURSOR;          hbrBackground : HBRUSH;          lpszMenuName : LPCSTR;          lpszClassName : LPCSTR;       end;     LPWNDCLASSA = ^WNDCLASSA;     _WNDCLASSA = WNDCLASSA;     TWNDCLASSA = WNDCLASSA;     PWNDCLASSA = ^WNDCLASSA;     WNDCLASSW = record          style : UINT;          lpfnWndProc : WNDPROC;          cbClsExtra : longint;          cbWndExtra : longint;          hInstance : HINST;          hIcon : HICON;          hCursor : HCURSOR;          hbrBackground : HBRUSH;          lpszMenuName : LPCWSTR;          lpszClassName : LPCWSTR;       end;     LPWNDCLASSW = ^WNDCLASSW;     _WNDCLASSW  = WNDCLASSW;     TWNDCLASSW  = WNDCLASSW;     PWNDCLASSW  = ^WNDCLASSW;     {$ifdef UNICODE}     LPWNDCLASS  = LPWNDCLASSW;     _WNDCLASS   = _WNDCLASSW;     TWNDCLASS   = TWNDCLASSW;     PWNDCLASS   = PWNDCLASSW;     WNDCLASS    = WNDCLASSW;     {$else}     LPWNDCLASS  = LPWNDCLASSA;     _WNDCLASS   = _WNDCLASSA;     TWNDCLASS   = TWNDCLASSA;     PWNDCLASS   = PWNDCLASSA;     WNDCLASS    = WNDCLASSA;     {$endif}     WNDCLASSEXA = record          cbSize : UINT;          style : UINT;          lpfnWndProc : WNDPROC;          cbClsExtra : longint;          cbWndExtra : longint;          hInstance : HINST;          hIcon : HICON;          hCursor : HCURSOR;          hbrBackground : HBRUSH;          lpszMenuName : LPCSTR;          lpszClassName : LPCSTR;          hIconSm : HANDLE;       end;     LPWNDCLASSEXA = ^WNDCLASSEXA;     _WNDCLASSEXA = WNDCLASSEXA;     TWNDCLASSEXA = WNDCLASSEXA;     PWNDCLASSEXA = ^WNDCLASSEXA;     WNDCLASSEXW = record          cbSize : UINT;          style : UINT;          lpfnWndProc : WNDPROC;          cbClsExtra : longint;          cbWndExtra : longint;          hInstance : HINST;          hIcon : HICON;          hCursor : HCURSOR;          hbrBackground : HBRUSH;          lpszMenuName : LPCWSTR;          lpszClassName : LPCWSTR;          hIconSm : HANDLE;       end;     LPWNDCLASSEXW = ^WNDCLASSEXW;     _WNDCLASSEXW  = WNDCLASSEXW;     TWNDCLASSEXW  = WNDCLASSEXW;     PWNDCLASSEXW  = ^WNDCLASSEXW;     {$ifdef UNICODE}     LPWNDClassEx  = LPWNDClassExW;     _WNDClassEx   = _WNDClassExW;     TWNDClassEx   = TWNDClassExW;     PWNDClassEx   = PWNDClassExW;     WNDClassEx    = WNDClassExW;     {$ELSE}     LPWNDClassEx  = LPWNDClassExA;     _WNDClassEx   = _WNDClassExA;     TWNDClassEx   = TWNDClassExA;     PWNDClassEx   = PWNDClassExA;     WNDClassEx    = WNDClassExA;     {$endif}     CONNECTDLGSTRUCTA = record          cbStructure : DWORD;          hwndOwner   : HWND;          lpConnRes   : LPNETRESOURCEA;          dwFlags     : DWORD;          dwDevNum    : DWORD;       end;     LPCONNECTDLGSTRUCTA = ^CONNECTDLGSTRUCTA;     _CONNECTDLGSTRUCTA  = CONNECTDLGSTRUCTA;     TCONNECTDLGSTRUCTA  = CONNECTDLGSTRUCTA;     PCONNECTDLGSTRUCTA  = ^CONNECTDLGSTRUCTA;     CONNECTDLGSTRUCTW = record          cbStructure : DWORD;          hwndOwner   : HWND;          lpConnRes   : LPNETRESOURCEW;          dwFlags     : DWORD;          dwDevNum    : DWORD;       end;     LPCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;     _CONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW;     TCONNECTDLGSTRUCTW = CONNECTDLGSTRUCTW;     PCONNECTDLGSTRUCTW = ^CONNECTDLGSTRUCTW;     {$ifdef Unicode}     LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCTW;     _CONNECTDLGSTRUCT  = CONNECTDLGSTRUCTW;     CONNECTDLGSTRUCT   = CONNECTDLGSTRUCTW;     TCONNECTDLGSTRUCT  = CONNECTDLGSTRUCTW;     PCONNECTDLGSTRUCT  = ^CONNECTDLGSTRUCTW;     {$else}     LPCONNECTDLGSTRUCT = ^CONNECTDLGSTRUCTA;     _CONNECTDLGSTRUCT  = CONNECTDLGSTRUCTA;     CONNECTDLGSTRUCT   = CONNECTDLGSTRUCTA;     TCONNECTDLGSTRUCT  = CONNECTDLGSTRUCTA;     PCONNECTDLGSTRUCT  = ^CONNECTDLGSTRUCTA;     {$endif}     DISCDLGSTRUCTA = record          cbStructure : DWORD;          hwndOwner : HWND;          lpLocalName : LPSTR;          lpRemoteName : LPSTR;          dwFlags : DWORD;       end;     LPDISCDLGSTRUCTA = ^DISCDLGSTRUCTA;     _DISCDLGSTRUCTA  = DISCDLGSTRUCTA;     TDISCDLGSTRUCTA  = DISCDLGSTRUCTA;     PDISCDLGSTRUCTA  = ^DISCDLGSTRUCTA;     DISCDLGSTRUCTW = record          cbStructure : DWORD;          hwndOwner : HWND;          lpLocalName : LPWSTR;          lpRemoteName : LPWSTR;          dwFlags : DWORD;       end;     LPDISCDLGSTRUCTW = ^DISCDLGSTRUCTW;     _DISCDLGSTRUCTW  = DISCDLGSTRUCTW;     TDISCDLGSTRUCTW  = DISCDLGSTRUCTW;     PDISCDLGSTRUCTW  = ^DISCDLGSTRUCTW;     {$ifdef Unicode}     LPDISCDLGSTRUCT = ^DISCDLGSTRUCTW;     _DISCDLGSTRUCT  = DISCDLGSTRUCTW;     TDISCDLGSTRUCT  = DISCDLGSTRUCTW;     DISCDLGSTRUCT   = DISCDLGSTRUCTW;     PDISCDLGSTRUCT  = ^DISCDLGSTRUCTW;     {$else}     LPDISCDLGSTRUCT = ^DISCDLGSTRUCTA;     _DISCDLGSTRUCT  = DISCDLGSTRUCTA;     TDISCDLGSTRUCT  = DISCDLGSTRUCTA;     DISCDLGSTRUCT   = DISCDLGSTRUCTA;     PDISCDLGSTRUCT  = ^DISCDLGSTRUCTA;     {$endif}     NETINFOSTRUCT = record          cbStructure : DWORD;          dwProviderVersion : DWORD;          dwStatus : DWORD;          dwCharacteristics : DWORD;          dwHandle : ULONG_PTR;          wNetType : WORD;          dwPrinters : DWORD;          dwDrives : DWORD;       end;     LPNETINFOSTRUCT = ^NETINFOSTRUCT;     _NETINFOSTRUCT = NETINFOSTRUCT;     TNETINFOSTRUCT = NETINFOSTRUCT;     PNETINFOSTRUCT = ^NETINFOSTRUCT;     NETCONNECTINFOSTRUCT = record          cbStructure : DWORD;          dwFlags : DWORD;          dwSpeed : DWORD;          dwDelay : DWORD;          dwOptDataSize : DWORD;       end;     LPNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;     _NETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT;     TNETCONNECTINFOSTRUCT = NETCONNECTINFOSTRUCT;     PNETCONNECTINFOSTRUCT = ^NETCONNECTINFOSTRUCT;     ENUMMETAFILEPROC = function (_para1:HDC; _para2:LPHANDLETABLE; _para3:LPMETARECORD; _para4:longint; _para5:LPARAM):longint;stdcall;     ENHMETAFILEPROC = function (_para1:HDC; _para2:LPHANDLETABLE; _para3:LPENHMETARECORD; _para4:longint; _para5:LPARAM):longint;stdcall;     ENUMFONTSPROC = function (_para1:LPLOGFONT; _para2:LPTEXTMETRIC; _para3:DWORD; _para4:LPARAM):longint;stdcall;     ENUMFONTSPROCA= function (_para1:LPLOGFONTA; _para2:LPTEXTMETRICA; _para3:DWORD; _para4:LPARAM):longint;stdcall;     ENUMFONTSPROCW= function (_para1:LPLOGFONTW; _para2:LPTEXTMETRICW; _para3:DWORD; _para4:LPARAM):longint;stdcall;     ENUMFONTSEXPROC = function (_para1:PENUMLOGFONTEX;  _para2:LPNEWTEXTMETRICEX; _para3:DWORD; _para4:LPARAM):longint;stdcall;     ENUMFONTSEXPROCA= function (_para1:PENUMLOGFONTEXA; _para2:LPNEWTEXTMETRICEXA; _para3:DWORD; _para4:LPARAM):longint;stdcall;     ENUMFONTSEXPROCW= function (_para1:PENUMLOGFONTEXW; _para2:LPNEWTEXTMETRICEXW; _para3:DWORD; _para4:LPARAM):longint;stdcall;     FONTENUMPROC   = function (var _para1:ENUMLOGFONT; var _para2:NEWTEXTMETRIC; _para3:longint; _para4:LPARAM):longint;stdcall;     FONTENUMPROCA  = function (var _para1:ENUMLOGFONTA; var _para2:NEWTEXTMETRICA; _para3:longint; _para4:LPARAM):longint;stdcall;     FONTENUMPROCW  = function (var _para1:ENUMLOGFONTW; var _para2:NEWTEXTMETRICW; _para3:longint; _para4:LPARAM):longint;stdcall;     FONTENUMEXPROC = function (var _para1:ENUMLOGFONTEX;var _para2:NEWTEXTMETRICEX; _para3:longint; _para4:LPARAM):longint;stdcall;     FONTENUMEXPROCA= function (var _para1:ENUMLOGFONTEXA;var _para2:NEWTEXTMETRICEXA; _para3:longint; _para4:LPARAM):longint;stdcall;     FONTENUMEXPROCW= function (var _para1:ENUMLOGFONTEXW;var _para2:NEWTEXTMETRICEXW; _para3:longint; _para4:LPARAM):longint;stdcall;     LPOVERLAPPED_COMPLETION_ROUTINE = procedure (_para1:DWORD; _para2:DWORD; _para3:LPOVERLAPPED);stdcall;     { Structures for the extensions to OpenGL }     POINTFLOAT = record          x : Single;          y : Single;       end;     _POINTFLOAT = POINTFLOAT;     TPOINTFLOAT = POINTFLOAT;     PPOINTFLOAT = ^POINTFLOAT;     GLYPHMETRICSFLOAT = record          gmfBlackBoxX : Single;          gmfBlackBoxY : Single;          gmfptGlyphOrigin : POINTFLOAT;          gmfCellIncX : Single;          gmfCellIncY : Single;       end;     LPGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT;     _GLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT;     TGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT;     PGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT;     LAYERPLANEDESCRIPTOR = record          nSize : WORD;          nVersion : WORD;          dwFlags : DWORD;          iPixelType : BYTE;          cColorBits : BYTE;          cRedBits : BYTE;          cRedShift : BYTE;          cGreenBits : BYTE;          cGreenShift : BYTE;          cBlueBits : BYTE;          cBlueShift : BYTE;          cAlphaBits : BYTE;          cAlphaShift : BYTE;          cAccumBits : BYTE;          cAccumRedBits : BYTE;          cAccumGreenBits : BYTE;          cAccumBlueBits : BYTE;          cAccumAlphaBits : BYTE;          cDepthBits : BYTE;          cStencilBits : BYTE;          cAuxBuffers : BYTE;          iLayerPlane : BYTE;          bReserved : BYTE;          crTransparent : COLORREF;       end;     LPLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR;     tagLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR;     TLAYERPLANEDESCRIPTOR = LAYERPLANEDESCRIPTOR;     PLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR;     PIXELFORMATDESCRIPTOR = record          nSize : WORD;          nVersion : WORD;          dwFlags : DWORD;          iPixelType : BYTE;          cColorBits : BYTE;          cRedBits : BYTE;          cRedShift : BYTE;          cGreenBits : BYTE;          cGreenShift : BYTE;          cBlueBits : BYTE;          cBlueShift : BYTE;          cAlphaBits : BYTE;          cAlphaShift : BYTE;          cAccumBits : BYTE;          cAccumRedBits : BYTE;          cAccumGreenBits : BYTE;          cAccumBlueBits : BYTE;          cAccumAlphaBits : BYTE;          cDepthBits : BYTE;          cStencilBits : BYTE;          cAuxBuffers : BYTE;          iLayerType : BYTE;          bReserved : BYTE;          dwLayerMask : DWORD;          dwVisibleMask : DWORD;          dwDamageMask : DWORD;       end;     LPPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR;     tagPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR;     TPIXELFORMATDESCRIPTOR = PIXELFORMATDESCRIPTOR;     PPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR;     USER_INFO_2 = record          usri2_name : LPWSTR;          usri2_password : LPWSTR;          usri2_password_age : DWORD;          usri2_priv : DWORD;          usri2_home_dir : LPWSTR;          usri2_comment : LPWSTR;          usri2_flags : DWORD;          usri2_script_path : LPWSTR;          usri2_auth_flags : DWORD;          usri2_full_name : LPWSTR;          usri2_usr_comment : LPWSTR;          usri2_parms : LPWSTR;          usri2_workstations : LPWSTR;          usri2_last_logon : DWORD;          usri2_last_logoff : DWORD;          usri2_acct_expires : DWORD;          usri2_max_storage : DWORD;          usri2_units_per_week : DWORD;          usri2_logon_hours : PBYTE;          usri2_bad_pw_count : DWORD;          usri2_num_logons : DWORD;          usri2_logon_server : LPWSTR;          usri2_country_code : DWORD;          usri2_code_page : DWORD;       end;     PUSER_INFO_2 = ^USER_INFO_2;     LPUSER_INFO_2 = ^USER_INFO_2;     TUSERINFO2 = USER_INFO_2;     PUSERINFO2 = ^USER_INFO_2;     USER_INFO_0 = record          usri0_name : LPWSTR;       end;     PUSER_INFO_0 = ^USER_INFO_0;     LPUSER_INFO_0 = ^USER_INFO_0;     TUSERINFO0 = USER_INFO_0;     PUSERINFO0 = ^USER_INFO_0;     USER_INFO_3 = record          usri3_name : LPWSTR;          usri3_password : LPWSTR;          usri3_password_age : DWORD;          usri3_priv : DWORD;          usri3_home_dir : LPWSTR;          usri3_comment : LPWSTR;          usri3_flags : DWORD;          usri3_script_path : LPWSTR;          usri3_auth_flags : DWORD;          usri3_full_name : LPWSTR;          usri3_usr_comment : LPWSTR;          usri3_parms : LPWSTR;          usri3_workstations : LPWSTR;          usri3_last_logon : DWORD;          usri3_last_logoff : DWORD;          usri3_acct_expires : DWORD;          usri3_max_storage : DWORD;          usri3_units_per_week : DWORD;          usri3_logon_hours : PBYTE;          usri3_bad_pw_count : DWORD;          usri3_num_logons : DWORD;          usri3_logon_server : LPWSTR;          usri3_country_code : DWORD;          usri3_code_page : DWORD;          usri3_user_id : DWORD;          usri3_primary_group_id : DWORD;          usri3_profile : LPWSTR;          usri3_home_dir_drive : LPWSTR;          usri3_password_expired : DWORD;       end;     PUSER_INFO_3 = ^USER_INFO_3;     LPUSER_INFO_3 = ^USER_INFO_3;     TUSERINFO3 = USER_INFO_3;     PUSERINFO3 = ^USER_INFO_3;     GROUP_INFO_2 = record          grpi2_name : LPWSTR;          grpi2_comment : LPWSTR;          grpi2_group_id : DWORD;          grpi2_attributes : DWORD;       end;     PGROUP_INFO_2 = ^GROUP_INFO_2;     TGROUPINFO2 = GROUP_INFO_2;     PGROUPINFO2 = ^GROUP_INFO_2;     LOCALGROUP_INFO_0 = record          lgrpi0_name : LPWSTR;       end;     PLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;     LPLOCALGROUP_INFO_0 = ^LOCALGROUP_INFO_0;     TLOCALGROUPINFO0 = LOCALGROUP_INFO_0;     PLOCALGROUPINFO0 = ^LOCALGROUP_INFO_0;  { PE executable header.   }  { Magic number, 0x5a4d  }  { Bytes on last page of file, 0x90  }  { Pages in file, 0x3  }  { Relocations, 0x0  }  { Size of header in paragraphs, 0x4  }  { Minimum extra paragraphs needed, 0x0  }  { Maximum extra paragraphs needed, 0xFFFF  }  { Initial (relative) SS value, 0x0  }  { Initial SP value, 0xb8  }  { Checksum, 0x0  }  { Initial IP value, 0x0  }  { Initial (relative) CS value, 0x0  }  { File address of relocation table, 0x40  }  { Overlay number, 0x0  }  { Reserved words, all 0x0  }  { OEM identifier (for e_oeminfo), 0x0  }  { OEM information; e_oemid specific, 0x0  }  { Reserved words, all 0x0  }  { File address of new exe header, 0x80  }  { We leave out the next two fields, since they aren't in the header file }  { DWORD dos_message[16];   text which always follows dos header  }  { DWORD nt_signature;      required NT signature, 0x4550  }     IMAGE_DOS_HEADER = record          e_magic : WORD;          e_cblp : WORD;          e_cp : WORD;          e_crlc : WORD;          e_cparhdr : WORD;          e_minalloc : WORD;          e_maxalloc : WORD;          e_ss : WORD;          e_sp : WORD;          e_csum : WORD;          e_ip : WORD;          e_cs : WORD;          e_lfarlc : WORD;          e_ovno : WORD;          e_res : array[0..3] of WORD;          e_oemid : WORD;          e_oeminfo : WORD;          e_res2 : array[0..9] of WORD;          case boolean of             true : (e_lfanew : LONG);             false: (_lfanew : LONG); // delphi naming       end;     PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER;     TIMAGE_DOS_HEADER = IMAGE_DOS_HEADER;     TIMAGEDOSHEADER = IMAGE_DOS_HEADER;     PIMAGEDOSHEADER = ^IMAGE_DOS_HEADER;      _NOTIFYICONDATAA = record          cbSize: DWORD;          Wnd: HWND;          uID: UINT;          uFlags: UINT;          uCallbackMessage: UINT;          hIcon: HICON;          szTip: array [0..127] of AnsiChar;          dwState : DWORD;          dwStateMask : DWORD;          szInfo : array[0..255] of AnsiChar;          case longint of            0 : (uTimeout : UINT;);            1 : (uVersion : UINT;                 szInfoTitle : array[0..63] of AnsiChar;                 dwInfoFlags : DWORD;                 //guidItem : TGUID;     // #if (_WIN32_IE >= 0x600)}                );     end;     TNotifyIconDataA = _NOTIFYICONDATAA;     NOTIFYICONDATAA = _NOTIFYICONDATAA;     PNotifyIconDataA = ^TNotifyIconDataA;     _NOTIFYICONDATAW = record         cbSize: DWORD;         Wnd: HWND;         uID: UINT;         uFlags: UINT;         uCallbackMessage: UINT;         hIcon: HICON;         szTip: array [0..127] of WCHAR;         dwState : DWORD;         dwStateMask : DWORD;         szInfo : array[0..255] of WCHAR;         case longint of           0 : (uTimeout : UINT;);           1 : (uVersion : UINT;                szInfoTitle : array[0..63] of WCHAR;                dwInfoFlags : DWORD;                //guidItem : TGUID;     // #if (_WIN32_IE >= 0x600)}               );     end;     TNotifyIconDataW = _NOTIFYICONDATAW;     NOTIFYICONDATAW = _NOTIFYICONDATAW;     PNotifyIconDataW = ^TNotifyIconDataW;     {$ifdef Unicode}     _NOTIFYICONDATA = _NOTIFYICONDATAW;     TNotifyIconData = TNotifyIconDataW;     NOTIFYICONDATA  = NOTIFYICONDATAW;     PNotifyIconData = PNotifyIconDataW;     {$else}     _NOTIFYICONDATA = _NOTIFYICONDATAA;     TNotifyIconData = TNotifyIconDataA;     NOTIFYICONDATA  = NOTIFYICONDATAA;     PNotifyIconData = PNotifyIconDataA;     {$endif}     TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE;     PWOHandleArray = ^TWOHandleArray;     MMRESULT = Longint;type  PWaveFormatEx = ^TWaveFormatEx;  TWaveFormatEx = packed record    wFormatTag: Word;       { format type }    nChannels: Word;        { number of channels (i.e. mono, stereo, etc.) }    nSamplesPerSec: DWORD;  { sample rate }    nAvgBytesPerSec: DWORD; { for buffer estimation }    nBlockAlign: Word;      { block size of data }    wBitsPerSample: Word;   { number of bits per sample of mono data }    cbSize: Word;           { the count in bytes of the size of }  end;  _WIN32_FILE_ATTRIBUTE_DATA = packed record    dwFileAttributes:     DWORD;    ftCreationTime:       FILETIME;    ftLastAccessTime:     FILETIME;    ftLastWriteTime:      FILETIME;    nFileSizeHigh:        DWORD;    nFileSizeLow:         DWORD;    end;  WIN32_FILE_ATTRIBUTE_DATA   = _WIN32_FILE_ATTRIBUTE_DATA ;  LPWIN32_FILE_ATTRIBUTE_DATA = ^_WIN32_FILE_ATTRIBUTE_DATA;  TWIN32FILEATTRIBUTEDATA     = _WIN32_FILE_ATTRIBUTE_DATA ;  PWIN32FILEATTRIBUTEDATA     = ^_WIN32_FILE_ATTRIBUTE_DATA;  // TrackMouseEvent. NT or higher only.  TTrackMouseEvent = Record    cbSize : DWORD;    dwFlags : DWORD;    hwndTrack : HWND;    dwHoverTime : DWORD;  end;  PTrackMouseEvent = ^TTrackMouseEvent;// File header format.//  PIMAGE_FILE_HEADER = ^IMAGE_FILE_HEADER;  _IMAGE_FILE_HEADER = record    Machine: WORD;    NumberOfSections: WORD;    TimeDateStamp: DWORD;    PointerToSymbolTable: DWORD;    NumberOfSymbols: DWORD;    SizeOfOptionalHeader: WORD;    Characteristics: WORD;  end;  IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER;  TImageFileHeader = IMAGE_FILE_HEADER;  PImageFileHeader = PIMAGE_FILE_HEADER;//// Debug Format//  PIMAGE_DEBUG_DIRECTORY = ^IMAGE_DEBUG_DIRECTORY;  _IMAGE_DEBUG_DIRECTORY = record    Characteristics: DWORD;    TimeDateStamp: DWORD;    MajorVersion: Word;    MinorVersion: Word;    Type_: DWORD;    SizeOfData: DWORD;    AddressOfRawData: DWORD;    PointerToRawData: DWORD;  end;  IMAGE_DEBUG_DIRECTORY = _IMAGE_DEBUG_DIRECTORY;  TImageDebugDirectory = IMAGE_DEBUG_DIRECTORY;  PImageDebugDirectory = PIMAGE_DEBUG_DIRECTORY;//// Optional header format.//  PIMAGE_DATA_DIRECTORY = ^IMAGE_DATA_DIRECTORY;  _IMAGE_DATA_DIRECTORY = record    VirtualAddress: DWORD;    Size: DWORD;  end;  IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY;  TIMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY;  TImageDataDirectory = IMAGE_DATA_DIRECTORY;  PImageDataDirectory = PIMAGE_DATA_DIRECTORY;const  IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16;type  PIMAGE_OPTIONAL_HEADER32 = ^IMAGE_OPTIONAL_HEADER32;  _IMAGE_OPTIONAL_HEADER = record    //    // Standard fields.    //    Magic: Word;    MajorLinkerVersion: Byte;    MinorLinkerVersion: Byte;    SizeOfCode: DWORD;    SizeOfInitializedData: DWORD;    SizeOfUninitializedData: DWORD;    AddressOfEntryPoint: DWORD;    BaseOfCode: DWORD;    BaseOfData: DWORD;    //    // NT additional fields.    //    ImageBase: DWORD;    SectionAlignment: DWORD;    FileAlignment: DWORD;    MajorOperatingSystemVersion: Word;    MinorOperatingSystemVersion: Word;    MajorImageVersion: Word;    MinorImageVersion: Word;    MajorSubsystemVersion: Word;    MinorSubsystemVersion: Word;    Win32VersionValue: DWORD;    SizeOfImage: DWORD;    SizeOfHeaders: DWORD;    CheckSum: DWORD;    Subsystem: Word;    DllCharacteristics: Word;    SizeOfStackReserve: DWORD;    SizeOfStackCommit: DWORD;    SizeOfHeapReserve: DWORD;    SizeOfHeapCommit: DWORD;    LoaderFlags: DWORD;    NumberOfRvaAndSizes: DWORD;    DataDirectory: array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES - 1] of IMAGE_DATA_DIRECTORY;  end;  IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER;  TImageOptionalHeader32 = IMAGE_OPTIONAL_HEADER32;  PImageOptionalHeader32 = PIMAGE_OPTIONAL_HEADER32;  PIMAGE_ROM_OPTIONAL_HEADER = ^IMAGE_ROM_OPTIONAL_HEADER;  _IMAGE_ROM_OPTIONAL_HEADER = record    Magic: Word;    MajorLinkerVersion: Byte;    MinorLinkerVersion: Byte;    SizeOfCode: DWORD;    SizeOfInitializedData: DWORD;    SizeOfUninitializedData: DWORD;    AddressOfEntryPoint: DWORD;    BaseOfCode: DWORD;    BaseOfData: DWORD;    BaseOfBss: DWORD;    GprMask: DWORD;    CprMask: array [0..3] of DWORD;    GpValue: DWORD;  end;  IMAGE_ROM_OPTIONAL_HEADER = _IMAGE_ROM_OPTIONAL_HEADER;  TIMAGE_ROM_OPTIONAL_HEADER = _IMAGE_ROM_OPTIONAL_HEADER;  TImageRomOptionalHeader = IMAGE_ROM_OPTIONAL_HEADER;  PImageRomOptionalHeader = PIMAGE_ROM_OPTIONAL_HEADER;  PIMAGE_OPTIONAL_HEADER64 = ^IMAGE_OPTIONAL_HEADER64;  _IMAGE_OPTIONAL_HEADER64 = record    Magic: Word;    MajorLinkerVersion: Byte;    MinorLinkerVersion: Byte;    SizeOfCode: DWORD;    SizeOfInitializedData: DWORD;    SizeOfUninitializedData: DWORD;    AddressOfEntryPoint: DWORD;    BaseOfCode: DWORD;    ImageBase: Int64;    SectionAlignment: DWORD;    FileAlignment: DWORD;    MajorOperatingSystemVersion: Word;    MinorOperatingSystemVersion: Word;    MajorImageVersion: Word;    MinorImageVersion: Word;    MajorSubsystemVersion: Word;    MinorSubsystemVersion: Word;    Win32VersionValue: DWORD;    SizeOfImage: DWORD;    SizeOfHeaders: DWORD;    CheckSum: DWORD;    Subsystem: Word;    DllCharacteristics: Word;    SizeOfStackReserve: Int64;    SizeOfStackCommit: Int64;    SizeOfHeapReserve: Int64;    SizeOfHeapCommit: Int64;    LoaderFlags: DWORD;    NumberOfRvaAndSizes: DWORD;    DataDirectory: array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES - 1] of IMAGE_DATA_DIRECTORY;  end;  IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64;  TImageOptionalHeader64 = IMAGE_OPTIONAL_HEADER64;  PImageOptionalHeader64 = PIMAGE_OPTIONAL_HEADER64;const  IMAGE_SIZEOF_ROM_OPTIONAL_HEADER  = 56;  IMAGE_SIZEOF_STD_OPTIONAL_HEADER  = 28;  IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224;  IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240;  IMAGE_NT_OPTIONAL_HDR32_MAGIC = $10b;  IMAGE_NT_OPTIONAL_HDR64_MAGIC = $20b;  IMAGE_ROM_OPTIONAL_HDR_MAGIC  = $107;type{$ifdef WIN64}  IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER64;  PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER64;{$else}  IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER32;  PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER32;{$endif}  TImageOptionalHeader = IMAGE_OPTIONAL_HEADER;  PImageOptionalHeader = PIMAGE_OPTIONAL_HEADER;const  IMAGE_SIZEOF_NT_OPTIONAL_HEADER = IMAGE_SIZEOF_NT_OPTIONAL32_HEADER;  IMAGE_NT_OPTIONAL_HDR_MAGIC     = IMAGE_NT_OPTIONAL_HDR32_MAGIC;type  PIMAGE_NT_HEADERS64 = ^IMAGE_NT_HEADERS64;  _IMAGE_NT_HEADERS64 = record    Signature: DWORD;    FileHeader: IMAGE_FILE_HEADER;    OptionalHeader: IMAGE_OPTIONAL_HEADER64;  end;  IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64;  TImageNtHeaders64 = IMAGE_NT_HEADERS64;  PImageNtHeaders64 = PIMAGE_NT_HEADERS64;  PIMAGE_NT_HEADERS32 = ^IMAGE_NT_HEADERS32;  _IMAGE_NT_HEADERS = record    Signature: DWORD;    FileHeader: IMAGE_FILE_HEADER;    OptionalHeader: IMAGE_OPTIONAL_HEADER32;  end;  IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS;  TImageNtHeaders32 = IMAGE_NT_HEADERS32;  PImageNtHeaders32 = PIMAGE_NT_HEADERS32;  PIMAGE_ROM_HEADERS = ^IMAGE_ROM_HEADERS;  _IMAGE_ROM_HEADERS = record    FileHeader: IMAGE_FILE_HEADER;    OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER;  end;  IMAGE_ROM_HEADERS = _IMAGE_ROM_HEADERS;  TImageRomHeaders = IMAGE_ROM_HEADERS;  PImageRomHeaders = PIMAGE_ROM_HEADERS;{$ifdef WIN64}  IMAGE_NT_HEADERS = IMAGE_NT_HEADERS64;  PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS64;{$else}  IMAGE_NT_HEADERS = IMAGE_NT_HEADERS32;  PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS32;{$endif}  TImageNtHeaders = IMAGE_NT_HEADERS;  PImageNtHeaders = PIMAGE_NT_HEADERS;  _GET_FILEEX_INFO_LEVELS = (GetFileExInfoStandard, GetFileExMaxInfoLevel);  GET_FILEEX_INFO_LEVELS = _GET_FILEEX_INFO_LEVELS;  TGetFileExInfoLevels = GET_FILEEX_INFO_LEVELS;  TGet_FileEx_Info_Levels = GET_FILEEX_INFO_LEVELS;  tagBSTRBLOB = record                  cbsize : ULONG;		  pdata  : pbyte;                  end;  BSTRBLOB=TagBSTRBlob;  TBSTRBLOB=BSTRBLOB;  PBSTRBLOB=^BSTRBLOB;  tagCLIPDATA = record                  cbsize : ULONG;		  ulClipFmt : long;		  pclipdata : pbyte;                  end;  CLIPDATA=TagCLIPDATA;  TCLIPDATA=CLIPDATA;  PCLIPDATA=^CLIPDATA;   TImage_Section_SubHeader= record            case longint of               0 : ( PhysicalAddress : DWORD );               1 : ( VirtualSize : DWORD );            end;   _IMAGE_SECTION_HEADER = record        Name : array[0..(IMAGE_SIZEOF_SHORT_NAME)-1] of BYTE;        Misc : TImage_Section_SubHeader;        VirtualAddress : DWORD;        SizeOfRawData : DWORD;        PointerToRawData : DWORD;        PointerToRelocations : DWORD;        PointerToLinenumbers : DWORD;        NumberOfRelocations : WORD;        NumberOfLinenumbers : WORD;        Characteristics : DWORD;     end;   IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER;   TIMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER;   PIMAGE_SECTION_HEADER = ^_IMAGE_SECTION_HEADER;   PPIMAGE_SECTION_HEADER = ^PIMAGE_SECTION_HEADER;   IMAGESECTIONHEADER = _IMAGE_SECTION_HEADER;   TIMAGESECTIONHEADER = _IMAGE_SECTION_HEADER;   PIMAGESECTIONHEADER = ^_IMAGE_SECTION_HEADER;   _IMAGE_FUNCTION_ENTRY = record      StartingAddress,      EndingAddress,      EndOfPrologue     : DWord;      end;   IMAGE_FUNCTION_ENTRY = _IMAGE_FUNCTION_ENTRY;   TIMAGE_FUNCTION_ENTRY= IMAGE_FUNCTION_ENTRY;   PIMAGE_FUNCTION_ENTRY= ^IMAGE_FUNCTION_ENTRY;   LPIMAGE_FUNCTION_ENTRY= PIMAGE_FUNCTION_ENTRY;   _IMAGE_FUNCTION_ENTRY64 = record       StartingAddress,       EndingAddress :   ULONGLONG   ;       case boolean of         false : (EndOfPrologue : ULONGLONG);         true  : (UnwindInfoAddress : ULONGLONG);       end;   IMAGE_FUNCTION_ENTRY64  =  _IMAGE_FUNCTION_ENTRY64;   TIMAGE_FUNCTION_ENTRY64 =  _IMAGE_FUNCTION_ENTRY64;   PIMAGE_FUNCTION_ENTRY64 =  ^_IMAGE_FUNCTION_ENTRY64;   LPIMAGE_FUNCTION_ENTRY64=  ^_IMAGE_FUNCTION_ENTRY64;   _IMAGE_COFF_SYMBOLS_HEADER  = record      NumberOfSymbols,      LvaToFirstSymbol,      NumberOfLinenumbers,      LvaToFirstLinenumber,      RvaToFirstByteOfCode,      RvaToLastByteOfCode,      RvaToFirstByteOfData,      RvaToLastByteOfData    : DWORD;    end;   TIMAGE_COFF_SYMBOLS_HEADER = _IMAGE_COFF_SYMBOLS_HEADER;   IMAGE_COFF_SYMBOLS_HEADER  = _IMAGE_COFF_SYMBOLS_HEADER;   PIMAGE_COFF_SYMBOLS_HEADER = ^IMAGE_COFF_SYMBOLS_HEADER;   LPIMAGE_COFF_SYMBOLS_HEADER= PIMAGE_COFF_SYMBOLS_HEADER;   _FPO_DATA = record    ulOffStart: DWORD;             // offset 1st byte of function code    cbProcSize: DWORD;             // # bytes in function    cdwLocals : DWORD;             // # bytes in locals/4    bitvalues : word;              //{    WORD        cdwParams;              // # bytes in params/4    WORD        cbProlog : 8;           // # bytes in prolog    WORD        cbRegs   : 3;           // # regs saved    WORD        fHasSEH  : 1;           // TRUE if SEH in func    WORD        fUseBP   : 1;           // TRUE if EBP has been allocated    WORD        reserved : 1;           // reserved for future use    WORD        cbFrame  : 2;           // frame type}    end;   FPO_DATA   = _FPO_DATA;   TFPO_DATA  = _FPO_DATA;   PFPO_DATA  = ^_FPO_DATA;   LPFPO_DATA = PFPO_DATA;     IMAGE_LOAD_CONFIG_DIRECTORY32 = record          Size : DWORD;          TimeDateStamp : DWORD;          MajorVersion : WORD;          MinorVersion : WORD;          GlobalFlagsClear : DWORD;          GlobalFlagsSet : DWORD;          CriticalSectionDefaultTimeout : DWORD;          DeCommitFreeBlockThreshold : DWORD;          DeCommitTotalFreeThreshold : DWORD;          LockPrefixTable : DWORD;          MaximumAllocationSize : DWORD;          VirtualMemoryThreshold : DWORD;          ProcessHeapFlags : DWORD;          ProcessAffinityMask : DWORD;          CSDVersion : WORD;          Reserved1 : WORD;          EditList : DWORD;          SecurityCookie : DWORD;          SEHandlerTable : DWORD;          SEHandlerCount : DWORD;       end;     PIMAGE_LOAD_CONFIG_DIRECTORY32 = ^IMAGE_LOAD_CONFIG_DIRECTORY32;     TIMAGE_LOAD_CONFIG_DIRECTORY32 = IMAGE_LOAD_CONFIG_DIRECTORY32;     IMAGE_LOAD_CONFIG_DIRECTORY64 = record          Size : DWORD;          TimeDateStamp : DWORD;          MajorVersion : WORD;          MinorVersion : WORD;          GlobalFlagsClear : DWORD;          GlobalFlagsSet : DWORD;          CriticalSectionDefaultTimeout : DWORD;          DeCommitFreeBlockThreshold : ULONGLONG;          DeCommitTotalFreeThreshold : ULONGLONG;          LockPrefixTable : ULONGLONG;          MaximumAllocationSize : ULONGLONG;          VirtualMemoryThreshold : ULONGLONG;          ProcessAffinityMask : ULONGLONG;          ProcessHeapFlags : DWORD;          CSDVersion : WORD;          Reserved1 : WORD;          EditList : ULONGLONG;          SecurityCookie : ULONGLONG;          SEHandlerTable : ULONGLONG;          SEHandlerCount : ULONGLONG;       end;     PIMAGE_LOAD_CONFIG_DIRECTORY64 = ^IMAGE_LOAD_CONFIG_DIRECTORY64;     TIMAGE_LOAD_CONFIG_DIRECTORY64 = IMAGE_LOAD_CONFIG_DIRECTORY64;{$ifdef WIN64}     IMAGE_LOAD_CONFIG_DIRECTORY = IMAGE_LOAD_CONFIG_DIRECTORY64;     TIMAGE_LOAD_CONFIG_DIRECTORY = TIMAGE_LOAD_CONFIG_DIRECTORY64;     PIMAGE_LOAD_CONFIG_DIRECTORY = PIMAGE_LOAD_CONFIG_DIRECTORY64;{$else}     IMAGE_LOAD_CONFIG_DIRECTORY = IMAGE_LOAD_CONFIG_DIRECTORY32;     TIMAGE_LOAD_CONFIG_DIRECTORY = TIMAGE_LOAD_CONFIG_DIRECTORY32;     PIMAGE_LOAD_CONFIG_DIRECTORY = PIMAGE_LOAD_CONFIG_DIRECTORY32;{$endif}     MOUSEINPUT = record       dx        : LONG;       dy        : LONG;       MouseData : DWORD;       dwFlags   : DWORD;       Time      : DWORD;       ExtraInfo : ULONG_PTR;     end;     TMOUSEINPUT  = MOUSEINPUT;     PMOUSEINPUT  = ^MOUSEINPUT;     LPMOUSEINPUT = PMOUSEINPUT;     KEYBDINPUT = record       wVk       : WORD;       wScan     : WORD;       dwFlags   : DWORD;       Time      : DWORD;       ExtraInfo : ULONG_PTR;     end;     TKEYBDINPUT  = KEYBDINPUT;     PKEYBDINPUT  = ^KEYBDINPUT;     LPKEYBDINPUT = PKEYBDINPUT;     HARDWAREINPUT = record       uMsg     : DWORD;       wParamL  : WORD;       wParamH  : WORD;     end;     THARDWAREINPUT  = HARDWAREINPUT;     PHARDWAREINPUT  = ^HARDWAREINPUT;     LPHARDWAREINPUT = PHARDWAREINPUT;     TINPUT = record       _Type : DWORD;       case integer of         1 : (mi : MOUSEINPUT);         2 : (ki : KEYBDINPUT);         3 : (hi : HARDWAREINPUT);     end;     PINPUT = ^TINPUT;     LPINPUT = PINPUT;{$push}{$packrecords 4}    PIMAGE_EXPORT_DIRECTORY = ^TIMAGE_EXPORT_DIRECTORY;    IMAGE_EXPORT_DIRECTORY = record        Characteristics : DWORD;        TimeDateStamp   : DWORD;        MajorVersion    : WORD;        MinorVersion    : WORD;        Name 	        : DWORD;        Base 		    : DWORD;        NumberOfFunctions : DWORD;        NumberOfNames   : DWORD;        AddressOfFunctions : DWORD;     { RVA from base of image }        AddressOfNames  : DWORD;        { RVA from base of image }        AddressOfNameOrdinals : DWORD;  { RVA from base of image }      end;    TIMAGE_EXPORT_DIRECTORY = IMAGE_EXPORT_DIRECTORY;     _IMAGE_EXPORT_DIRECTORY = IMAGE_EXPORT_DIRECTORY;    LPIMAGE_EXPORT_DIRECTORY= PIMAGE_EXPORT_DIRECTORY;  P_IMAGE_IMPORT_BY_NAME = ^_IMAGE_IMPORT_BY_NAME;  _IMAGE_IMPORT_BY_NAME =  record      Hint : WORD;      Name : array[0..0] of AnsiCHAR;    end;  IMAGE_IMPORT_BY_NAME = _IMAGE_IMPORT_BY_NAME;  PIMAGE_IMPORT_BY_NAME = ^IMAGE_IMPORT_BY_NAME;  LPIMAGE_IMPORT_BY_NAME = P_IMAGE_IMPORT_BY_NAME;  PPIMAGE_IMPORT_BY_NAME = ^PIMAGE_IMPORT_BY_NAME;  {$push}{$packrecords 8}              // Use align 8 for the 64-bit IAT.}  P_IMAGE_THUNK_DATA64 = ^_IMAGE_THUNK_DATA64;  _IMAGE_THUNK_DATA64 =  record      u1 :  record          case longint of            0 : ( ForwarderString : ULONGLONG );    { PBYTE  }            1 : ( _Function : ULONGLONG );          { PDWORD }            2 : ( Ordinal : ULONGLONG );            3 : ( AddressOfData : ULONGLONG );      { PIMAGE_IMPORT_BY_NAME }          end;    end;  IMAGE_THUNK_DATA64 = _IMAGE_THUNK_DATA64;  PIMAGE_THUNK_DATA64 = ^IMAGE_THUNK_DATA64;  PPIMAGE_THUNK_DATA64 = ^PIMAGE_THUNK_DATA64;  LPIMAGE_THUNK_DATA64 = PIMAGE_THUNK_DATA64;  {$pop}                        // Back to 4 byte packing}  P_IMAGE_THUNK_DATA32 = ^_IMAGE_THUNK_DATA32;  _IMAGE_THUNK_DATA32 =  record      u1 :  record          case longint of            0 : ( ForwarderString : DWORD );          { PBYTE  }            1 : ( _Function : DWORD );                { PDWORD }            2 : ( Ordinal : DWORD );            3 : ( AddressOfData : DWORD );            { PIMAGE_IMPORT_BY_NAME }          end;    end;  IMAGE_THUNK_DATA32 = _IMAGE_THUNK_DATA32;  PIMAGE_THUNK_DATA32 = ^IMAGE_THUNK_DATA32;  PPIMAGE_THUNK_DATA32 = ^PIMAGE_THUNK_DATA32;  LPIMAGE_THUNK_DATA32 = PIMAGE_THUNK_DATA32;  { }  { Thread Local Storage }  { }  PIMAGE_TLS_CALLBACK = procedure (DllHandle:PVOID; Reason:DWORD; Reserved:PVOID);stdcall; {NTAPI}  P_IMAGE_TLS_DIRECTORY64 = ^_IMAGE_TLS_DIRECTORY64;  _IMAGE_TLS_DIRECTORY64 =  record      StartAddressOfRawData : ULONGLONG;      EndAddressOfRawData : ULONGLONG;      AddressOfIndex : ULONGLONG;               { PDWORD }      AddressOfCallBacks : ULONGLONG;           { PIMAGE_TLS_CALLBACK *; }      SizeOfZeroFill : DWORD;          case longint of            0 : ( Characteristics : DWORD );            1 : ( CharacteristicsFields:  bitpacked record                                  Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits                                  Alignment : 0..$F;      // 4 bits                                  Reserved1 : 0..$FF;     // 8 bits              end );    end;  IMAGE_TLS_DIRECTORY64 = _IMAGE_TLS_DIRECTORY64;  PIMAGE_TLS_DIRECTORY64 = ^IMAGE_TLS_DIRECTORY64;  PPIMAGE_TLS_DIRECTORY64 = ^PIMAGE_TLS_DIRECTORY64;  LPIMAGE_TLS_DIRECTORY64 = PIMAGE_TLS_DIRECTORY64;  P_IMAGE_TLS_DIRECTORY32 = ^_IMAGE_TLS_DIRECTORY32;  _IMAGE_TLS_DIRECTORY32 =  record      StartAddressOfRawData : DWORD;      EndAddressOfRawData : DWORD;      AddressOfIndex : DWORD;                      { PDWORD }      AddressOfCallBacks : DWORD;                  { PIMAGE_TLS_CALLBACK * }      SizeOfZeroFill : DWORD;          case longint of            0 : ( Characteristics : DWORD );            1 : ( CharacteristicsFields : bitpacked  record                                 Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits                                 Alignment : 0..$F;      // 4 bits                                 Reserved1 : 0..$FF;     // 8 bits              end );    end;  IMAGE_TLS_DIRECTORY32 = _IMAGE_TLS_DIRECTORY32;  PIMAGE_TLS_DIRECTORY32 = ^IMAGE_TLS_DIRECTORY32;  PPIMAGE_TLS_DIRECTORY32 = ^PIMAGE_TLS_DIRECTORY32;  LPIMAGE_TLS_DIRECTORY32 = PIMAGE_TLS_DIRECTORY32;  {$ifdef WIN64}  PIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA64;  IMAGE_THUNK_DATA = IMAGE_THUNK_DATA64;  PPIMAGE_THUNK_DATA = ^PIMAGE_THUNK_DATA64;  LPIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA64;  PIMAGE_TLS_DIRECTORY = ^IMAGE_TLS_DIRECTORY;  IMAGE_TLS_DIRECTORY = IMAGE_TLS_DIRECTORY64;  PPIMAGE_TLS_DIRECTORY = ^PIMAGE_TLS_DIRECTORY;  LPIMAGE_TLS_DIRECTORY = PIMAGE_TLS_DIRECTORY64;  {$else}  PIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA32;  IMAGE_THUNK_DATA = IMAGE_THUNK_DATA32;  PPIMAGE_THUNK_DATA = ^PIMAGE_THUNK_DATA;  LPIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA32;  PIMAGE_TLS_DIRECTORY = ^IMAGE_TLS_DIRECTORY;  IMAGE_TLS_DIRECTORY = IMAGE_TLS_DIRECTORY32;  PPIMAGE_TLS_DIRECTORY = ^PIMAGE_TLS_DIRECTORY;  LPIMAGE_TLS_DIRECTORY = PIMAGE_TLS_DIRECTORY32;  {$endif}  P_IMAGE_IMPORT_DESCRIPTOR = ^_IMAGE_IMPORT_DESCRIPTOR;  _IMAGE_IMPORT_DESCRIPTOR =  record          case longint of            0 : ( Characteristics : DWORD );     { 0 for terminating null import descriptor }            1 : ( OriginalFirstThunk : DWORD;    { RVA to original unbound IAT (PIMAGE_THUNK_DATA) }                  TimeDateStamp : DWORD;         { 0 if not bound, }                                                 // -1 if bound, and real date\time stamp                                                 //     in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)                                                 // O.W. date/time stamp of DLL bound to (Old BIND)                  ForwarderChain : DWORD;        // -1 if no forwarders                  Name : DWORD;                  FirstThunk : DWORD;            // RVA to IAT (if bound this IAT has actual addresses)                );      end;  IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR;  PIMAGE_IMPORT_DESCRIPTOR = ^IMAGE_IMPORT_DESCRIPTOR   {UNALIGNED  }     ;  PPIMAGE_IMPORT_DESCRIPTOR = ^PIMAGE_IMPORT_DESCRIPTOR;  LPIMAGE_IMPORT_DESCRIPTOR = PIMAGE_IMPORT_DESCRIPTOR;  { }  { New format import descriptors pointed to by DataDirectory[ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT ] }  { }  P_IMAGE_BOUND_IMPORT_DESCRIPTOR = ^_IMAGE_BOUND_IMPORT_DESCRIPTOR;  _IMAGE_BOUND_IMPORT_DESCRIPTOR =  record      TimeDateStamp : DWORD;      OffsetModuleName : WORD;      NumberOfModuleForwarderRefs : WORD;      { Array of zero or more IMAGE_BOUND_FORWARDER_REF follows }    end;  IMAGE_BOUND_IMPORT_DESCRIPTOR = _IMAGE_BOUND_IMPORT_DESCRIPTOR;  PIMAGE_BOUND_IMPORT_DESCRIPTOR = ^IMAGE_BOUND_IMPORT_DESCRIPTOR;  LPIMAGE_BOUND_IMPORT_DESCRIPTOR = P_IMAGE_BOUND_IMPORT_DESCRIPTOR;  PPIMAGE_BOUND_IMPORT_DESCRIPTOR = ^PIMAGE_BOUND_IMPORT_DESCRIPTOR;  P_IMAGE_BOUND_FORWARDER_REF = ^_IMAGE_BOUND_FORWARDER_REF;  _IMAGE_BOUND_FORWARDER_REF =  record      TimeDateStamp : DWORD;      OffsetModuleName : WORD;      Reserved : WORD;    end;  IMAGE_BOUND_FORWARDER_REF = _IMAGE_BOUND_FORWARDER_REF;  PIMAGE_BOUND_FORWARDER_REF = ^IMAGE_BOUND_FORWARDER_REF;  LPIMAGE_BOUND_FORWARDER_REF = P_IMAGE_BOUND_FORWARDER_REF;  PPIMAGE_BOUND_FORWARDER_REF = ^PIMAGE_BOUND_FORWARDER_REF;  { Delay load version 2 }  _IMAGE_DELAYLOAD_DESCRIPTOR = record        case longint of        0: (AllAttributes :Dword;            DllNameRVA,                       // RVA to the name of the target library (NULL-terminate ASCII string)            ModuleHandleRVA,                  // RVA to the HMODULE caching location (PHMODULE)            ImportAddressTableRVA,            // RVA to the start of the IAT (PIMAGE_THUNK_DATA)            ImportNameTableRVA,               // RVA to the start of the name table (PIMAGE_THUNK_DATA::AddressOfData)            BoundImportAddressTableRVA,       // RVA to an optional bound IAT            UnloadInformationTableRVA,        // RVA to an optional unload info table            TimeDateStamp            : DWORD; // 0 if not bound,                                            // Otherwise, date/time of the target DLL         );        1: (Attributes:bitpacked record             rvabased:0..1;  {1 bits}                 // Delay load version 2             ReservedAttributes: 0..$7FFFFFF; {31 bits}             end;)     end;  IMAGE_DELAYLOAD_DESCRIPTOR= _IMAGE_DELAYLOAD_DESCRIPTOR;  PIMAGE_DELAYLOAD_DESCRIPTOR= ^_IMAGE_DELAYLOAD_DESCRIPTOR;  PCIMAGE_DELAYLOAD_DESCRIPTOR= PIMAGE_DELAYLOAD_DESCRIPTOR;{$pop} tagCOMBOBOXINFO = record    cbSize: DWORD;    rcItem: TRect;    rcButton: TRect;    stateButton: DWORD;    hwndCombo: HWND;    hwndItem: HWND;    hwndList: HWND;  end;  TComboboxInfo = tagCOMBOBOXINFO;  PComboboxInfo = ^TComboboxInfo;  LPComboboxInfo = PComboboxInfo;  _TRIVERTEX = record          x : LONG;          y : LONG;          Red : COLOR16;          Green : COLOR16;          Blue : COLOR16;          Alpha : COLOR16;       end;  TRIVERTEX = _TRIVERTEX;  PTRIVERTEX = ^_TRIVERTEX;  LPTRIVERTEX = PTRIVERTEX;  _GRADIENT_TRIANGLE = record          Vertex1 : ULONG;          Vertex2 : ULONG;          Vertex3 : ULONG;       end;  GRADIENT_TRIANGLE = _GRADIENT_TRIANGLE;  TGRADIENT_TRIANGLE = _GRADIENT_TRIANGLE;  PGRADIENT_TRIANGLE = ^_GRADIENT_TRIANGLE;  LPGRADIENT_TRIANGLE = PGRADIENT_TRIANGLE;  _GRADIENT_RECT = record          UpperLeft : ULONG;          LowerRight : ULONG;       end;  GRADIENT_RECT = _GRADIENT_RECT;  TGRADIENT_RECT = _GRADIENT_RECT;  PGRADIENT_RECT = ^_GRADIENT_RECT;  LPGRADIENT_RECT = PGRADIENT_RECT;  CURSORINFO = record    		 cbSize  : DWORD;     		 flags   : DWORD;    		 hCursor : HCURSOR;    	         ptScreenPos : POINT;                 end;  PCURSORINFO = ^CURSORINFO;  TCURSORINFO = CURSORINFO;const  SECURITY_DESCRIPTOR_MIN_LENGTH = SIZEOF(SECURITY_DESCRIPTOR);// #if(WINVER >= 0x0500)type     tagMENUGETOBJECTINFO = packed record       dwFlags:DWORD;       uPos:UINT;       _hmenu:HMENU;       riid:PVOID;       pvObj:PVOID;     end;     MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;     PMENUGETOBJECTINFO = ^tagMENUGETOBJECTINFO;     LPMENUGETOBJECTINFO = ^tagMENUGETOBJECTINFO;//#endif /* WINVER >= 0x0500 */// Menubar informationtype     tagMENUBARINFO = record       cbSize:DWORD;       rcBar:Windows.RECT; // rect of bar, popup, item       _hmenu:HMENU;       // real menu handle of bar, popup       hwndMenu:HWND;      // hwnd of item submenu if one//    fBarFocused:1:BOOL;  // bar, popup has the focus//    fFocused:1:BOOL;     // item has the focus      FocusedBits:DWORD;    end;    MENUBARINFO = tagMENUBARINFO;    PMENUBARINFO = ^tagMENUBARINFO;    LPMENUBARINFO = ^tagMENUBARINFO;    // defined here because large_integer is defined in struct.inc    LPPROGRESS_ROUTINE = function(TotalFileSize,TotalBytesTransferred,StreamSize,StreamBytesTransferred:LARGE_INTEGER;dwStreamNumber,dwCallbackReason:DWord;hSourceFile,hDestinationFile :THandle;lpdata:pointer):Dword; Stdcall;    TPROGRESS_ROUTINE = LPPROGRESS_ROUTINE;// Raw Input Messages//#if(_WIN32_WINNT >= 0x0501){$push}{$packrecords 4}    tagRAWINPUTHEADER = record      dwType: DWORD;      dwSize: DWORD;      hDevice: HANDLE;      wParam: WPARAM;    end;    RAWINPUTHEADER = tagRAWINPUTHEADER;    TRAWINPUTHEADER = tagRAWINPUTHEADER;    PRAWINPUTHEADER = ^tagRAWINPUTHEADER;    LPRAWINPUTHEADER = ^tagRAWINPUTHEADER;(* * Raw format of the mouse input *)    tagRAWMOUSE = record      (*       * Indicator flags.       *)      usFlags: USHORT;      case longint of        0: (          (*           * The transition state of the mouse buttons.           *)          ulButtons: ULONG;          (*           * The raw state of the mouse buttons.           *)          ulRawButtons: ULONG;          (*           * The signed relative or absolute motion in the X direction.           *)          lLastX: LONG;          (*           * The signed relative or absolute motion in the Y direction.           *)          lLastY: LONG;          (*           * Device-specific additional information for the event.           *)          ulExtraInformation: ULONG        );        1: (          (*           * The transition state of the mouse buttons.           *)          usButtonFlags: USHORT;          usButtonData: USHORT        );    end;    RAWMOUSE = tagRAWMOUSE;    TRAWMOUSE = tagRAWMOUSE;    PRAWMOUSE = ^tagRAWMOUSE;    LPRAWMOUSE = ^tagRAWMOUSE;(* * Raw format of the keyboard input *)    tagRAWKEYBOARD = record      (*       * The "make" scan code (key depression).       *)      MakeCode: USHORT;      (*       * The flags field indicates a "break" (key release) and other       * miscellaneous scan code information defined in ntddkbd.h.       *)      Flags: USHORT;      Reserved: USHORT;      (*       * Windows message compatible information       *)      VKey: USHORT;      Message: UINT;      (*       * Device-specific additional information for the event.       *)      ExtraInformation: ULONG;    end;    RAWKEYBOARD = tagRAWKEYBOARD;    TRAWKEYBOARD = tagRAWKEYBOARD;    PRAWKEYBOARD = ^tagRAWKEYBOARD;    LPRAWKEYBOARD = ^tagRAWKEYBOARD;    (*     * Raw format of the input from Human Input Devices     *)    tagRAWHID = record      dwSizeHid: DWORD;    // byte size of each report      dwCount: DWORD;      // number of input packed      bRawData: array [0..0] of BYTE;    end;    RAWHID = tagRAWHID;    TRAWHID = tagRAWHID;    PRAWHID = ^tagRAWHID;    LPRAWHID = ^tagRAWHID;(* * RAWINPUT data structure. *)    tagRAWINPUT = record      header: RAWINPUTHEADER;      data: record        case longint of          0: (mouse: RAWMOUSE);          1: (keyboard: RAWKEYBOARD);          2: (hid: RAWHID);      end;    end;    RAWINPUT = tagRAWINPUT;    TRAWINPUT = tagRAWINPUT;    PRAWINPUT = ^tagRAWINPUT;    LPRAWINPUT = ^tagRAWINPUT;    PPRAWINPUT = ^PRAWINPUT;    LPLPRAWINPUT = ^LPRAWINPUT;    tagRID_DEVICE_INFO_MOUSE = record      dwId: DWORD;      dwNumberOfButtons: DWORD;      dwSampleRate: DWORD;      fHasHorizontalWheel: BOOL;    end;    RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;    TRID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;    PRID_DEVICE_INFO_MOUSE = ^tagRID_DEVICE_INFO_MOUSE;    tagRID_DEVICE_INFO_KEYBOARD = record      dwType: DWORD;      dwSubType: DWORD;      dwKeyboardMode: DWORD;      dwNumberOfFunctionKeys: DWORD;      dwNumberOfIndicators: DWORD;      dwNumberOfKeysTotal: DWORD;    end;    RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;    TRID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;    PRID_DEVICE_INFO_KEYBOARD = ^tagRID_DEVICE_INFO_KEYBOARD;    tagRID_DEVICE_INFO_HID = record      dwVendorId: DWORD;      dwProductId: DWORD;      dwVersionNumber: DWORD;      (*       * Top level collection UsagePage and Usage       *)      usUsagePage: USHORT;      usUsage: USHORT;    end;    RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;    TRID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;    PRID_DEVICE_INFO_HID = ^tagRID_DEVICE_INFO_HID;    tagRID_DEVICE_INFO = record      cbSize: DWORD;      dwType: DWORD;      case longint of        0: (mouse: RID_DEVICE_INFO_MOUSE);        1: (keyboard: RID_DEVICE_INFO_KEYBOARD);        2: (hid: RID_DEVICE_INFO_HID);    end;    RID_DEVICE_INFO = tagRID_DEVICE_INFO;    PRID_DEVICE_INFO = ^tagRID_DEVICE_INFO;    LPRID_DEVICE_INFO = ^tagRID_DEVICE_INFO;(* * Raw Input request APIs *)    tagRAWINPUTDEVICE = record      usUsagePage: USHORT; // Toplevel collection UsagePage      usUsage: USHORT;     // Toplevel collection Usage      dwFlags: DWORD;      hwndTarget: HWND;    // Target hwnd. NULL = follows keyboard focus    end;    RAWINPUTDEVICE = tagRAWINPUTDEVICE;    TRAWINPUTDEVICE = tagRAWINPUTDEVICE;    PRAWINPUTDEVICE = ^tagRAWINPUTDEVICE;    LPRAWINPUTDEVICE = ^tagRAWINPUTDEVICE;    PCRAWINPUTDEVICE = ^tagRAWINPUTDEVICE;{$packrecords C}	    tagRAWINPUTDEVICELIST = record      hDevice: HANDLE;      dwType: DWORD;    end;    RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;    PRAWINPUTDEVICELIST = ^tagRAWINPUTDEVICELIST;//#endif /* _WIN32_WINNT >= 0x0501 */// Wincon.h      _CONSOLE_SCREEN_BUFFER_INFOEX = record        cbSize : ULONG;        dwSize : COORD;        dwCursorPosition : COORD;        wAttributes : WORD;        srWindow : SMALL_RECT;        dwMaximumWindowSize : COORD;        wPopupAttributes : WORD;        bFullscreenSupported : BOOL;        ColorTable : array[0..15] of COLORREF;      end;    CONSOLE_SCREEN_BUFFER_INFOEX = _CONSOLE_SCREEN_BUFFER_INFOEX;    PCONSOLE_SCREEN_BUFFER_INFOEX = ^_CONSOLE_SCREEN_BUFFER_INFOEX;        _CONSOLE_FONT_INFO = record        nFont : DWORD;        dwFontSize : COORD;      end;    CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO;    PCONSOLE_FONT_INFO = ^_CONSOLE_FONT_INFO;    _CONSOLE_FONT_INFOEX = record        cbSize : ULONG;        nFont : DWORD;        dwFontSize : COORD;        FontFamily : UINT;        FontWeight : UINT;        FaceName : array[0..(LF_FACESIZE)-1] of WCHAR;      end;    CONSOLE_FONT_INFOEX = _CONSOLE_FONT_INFOEX;    PCONSOLE_FONT_INFOEX = ^_CONSOLE_FONT_INFOEX;    _CONSOLE_HISTORY_INFO = record        cbSize : UINT;        HistoryBufferSize : UINT;        NumberOfHistoryBuffers : UINT;        dwFlags : DWORD;      end;    CONSOLE_HISTORY_INFO = _CONSOLE_HISTORY_INFO;    PCONSOLE_HISTORY_INFO = ^_CONSOLE_HISTORY_INFO;    _CONSOLE_SELECTION_INFO = record        dwFlags : DWORD;        dwSelectionAnchor : COORD;        srSelection : SMALL_RECT;      end;    CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO;    PCONSOLE_SELECTION_INFO = ^_CONSOLE_SELECTION_INFO;    _CONSOLE_READCONSOLE_CONTROL = record        nLength : ULONG;        nInitialChars : ULONG;        dwCtrlWakeupMask : ULONG;        dwControlKeyState : ULONG;      end;    CONSOLE_READCONSOLE_CONTROL = _CONSOLE_READCONSOLE_CONTROL;    PCONSOLE_READCONSOLE_CONTROL = ^_CONSOLE_READCONSOLE_CONTROL;    COMPUTER_NAME_FORMAT =  (          ComputerNameNetBIOS=0,          ComputerNameDnsHostname,          ComputerNameDnsDomain,          ComputerNameDnsFullyQualified,          ComputerNamePhysicalNetBIOS,          ComputerNamePhysicalDnsHostname,          ComputerNamePhysicalDnsDomain,          ComputerNamePhysicalDnsFullyQualified,          ComputerNameMax=31);    TCOMPUTER_NAME_FORMAT = COMPUTER_NAME_FORMAT;  PGUITHREADINFO = ^TGUITHREADINFO;  TGUITHREADINFO = record    cbSize           : DWORD;     { must be initialized before the call       }    flags            : DWORD;    hwndActive       : HWND;    hwndFocus        : HWND;    hwndCapture      : HWND;    hwndMenuOwner    : HWND;    hwndMoveSize     : HWND;    hwndCaret        : HWND;    rcCaret          : TRECT;  end;    PPROCESSOR_NUMBER = ^_PROCESSOR_NUMBER;    _PROCESSOR_NUMBER = record        Group :  WORD;        Number  : BYTE;        Reserved : BYTE;      end;   TPROCESSOR_NUMBER = _PROCESSOR_NUMBER;{$pop}{$endif read_interface}{$ifdef read_implementation}  function fBinary(var a : DCB) : DWORD;    begin       fBinary:=(a.flags and bm_DCB_fBinary) shr bp_DCB_fBinary;    end;  procedure set_fBinary(var a : DCB; __fBinary : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fBinary) or ((__fBinary shl bp_DCB_fBinary) and bm_DCB_fBinary);    end;  function fParity(var a : DCB) : DWORD;    begin       fParity:=(a.flags and bm_DCB_fParity) shr bp_DCB_fParity;    end;  procedure set_fParity(var a : DCB; __fParity : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fParity) or ((__fParity shl bp_DCB_fParity) and bm_DCB_fParity);    end;  function fOutxCtsFlow(var a : DCB) : DWORD;    begin       fOutxCtsFlow:=(a.flags and bm_DCB_fOutxCtsFlow) shr bp_DCB_fOutxCtsFlow;    end;  procedure set_fOutxCtsFlow(var a : DCB; __fOutxCtsFlow : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fOutxCtsFlow) or ((__fOutxCtsFlow shl bp_DCB_fOutxCtsFlow) and bm_DCB_fOutxCtsFlow);    end;  function fOutxDsrFlow(var a : DCB) : DWORD;    begin       fOutxDsrFlow:=(a.flags and bm_DCB_fOutxDsrFlow) shr bp_DCB_fOutxDsrFlow;    end;  procedure set_fOutxDsrFlow(var a : DCB; __fOutxDsrFlow : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fOutxDsrFlow) or ((__fOutxDsrFlow shl bp_DCB_fOutxDsrFlow) and bm_DCB_fOutxDsrFlow);    end;  function fDtrControl(var a : DCB) : DWORD;    begin       fDtrControl:=(a.flags and bm_DCB_fDtrControl) shr bp_DCB_fDtrControl;    end;  procedure set_fDtrControl(var a : DCB; __fDtrControl : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fDtrControl) or ((__fDtrControl shl bp_DCB_fDtrControl) and bm_DCB_fDtrControl);    end;  function fDsrSensitivity(var a : DCB) : DWORD;    begin       fDsrSensitivity:=(a.flags and bm_DCB_fDsrSensitivity) shr bp_DCB_fDsrSensitivity;    end;  procedure set_fDsrSensitivity(var a : DCB; __fDsrSensitivity : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fDsrSensitivity) or ((__fDsrSensitivity shl bp_DCB_fDsrSensitivity) and bm_DCB_fDsrSensitivity);    end;  function fTXContinueOnXoff(var a : DCB) : DWORD;    begin       fTXContinueOnXoff:=(a.flags and bm_DCB_fTXContinueOnXoff) shr bp_DCB_fTXContinueOnXoff;    end;  procedure set_fTXContinueOnXoff(var a : DCB; __fTXContinueOnXoff : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fTXContinueOnXoff) or ((__fTXContinueOnXoff shl bp_DCB_fTXContinueOnXoff) and bm_DCB_fTXContinueOnXoff);    end;  function fOutX(var a : DCB) : DWORD;    begin       fOutX:=(a.flags and bm_DCB_fOutX) shr bp_DCB_fOutX;    end;  procedure set_fOutX(var a : DCB; __fOutX : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fOutX) or ((__fOutX shl bp_DCB_fOutX) and bm_DCB_fOutX);    end;  function fInX(var a : DCB) : DWORD;    begin       fInX:=(a.flags and bm_DCB_fInX) shr bp_DCB_fInX;    end;  procedure set_fInX(var a : DCB; __fInX : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fInX) or ((__fInX shl bp_DCB_fInX) and bm_DCB_fInX);    end;  function fErrorChar(var a : DCB) : DWORD;    begin       fErrorChar:=(a.flags and bm_DCB_fErrorChar) shr bp_DCB_fErrorChar;    end;  procedure set_fErrorChar(var a : DCB; __fErrorChar : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fErrorChar) or ((__fErrorChar shl bp_DCB_fErrorChar) and bm_DCB_fErrorChar);    end;  function fNull(var a : DCB) : DWORD;    begin       fNull:=(a.flags and bm_DCB_fNull) shr bp_DCB_fNull;    end;  procedure set_fNull(var a : DCB; __fNull : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fNull) or ((__fNull shl bp_DCB_fNull) and bm_DCB_fNull);    end;  function fRtsControl(var a : DCB) : DWORD;    begin       fRtsControl:=(a.flags and bm_DCB_fRtsControl) shr bp_DCB_fRtsControl;    end;  procedure set_fRtsControl(var a : DCB; __fRtsControl : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fRtsControl) or ((__fRtsControl shl bp_DCB_fRtsControl) and bm_DCB_fRtsControl);    end;  function fAbortOnError(var a : DCB) : DWORD;    begin       fAbortOnError:=(a.flags and bm_DCB_fAbortOnError) shr bp_DCB_fAbortOnError;    end;  procedure set_fAbortOnError(var a : DCB; __fAbortOnError : DWORD);    begin       a.flags:=(a.flags and not bm_DCB_fAbortOnError) or ((__fAbortOnError shl bp_DCB_fAbortOnError) and bm_DCB_fAbortOnError);    end;  function fDummy2(var a : DCB) : DWORD;    begin       fDummy2:=(a.flags and bm_DCB_fDummy2) shr bp_DCB_fDummy2;    end;  procedure set_fDummy2(var a : DCB; __fDummy2 : DWORD);    begin       a.flags:=(a.flags and dword(not bm_DCB_fDummy2)) or dword((__fDummy2 shl bp_DCB_fDummy2) and bm_DCB_fDummy2);    end;  function fCtsHold(var a : COMSTAT) : DWORD;    begin       fCtsHold:=(a.flag0 and bm_COMSTAT_fCtsHold) shr bp_COMSTAT_fCtsHold;    end;  procedure set_fCtsHold(var a : COMSTAT; __fCtsHold : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fCtsHold) or ((__fCtsHold shl bp_COMSTAT_fCtsHold) and bm_COMSTAT_fCtsHold);    end;  function fDsrHold(var a : COMSTAT) : DWORD;    begin       fDsrHold:=(a.flag0 and bm_COMSTAT_fDsrHold) shr bp_COMSTAT_fDsrHold;    end;  procedure set_fDsrHold(var a : COMSTAT; __fDsrHold : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fDsrHold) or ((__fDsrHold shl bp_COMSTAT_fDsrHold) and bm_COMSTAT_fDsrHold);    end;  function fRlsdHold(var a : COMSTAT) : DWORD;    begin       fRlsdHold:=(a.flag0 and bm_COMSTAT_fRlsdHold) shr bp_COMSTAT_fRlsdHold;    end;  procedure set_fRlsdHold(var a : COMSTAT; __fRlsdHold : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fRlsdHold) or ((__fRlsdHold shl bp_COMSTAT_fRlsdHold) and bm_COMSTAT_fRlsdHold);    end;  function fXoffHold(var a : COMSTAT) : DWORD;    begin       fXoffHold:=(a.flag0 and bm_COMSTAT_fXoffHold) shr bp_COMSTAT_fXoffHold;    end;  procedure set_fXoffHold(var a : COMSTAT; __fXoffHold : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fXoffHold) or ((__fXoffHold shl bp_COMSTAT_fXoffHold) and bm_COMSTAT_fXoffHold);    end;  function fXoffSent(var a : COMSTAT) : DWORD;    begin       fXoffSent:=(a.flag0 and bm_COMSTAT_fXoffSent) shr bp_COMSTAT_fXoffSent;    end;  procedure set_fXoffSent(var a : COMSTAT; __fXoffSent : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fXoffSent) or ((__fXoffSent shl bp_COMSTAT_fXoffSent) and bm_COMSTAT_fXoffSent);    end;  function fEof(var a : COMSTAT) : DWORD;    begin       fEof:=(a.flag0 and bm_COMSTAT_fEof) shr bp_COMSTAT_fEof;    end;  procedure set_fEof(var a : COMSTAT; __fEof : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fEof) or ((__fEof shl bp_COMSTAT_fEof) and bm_COMSTAT_fEof);    end;  function fTxim(var a : COMSTAT) : DWORD;    begin       fTxim:=(a.flag0 and bm_COMSTAT_fTxim) shr bp_COMSTAT_fTxim;    end;  procedure set_fTxim(var a : COMSTAT; __fTxim : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fTxim) or ((__fTxim shl bp_COMSTAT_fTxim) and bm_COMSTAT_fTxim);    end;  function fReserved(var a : COMSTAT) : DWORD;    begin       fReserved:=(a.flag0 and bm_COMSTAT_fReserved) shr bp_COMSTAT_fReserved;    end;  procedure set_fReserved(var a : COMSTAT; __fReserved : DWORD);    begin       a.flag0:=(a.flag0 and not bm_COMSTAT_fReserved) or ((__fReserved shl bp_COMSTAT_fReserved) and bm_COMSTAT_fReserved);    end;  function bAppReturnCode(var a : DDEACK) : word;    begin       bAppReturnCode:=(a.flag0 and bm_DDEACK_bAppReturnCode) shr bp_DDEACK_bAppReturnCode;    end;  procedure set_bAppReturnCode(var a : DDEACK; __bAppReturnCode : word);    begin       a.flag0:=(a.flag0 and not bm_DDEACK_bAppReturnCode) or ((__bAppReturnCode shl bp_DDEACK_bAppReturnCode) and bm_DDEACK_bAppReturnCode);    end;  function reserved(var a : DDEACK) : word;    begin       reserved:=(a.flag0 and bm_DDEACK_reserved) shr bp_DDEACK_reserved;    end;  procedure set_reserved(var a : DDEACK; __reserved : word);    begin       a.flag0:=(a.flag0 and not bm_DDEACK_reserved) or ((__reserved shl bp_DDEACK_reserved) and bm_DDEACK_reserved);    end;  function fBusy(var a : DDEACK) : word;    begin       fBusy:=(a.flag0 and bm_DDEACK_fBusy) shr bp_DDEACK_fBusy;    end;  procedure set_fBusy(var a : DDEACK; __fBusy : word);    begin       a.flag0:=(a.flag0 and not bm_DDEACK_fBusy) or ((__fBusy shl bp_DDEACK_fBusy) and bm_DDEACK_fBusy);    end;  function fAck(var a : DDEACK) : word;    begin       fAck:=(a.flag0 and bm_DDEACK_fAck) shr bp_DDEACK_fAck;    end;  procedure set_fAck(var a : DDEACK; __fAck : word);    begin       a.flag0:=(a.flag0 and not bm_DDEACK_fAck) or ((__fAck shl bp_DDEACK_fAck) and bm_DDEACK_fAck);    end;  function reserved(var a : DDEADVISE) : word;    begin       reserved:=(a.flag0 and bm_DDEADVISE_reserved) shr bp_DDEADVISE_reserved;    end;  procedure set_reserved(var a : DDEADVISE; __reserved : word);    begin       a.flag0:=(a.flag0 and not bm_DDEADVISE_reserved) or ((__reserved shl bp_DDEADVISE_reserved) and bm_DDEADVISE_reserved);    end;  function fDeferUpd(var a : DDEADVISE) : word;    begin       fDeferUpd:=(a.flag0 and bm_DDEADVISE_fDeferUpd) shr bp_DDEADVISE_fDeferUpd;    end;  procedure set_fDeferUpd(var a : DDEADVISE; __fDeferUpd : word);    begin       a.flag0:=(a.flag0 and not bm_DDEADVISE_fDeferUpd) or ((__fDeferUpd shl bp_DDEADVISE_fDeferUpd) and bm_DDEADVISE_fDeferUpd);    end;  function fAckReq(var a : DDEADVISE) : word;    begin       fAckReq:=(a.flag0 and bm_DDEADVISE_fAckReq) shr bp_DDEADVISE_fAckReq;    end;  procedure set_fAckReq(var a : DDEADVISE; __fAckReq : word);    begin       a.flag0:=(a.flag0 and not bm_DDEADVISE_fAckReq) or ((__fAckReq shl bp_DDEADVISE_fAckReq) and bm_DDEADVISE_fAckReq);    end;  function unused(var a : DDEDATA) : word;    begin       unused:=(a.flag0 and bm_DDEDATA_unused) shr bp_DDEDATA_unused;    end;  procedure set_unused(var a : DDEDATA; __unused : word);    begin       a.flag0:=(a.flag0 and not bm_DDEDATA_unused) or ((__unused shl bp_DDEDATA_unused) and bm_DDEDATA_unused);    end;  function fResponse(var a : DDEDATA) : word;    begin       fResponse:=(a.flag0 and bm_DDEDATA_fResponse) shr bp_DDEDATA_fResponse;    end;  procedure set_fResponse(var a : DDEDATA; __fResponse : word);    begin       a.flag0:=(a.flag0 and not bm_DDEDATA_fResponse) or ((__fResponse shl bp_DDEDATA_fResponse) and bm_DDEDATA_fResponse);    end;  function fRelease(var a : DDEDATA) : word;    begin       fRelease:=(a.flag0 and bm_DDEDATA_fRelease) shr bp_DDEDATA_fRelease;    end;  procedure set_fRelease(var a : DDEDATA; __fRelease : word);    begin       a.flag0:=(a.flag0 and not bm_DDEDATA_fRelease) or ((__fRelease shl bp_DDEDATA_fRelease) and bm_DDEDATA_fRelease);    end;  function reserved(var a : DDEDATA) : word;    begin       reserved:=(a.flag0 and bm_DDEDATA_reserved) shr bp_DDEDATA_reserved;    end;  procedure set_reserved(var a : DDEDATA; __reserved : word);    begin       a.flag0:=(a.flag0 and not bm_DDEDATA_reserved) or ((__reserved shl bp_DDEDATA_reserved) and bm_DDEDATA_reserved);    end;  function fAckReq(var a : DDEDATA) : word;    begin       fAckReq:=(a.flag0 and bm_DDEDATA_fAckReq) shr bp_DDEDATA_fAckReq;    end;  procedure set_fAckReq(var a : DDEDATA; __fAckReq : word);    begin       a.flag0:=(a.flag0 and not bm_DDEDATA_fAckReq) or ((__fAckReq shl bp_DDEDATA_fAckReq) and bm_DDEDATA_fAckReq);    end;  function unused(var a : DDELN) : word;    begin       unused:=(a.flag0 and bm_DDELN_unused) shr bp_DDELN_unused;    end;  procedure set_unused(var a : DDELN; __unused : word);    begin       a.flag0:=(a.flag0 and not bm_DDELN_unused) or ((__unused shl bp_DDELN_unused) and bm_DDELN_unused);    end;  function fRelease(var a : DDELN) : word;    begin       fRelease:=(a.flag0 and bm_DDELN_fRelease) shr bp_DDELN_fRelease;    end;  procedure set_fRelease(var a : DDELN; __fRelease : word);    begin       a.flag0:=(a.flag0 and not bm_DDELN_fRelease) or ((__fRelease shl bp_DDELN_fRelease) and bm_DDELN_fRelease);    end;  function fDeferUpd(var a : DDELN) : word;    begin       fDeferUpd:=(a.flag0 and bm_DDELN_fDeferUpd) shr bp_DDELN_fDeferUpd;    end;  procedure set_fDeferUpd(var a : DDELN; __fDeferUpd : word);    begin       a.flag0:=(a.flag0 and not bm_DDELN_fDeferUpd) or ((__fDeferUpd shl bp_DDELN_fDeferUpd) and bm_DDELN_fDeferUpd);    end;  function fAckReq(var a : DDELN) : word;    begin       fAckReq:=(a.flag0 and bm_DDELN_fAckReq) shr bp_DDELN_fAckReq;    end;  procedure set_fAckReq(var a : DDELN; __fAckReq : word);    begin       a.flag0:=(a.flag0 and not bm_DDELN_fAckReq) or ((__fAckReq shl bp_DDELN_fAckReq) and bm_DDELN_fAckReq);    end;  function unused(var a : DDEPOKE) : word;    begin       unused:=(a.flag0 and bm_DDEPOKE_unused) shr bp_DDEPOKE_unused;    end;  procedure set_unused(var a : DDEPOKE; __unused : word);    begin       a.flag0:=(a.flag0 and not bm_DDEPOKE_unused) or ((__unused shl bp_DDEPOKE_unused) and bm_DDEPOKE_unused);    end;  function fRelease(var a : DDEPOKE) : word;    begin       fRelease:=(a.flag0 and bm_DDEPOKE_fRelease) shr bp_DDEPOKE_fRelease;    end;  procedure set_fRelease(var a : DDEPOKE; __fRelease : word);    begin       a.flag0:=(a.flag0 and not bm_DDEPOKE_fRelease) or ((__fRelease shl bp_DDEPOKE_fRelease) and bm_DDEPOKE_fRelease);    end;  function fReserved(var a : DDEPOKE) : word;    begin       fReserved:=(a.flag0 and bm_DDEPOKE_fReserved) shr bp_DDEPOKE_fReserved;    end;  procedure set_fReserved(var a : DDEPOKE; __fReserved : word);    begin       a.flag0:=(a.flag0 and not bm_DDEPOKE_fReserved) or ((__fReserved shl bp_DDEPOKE_fReserved) and bm_DDEPOKE_fReserved);    end;  function unused(var a : DDEUP) : word;    begin       unused:=(a.flag0 and bm_DDEUP_unused) shr bp_DDEUP_unused;    end;  procedure set_unused(var a : DDEUP; __unused : word);    begin       a.flag0:=(a.flag0 and not bm_DDEUP_unused) or ((__unused shl bp_DDEUP_unused) and bm_DDEUP_unused);    end;  function fAck(var a : DDEUP) : word;    begin       fAck:=(a.flag0 and bm_DDEUP_fAck) shr bp_DDEUP_fAck;    end;  procedure set_fAck(var a : DDEUP; __fAck : word);    begin       a.flag0:=(a.flag0 and not bm_DDEUP_fAck) or ((__fAck shl bp_DDEUP_fAck) and bm_DDEUP_fAck);    end;  function fRelease(var a : DDEUP) : word;    begin       fRelease:=(a.flag0 and bm_DDEUP_fRelease) shr bp_DDEUP_fRelease;    end;  procedure set_fRelease(var a : DDEUP; __fRelease : word);    begin       a.flag0:=(a.flag0 and not bm_DDEUP_fRelease) or ((__fRelease shl bp_DDEUP_fRelease) and bm_DDEUP_fRelease);    end;  function fReserved(var a : DDEUP) : word;    begin       fReserved:=(a.flag0 and bm_DDEUP_fReserved) shr bp_DDEUP_fReserved;    end;  procedure set_fReserved(var a : DDEUP; __fReserved : word);    begin       a.flag0:=(a.flag0 and not bm_DDEUP_fReserved) or ((__fReserved shl bp_DDEUP_fReserved) and bm_DDEUP_fReserved);    end;  function fAckReq(var a : DDEUP) : word;    begin       fAckReq:=(a.flag0 and bm_DDEUP_fAckReq) shr bp_DDEUP_fAckReq;    end;  procedure set_fAckReq(var a : DDEUP; __fAckReq : word);    begin       a.flag0:=(a.flag0 and not bm_DDEUP_fAckReq) or ((__fAckReq shl bp_DDEUP_fAckReq) and bm_DDEUP_fAckReq);    end;  {$i typshrd.inc}{$endif read_implementation}
 |