jwawingdi.pas 372 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607
  1. {******************************************************************************}
  2. { }
  3. { Graphics Device Interface API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: wingdi.h, released June 2000. The original Pascal }
  9. { code is: WinGDI.pas, released December 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  16. { }
  17. { You may retrieve the latest version of this file at the Project JEDI }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. unit JwaWinGDI;
  43. {$WEAKPACKAGEUNIT}
  44. {$HPPEMIT ''}
  45. {$HPPEMIT '#include "WinGDI.h"'}
  46. {$HPPEMIT ''}
  47. {$I jediapilib.inc}
  48. interface
  49. uses
  50. JwaWinNT, JwaWinType;
  51. // Binary raster ops
  52. const
  53. R2_BLACK = 1; // 0
  54. {$EXTERNALSYM R2_BLACK}
  55. R2_NOTMERGEPEN = 2; // DPon
  56. {$EXTERNALSYM R2_NOTMERGEPEN}
  57. R2_MASKNOTPEN = 3; // DPna
  58. {$EXTERNALSYM R2_MASKNOTPEN}
  59. R2_NOTCOPYPEN = 4; // PN
  60. {$EXTERNALSYM R2_NOTCOPYPEN}
  61. R2_MASKPENNOT = 5; // PDna
  62. {$EXTERNALSYM R2_MASKPENNOT}
  63. R2_NOT = 6; // Dn
  64. {$EXTERNALSYM R2_NOT}
  65. R2_XORPEN = 7; // DPx
  66. {$EXTERNALSYM R2_XORPEN}
  67. R2_NOTMASKPEN = 8; // DPan
  68. {$EXTERNALSYM R2_NOTMASKPEN}
  69. R2_MASKPEN = 9; // DPa
  70. {$EXTERNALSYM R2_MASKPEN}
  71. R2_NOTXORPEN = 10; // DPxn
  72. {$EXTERNALSYM R2_NOTXORPEN}
  73. R2_NOP = 11; // D
  74. {$EXTERNALSYM R2_NOP}
  75. R2_MERGENOTPEN = 12; // DPno
  76. {$EXTERNALSYM R2_MERGENOTPEN}
  77. R2_COPYPEN = 13; // P
  78. {$EXTERNALSYM R2_COPYPEN}
  79. R2_MERGEPENNOT = 14; // PDno
  80. {$EXTERNALSYM R2_MERGEPENNOT}
  81. R2_MERGEPEN = 15; // DPo
  82. {$EXTERNALSYM R2_MERGEPEN}
  83. R2_WHITE = 16; // 1
  84. {$EXTERNALSYM R2_WHITE}
  85. R2_LAST = 16;
  86. {$EXTERNALSYM R2_LAST}
  87. // Ternary raster operations
  88. SRCCOPY = DWORD($00CC0020); // dest = source
  89. {$EXTERNALSYM SRCCOPY}
  90. SRCPAINT = DWORD($00EE0086); // dest = source OR dest
  91. {$EXTERNALSYM SRCPAINT}
  92. SRCAND = DWORD($008800C6); // dest = source AND dest
  93. {$EXTERNALSYM SRCAND}
  94. SRCINVERT = DWORD($00660046); // dest = source XOR dest
  95. {$EXTERNALSYM SRCINVERT}
  96. SRCERASE = DWORD($00440328); // dest = source AND (NOT dest )
  97. {$EXTERNALSYM SRCERASE}
  98. NOTSRCCOPY = DWORD($00330008); // dest = (NOT source)
  99. {$EXTERNALSYM NOTSRCCOPY}
  100. NOTSRCERASE = DWORD($001100A6); // dest = (NOT src) AND (NOT dest)
  101. {$EXTERNALSYM NOTSRCERASE}
  102. MERGECOPY = DWORD($00C000CA); // dest = (source AND pattern)
  103. {$EXTERNALSYM MERGECOPY}
  104. MERGEPAINT = DWORD($00BB0226); // dest = (NOT source) OR dest
  105. {$EXTERNALSYM MERGEPAINT}
  106. PATCOPY = DWORD($00F00021); // dest = pattern
  107. {$EXTERNALSYM PATCOPY}
  108. PATPAINT = DWORD($00FB0A09); // dest = DPSnoo
  109. {$EXTERNALSYM PATPAINT}
  110. PATINVERT = DWORD($005A0049); // dest = pattern XOR dest
  111. {$EXTERNALSYM PATINVERT}
  112. DSTINVERT = DWORD($00550009); // dest = (NOT dest)
  113. {$EXTERNALSYM DSTINVERT}
  114. BLACKNESS = DWORD($00000042); // dest = BLACK
  115. {$EXTERNALSYM BLACKNESS}
  116. WHITENESS = DWORD($00FF0062); // dest = WHITE
  117. {$EXTERNALSYM WHITENESS}
  118. NOMIRRORBITMAP = DWORD($80000000); // Do not Mirror the bitmap in this call
  119. {$EXTERNALSYM NOMIRRORBITMAP}
  120. CAPTUREBLT = DWORD($40000000); // Include layered windows
  121. {$EXTERNALSYM CAPTUREBLT}
  122. // Quaternary raster codes
  123. function MAKEROP4(Fore, Back: DWORD): DWORD;
  124. {$EXTERNALSYM MAKEROP4}
  125. const
  126. GDI_ERROR = DWORD($FFFFFFFF);
  127. {$EXTERNALSYM GDI_ERROR}
  128. HGDI_ERROR = HANDLE($FFFFFFFF);
  129. {$EXTERNALSYM HGDI_ERROR}
  130. // Region Flags
  131. ERROR = 0;
  132. {$EXTERNALSYM ERROR}
  133. NULLREGION = 1;
  134. {$EXTERNALSYM NULLREGION}
  135. SIMPLEREGION = 2;
  136. {$EXTERNALSYM SIMPLEREGION}
  137. COMPLEXREGION = 3;
  138. {$EXTERNALSYM COMPLEXREGION}
  139. RGN_ERROR = ERROR;
  140. {$EXTERNALSYM RGN_ERROR}
  141. // CombineRgn() Styles
  142. RGN_AND = 1;
  143. {$EXTERNALSYM RGN_AND}
  144. RGN_OR = 2;
  145. {$EXTERNALSYM RGN_OR}
  146. RGN_XOR = 3;
  147. {$EXTERNALSYM RGN_XOR}
  148. RGN_DIFF = 4;
  149. {$EXTERNALSYM RGN_DIFF}
  150. RGN_COPY = 5;
  151. {$EXTERNALSYM RGN_COPY}
  152. RGN_MIN = RGN_AND;
  153. {$EXTERNALSYM RGN_MIN}
  154. RGN_MAX = RGN_COPY;
  155. {$EXTERNALSYM RGN_MAX}
  156. // StretchBlt() Modes
  157. BLACKONWHITE = 1;
  158. {$EXTERNALSYM BLACKONWHITE}
  159. WHITEONBLACK = 2;
  160. {$EXTERNALSYM WHITEONBLACK}
  161. COLORONCOLOR = 3;
  162. {$EXTERNALSYM COLORONCOLOR}
  163. HALFTONE = 4;
  164. {$EXTERNALSYM HALFTONE}
  165. MAXSTRETCHBLTMODE = 4;
  166. {$EXTERNALSYM MAXSTRETCHBLTMODE}
  167. // New StretchBlt() Modes
  168. STRETCH_ANDSCANS = BLACKONWHITE;
  169. {$EXTERNALSYM STRETCH_ANDSCANS}
  170. STRETCH_ORSCANS = WHITEONBLACK;
  171. {$EXTERNALSYM STRETCH_ORSCANS}
  172. STRETCH_DELETESCANS = COLORONCOLOR;
  173. {$EXTERNALSYM STRETCH_DELETESCANS}
  174. STRETCH_HALFTONE = HALFTONE;
  175. {$EXTERNALSYM STRETCH_HALFTONE}
  176. // PolyFill() Modes
  177. ALTERNATE = 1;
  178. {$EXTERNALSYM ALTERNATE}
  179. WINDING = 2;
  180. {$EXTERNALSYM WINDING}
  181. POLYFILL_LAST = 2;
  182. {$EXTERNALSYM POLYFILL_LAST}
  183. // Layout Orientation Options
  184. LAYOUT_RTL = $00000001; // Right to left
  185. {$EXTERNALSYM LAYOUT_RTL}
  186. LAYOUT_BTT = $00000002; // Bottom to top
  187. {$EXTERNALSYM LAYOUT_BTT}
  188. LAYOUT_VBH = $00000004; // Vertical before horizontal
  189. {$EXTERNALSYM LAYOUT_VBH}
  190. LAYOUT_ORIENTATIONMASK = LAYOUT_RTL or LAYOUT_BTT or LAYOUT_VBH;
  191. {$EXTERNALSYM LAYOUT_ORIENTATIONMASK}
  192. LAYOUT_BITMAPORIENTATIONPRESERVED = $00000008;
  193. {$EXTERNALSYM LAYOUT_BITMAPORIENTATIONPRESERVED}
  194. // Text Alignment Options
  195. TA_NOUPDATECP = 0;
  196. {$EXTERNALSYM TA_NOUPDATECP}
  197. TA_UPDATECP = 1;
  198. {$EXTERNALSYM TA_UPDATECP}
  199. TA_LEFT = 0;
  200. {$EXTERNALSYM TA_LEFT}
  201. TA_RIGHT = 2;
  202. {$EXTERNALSYM TA_RIGHT}
  203. TA_CENTER = 6;
  204. {$EXTERNALSYM TA_CENTER}
  205. TA_TOP = 0;
  206. {$EXTERNALSYM TA_TOP}
  207. TA_BOTTOM = 8;
  208. {$EXTERNALSYM TA_BOTTOM}
  209. TA_BASELINE = 24;
  210. {$EXTERNALSYM TA_BASELINE}
  211. TA_RTLREADING = 256;
  212. {$EXTERNALSYM TA_RTLREADING}
  213. TA_MASK = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING;
  214. {$EXTERNALSYM TA_MASK}
  215. VTA_BASELINE = TA_BASELINE;
  216. {$EXTERNALSYM VTA_BASELINE}
  217. VTA_LEFT = TA_BOTTOM;
  218. {$EXTERNALSYM VTA_LEFT}
  219. VTA_RIGHT = TA_TOP;
  220. {$EXTERNALSYM VTA_RIGHT}
  221. VTA_CENTER = TA_CENTER;
  222. {$EXTERNALSYM VTA_CENTER}
  223. VTA_BOTTOM = TA_RIGHT;
  224. {$EXTERNALSYM VTA_BOTTOM}
  225. VTA_TOP = TA_LEFT;
  226. {$EXTERNALSYM VTA_TOP}
  227. ETO_OPAQUE = $0002;
  228. {$EXTERNALSYM ETO_OPAQUE}
  229. ETO_CLIPPED = $0004;
  230. {$EXTERNALSYM ETO_CLIPPED}
  231. ETO_GLYPH_INDEX = $0010;
  232. {$EXTERNALSYM ETO_GLYPH_INDEX}
  233. ETO_RTLREADING = $0080;
  234. {$EXTERNALSYM ETO_RTLREADING}
  235. ETO_NUMERICSLOCAL = $0400;
  236. {$EXTERNALSYM ETO_NUMERICSLOCAL}
  237. ETO_NUMERICSLATIN = $0800;
  238. {$EXTERNALSYM ETO_NUMERICSLATIN}
  239. ETO_IGNORELANGUAGE = $1000;
  240. {$EXTERNALSYM ETO_IGNORELANGUAGE}
  241. ETO_PDY = $2000;
  242. {$EXTERNALSYM ETO_PDY}
  243. ASPECT_FILTERING = $0001;
  244. {$EXTERNALSYM ASPECT_FILTERING}
  245. // Bounds Accumulation APIs
  246. DCB_RESET = $0001;
  247. {$EXTERNALSYM DCB_RESET}
  248. DCB_ACCUMULATE = $0002;
  249. {$EXTERNALSYM DCB_ACCUMULATE}
  250. DCB_DIRTY = DCB_ACCUMULATE;
  251. {$EXTERNALSYM DCB_DIRTY}
  252. DCB_SET = DCB_RESET or DCB_ACCUMULATE;
  253. {$EXTERNALSYM DCB_SET}
  254. DCB_ENABLE = $0004;
  255. {$EXTERNALSYM DCB_ENABLE}
  256. DCB_DISABLE = $0008;
  257. {$EXTERNALSYM DCB_DISABLE}
  258. // Metafile Functions
  259. META_SETBKCOLOR = $0201;
  260. {$EXTERNALSYM META_SETBKCOLOR}
  261. META_SETBKMODE = $0102;
  262. {$EXTERNALSYM META_SETBKMODE}
  263. META_SETMAPMODE = $0103;
  264. {$EXTERNALSYM META_SETMAPMODE}
  265. META_SETROP2 = $0104;
  266. {$EXTERNALSYM META_SETROP2}
  267. META_SETRELABS = $0105;
  268. {$EXTERNALSYM META_SETRELABS}
  269. META_SETPOLYFILLMODE = $0106;
  270. {$EXTERNALSYM META_SETPOLYFILLMODE}
  271. META_SETSTRETCHBLTMODE = $0107;
  272. {$EXTERNALSYM META_SETSTRETCHBLTMODE}
  273. META_SETTEXTCHAREXTRA = $0108;
  274. {$EXTERNALSYM META_SETTEXTCHAREXTRA}
  275. META_SETTEXTCOLOR = $0209;
  276. {$EXTERNALSYM META_SETTEXTCOLOR}
  277. META_SETTEXTJUSTIFICATION = $020A;
  278. {$EXTERNALSYM META_SETTEXTJUSTIFICATION}
  279. META_SETWINDOWORG = $020B;
  280. {$EXTERNALSYM META_SETWINDOWORG}
  281. META_SETWINDOWEXT = $020C;
  282. {$EXTERNALSYM META_SETWINDOWEXT}
  283. META_SETVIEWPORTORG = $020D;
  284. {$EXTERNALSYM META_SETVIEWPORTORG}
  285. META_SETVIEWPORTEXT = $020E;
  286. {$EXTERNALSYM META_SETVIEWPORTEXT}
  287. META_OFFSETWINDOWORG = $020F;
  288. {$EXTERNALSYM META_OFFSETWINDOWORG}
  289. META_SCALEWINDOWEXT = $0410;
  290. {$EXTERNALSYM META_SCALEWINDOWEXT}
  291. META_OFFSETVIEWPORTORG = $0211;
  292. {$EXTERNALSYM META_OFFSETVIEWPORTORG}
  293. META_SCALEVIEWPORTEXT = $0412;
  294. {$EXTERNALSYM META_SCALEVIEWPORTEXT}
  295. META_LINETO = $0213;
  296. {$EXTERNALSYM META_LINETO}
  297. META_MOVETO = $0214;
  298. {$EXTERNALSYM META_MOVETO}
  299. META_EXCLUDECLIPRECT = $0415;
  300. {$EXTERNALSYM META_EXCLUDECLIPRECT}
  301. META_INTERSECTCLIPRECT = $0416;
  302. {$EXTERNALSYM META_INTERSECTCLIPRECT}
  303. META_ARC = $0817;
  304. {$EXTERNALSYM META_ARC}
  305. META_ELLIPSE = $0418;
  306. {$EXTERNALSYM META_ELLIPSE}
  307. META_FLOODFILL = $0419;
  308. {$EXTERNALSYM META_FLOODFILL}
  309. META_PIE = $081A;
  310. {$EXTERNALSYM META_PIE}
  311. META_RECTANGLE = $041B;
  312. {$EXTERNALSYM META_RECTANGLE}
  313. META_ROUNDRECT = $061C;
  314. {$EXTERNALSYM META_ROUNDRECT}
  315. META_PATBLT = $061D;
  316. {$EXTERNALSYM META_PATBLT}
  317. META_SAVEDC = $001E;
  318. {$EXTERNALSYM META_SAVEDC}
  319. META_SETPIXEL = $041F;
  320. {$EXTERNALSYM META_SETPIXEL}
  321. META_OFFSETCLIPRGN = $0220;
  322. {$EXTERNALSYM META_OFFSETCLIPRGN}
  323. META_TEXTOUT = $0521;
  324. {$EXTERNALSYM META_TEXTOUT}
  325. META_BITBLT = $0922;
  326. {$EXTERNALSYM META_BITBLT}
  327. META_STRETCHBLT = $0B23;
  328. {$EXTERNALSYM META_STRETCHBLT}
  329. META_POLYGON = $0324;
  330. {$EXTERNALSYM META_POLYGON}
  331. META_POLYLINE = $0325;
  332. {$EXTERNALSYM META_POLYLINE}
  333. META_ESCAPE = $0626;
  334. {$EXTERNALSYM META_ESCAPE}
  335. META_RESTOREDC = $0127;
  336. {$EXTERNALSYM META_RESTOREDC}
  337. META_FILLREGION = $0228;
  338. {$EXTERNALSYM META_FILLREGION}
  339. META_FRAMEREGION = $0429;
  340. {$EXTERNALSYM META_FRAMEREGION}
  341. META_INVERTREGION = $012A;
  342. {$EXTERNALSYM META_INVERTREGION}
  343. META_PAINTREGION = $012B;
  344. {$EXTERNALSYM META_PAINTREGION}
  345. META_SELECTCLIPREGION = $012C;
  346. {$EXTERNALSYM META_SELECTCLIPREGION}
  347. META_SELECTOBJECT = $012D;
  348. {$EXTERNALSYM META_SELECTOBJECT}
  349. META_SETTEXTALIGN = $012E;
  350. {$EXTERNALSYM META_SETTEXTALIGN}
  351. META_CHORD = $0830;
  352. {$EXTERNALSYM META_CHORD}
  353. META_SETMAPPERFLAGS = $0231;
  354. {$EXTERNALSYM META_SETMAPPERFLAGS}
  355. META_EXTTEXTOUT = $0a32;
  356. {$EXTERNALSYM META_EXTTEXTOUT}
  357. META_SETDIBTODEV = $0d33;
  358. {$EXTERNALSYM META_SETDIBTODEV}
  359. META_SELECTPALETTE = $0234;
  360. {$EXTERNALSYM META_SELECTPALETTE}
  361. META_REALIZEPALETTE = $0035;
  362. {$EXTERNALSYM META_REALIZEPALETTE}
  363. META_ANIMATEPALETTE = $0436;
  364. {$EXTERNALSYM META_ANIMATEPALETTE}
  365. META_SETPALENTRIES = $0037;
  366. {$EXTERNALSYM META_SETPALENTRIES}
  367. META_POLYPOLYGON = $0538;
  368. {$EXTERNALSYM META_POLYPOLYGON}
  369. META_RESIZEPALETTE = $0139;
  370. {$EXTERNALSYM META_RESIZEPALETTE}
  371. META_DIBBITBLT = $0940;
  372. {$EXTERNALSYM META_DIBBITBLT}
  373. META_DIBSTRETCHBLT = $0b41;
  374. {$EXTERNALSYM META_DIBSTRETCHBLT}
  375. META_DIBCREATEPATTERNBRUSH = $0142;
  376. {$EXTERNALSYM META_DIBCREATEPATTERNBRUSH}
  377. META_STRETCHDIB = $0f43;
  378. {$EXTERNALSYM META_STRETCHDIB}
  379. META_EXTFLOODFILL = $0548;
  380. {$EXTERNALSYM META_EXTFLOODFILL}
  381. META_SETLAYOUT = $0149;
  382. {$EXTERNALSYM META_SETLAYOUT}
  383. META_DELETEOBJECT = $01f0;
  384. {$EXTERNALSYM META_DELETEOBJECT}
  385. META_CREATEPALETTE = $00f7;
  386. {$EXTERNALSYM META_CREATEPALETTE}
  387. META_CREATEPATTERNBRUSH = $01F9;
  388. {$EXTERNALSYM META_CREATEPATTERNBRUSH}
  389. META_CREATEPENINDIRECT = $02FA;
  390. {$EXTERNALSYM META_CREATEPENINDIRECT}
  391. META_CREATEFONTINDIRECT = $02FB;
  392. {$EXTERNALSYM META_CREATEFONTINDIRECT}
  393. META_CREATEBRUSHINDIRECT = $02FC;
  394. {$EXTERNALSYM META_CREATEBRUSHINDIRECT}
  395. META_CREATEREGION = $06FF;
  396. {$EXTERNALSYM META_CREATEREGION}
  397. type
  398. PDrawPatRect = ^TDrawPatRect;
  399. _DRAWPATRECT = record
  400. ptPosition: POINT;
  401. ptSize: POINT;
  402. wStyle: WORD;
  403. wPattern: WORD;
  404. end;
  405. {$EXTERNALSYM _DRAWPATRECT}
  406. DRAWPATRECT = _DRAWPATRECT;
  407. {$EXTERNALSYM DRAWPATRECT}
  408. TDrawPatRect = _DRAWPATRECT;
  409. // GDI Escapes
  410. const
  411. NEWFRAME = 1;
  412. {$EXTERNALSYM NEWFRAME}
  413. _ABORTDOC = 2; // Underscore prfix by translator (nameclash)
  414. {$EXTERNALSYM ABORTDOC}
  415. NEXTBAND = 3;
  416. {$EXTERNALSYM NEXTBAND}
  417. SETCOLORTABLE = 4;
  418. {$EXTERNALSYM SETCOLORTABLE}
  419. GETCOLORTABLE = 5;
  420. {$EXTERNALSYM GETCOLORTABLE}
  421. FLUSHOUTPUT = 6;
  422. {$EXTERNALSYM FLUSHOUTPUT}
  423. DRAFTMODE = 7;
  424. {$EXTERNALSYM DRAFTMODE}
  425. QUERYESCSUPPORT = 8;
  426. {$EXTERNALSYM QUERYESCSUPPORT}
  427. SETABORTPROC_ = 9; // Underscore prfix by translator (nameclash)
  428. {$EXTERNALSYM SETABORTPROC}
  429. STARTDOC_ = 10; // Underscore prfix by translator (nameclash)
  430. {$EXTERNALSYM STARTDOC}
  431. ENDDOC_ = 11; // Underscore prfix by translator (nameclash)
  432. {$EXTERNALSYM ENDDOC}
  433. GETPHYSPAGESIZE = 12;
  434. {$EXTERNALSYM GETPHYSPAGESIZE}
  435. GETPRINTINGOFFSET = 13;
  436. {$EXTERNALSYM GETPRINTINGOFFSET}
  437. GETSCALINGFACTOR = 14;
  438. {$EXTERNALSYM GETSCALINGFACTOR}
  439. MFCOMMENT = 15;
  440. {$EXTERNALSYM MFCOMMENT}
  441. GETPENWIDTH = 16;
  442. {$EXTERNALSYM GETPENWIDTH}
  443. SETCOPYCOUNT = 17;
  444. {$EXTERNALSYM SETCOPYCOUNT}
  445. SELECTPAPERSOURCE = 18;
  446. {$EXTERNALSYM SELECTPAPERSOURCE}
  447. DEVICEDATA = 19;
  448. {$EXTERNALSYM DEVICEDATA}
  449. PASSTHROUGH = 19;
  450. {$EXTERNALSYM PASSTHROUGH}
  451. GETTECHNOLGY = 20;
  452. {$EXTERNALSYM GETTECHNOLGY}
  453. GETTECHNOLOGY = 20;
  454. {$EXTERNALSYM GETTECHNOLOGY}
  455. SETLINECAP = 21;
  456. {$EXTERNALSYM SETLINECAP}
  457. SETLINEJOIN = 22;
  458. {$EXTERNALSYM SETLINEJOIN}
  459. SETMITERLIMIT_ = 23; // underscore prefix by translator (nameclash)
  460. {$EXTERNALSYM SETMITERLIMIT}
  461. BANDINFO = 24;
  462. {$EXTERNALSYM BANDINFO}
  463. DRAWPATTERNRECT = 25;
  464. {$EXTERNALSYM DRAWPATTERNRECT}
  465. GETVECTORPENSIZE = 26;
  466. {$EXTERNALSYM GETVECTORPENSIZE}
  467. GETVECTORBRUSHSIZE = 27;
  468. {$EXTERNALSYM GETVECTORBRUSHSIZE}
  469. ENABLEDUPLEX = 28;
  470. {$EXTERNALSYM ENABLEDUPLEX}
  471. GETSETPAPERBINS = 29;
  472. {$EXTERNALSYM GETSETPAPERBINS}
  473. GETSETPRINTORIENT = 30;
  474. {$EXTERNALSYM GETSETPRINTORIENT}
  475. ENUMPAPERBINS = 31;
  476. {$EXTERNALSYM ENUMPAPERBINS}
  477. SETDIBSCALING = 32;
  478. {$EXTERNALSYM SETDIBSCALING}
  479. EPSPRINTING = 33;
  480. {$EXTERNALSYM EPSPRINTING}
  481. ENUMPAPERMETRICS = 34;
  482. {$EXTERNALSYM ENUMPAPERMETRICS}
  483. GETSETPAPERMETRICS = 35;
  484. {$EXTERNALSYM GETSETPAPERMETRICS}
  485. POSTSCRIPT_DATA = 37;
  486. {$EXTERNALSYM POSTSCRIPT_DATA}
  487. POSTSCRIPT_IGNORE = 38;
  488. {$EXTERNALSYM POSTSCRIPT_IGNORE}
  489. MOUSETRAILS = 39;
  490. {$EXTERNALSYM MOUSETRAILS}
  491. GETDEVICEUNITS = 42;
  492. {$EXTERNALSYM GETDEVICEUNITS}
  493. GETEXTENDEDTEXTMETRICS = 256;
  494. {$EXTERNALSYM GETEXTENDEDTEXTMETRICS}
  495. GETEXTENTTABLE = 257;
  496. {$EXTERNALSYM GETEXTENTTABLE}
  497. GETPAIRKERNTABLE = 258;
  498. {$EXTERNALSYM GETPAIRKERNTABLE}
  499. GETTRACKKERNTABLE = 259;
  500. {$EXTERNALSYM GETTRACKKERNTABLE}
  501. EXTTEXTOUT_ = 512; // underscore prefix by translator (nameclash)
  502. {$EXTERNALSYM EXTTEXTOUT}
  503. GETFACENAME = 513;
  504. {$EXTERNALSYM GETFACENAME}
  505. DOWNLOADFACE = 514;
  506. {$EXTERNALSYM DOWNLOADFACE}
  507. ENABLERELATIVEWIDTHS = 768;
  508. {$EXTERNALSYM ENABLERELATIVEWIDTHS}
  509. ENABLEPAIRKERNING = 769;
  510. {$EXTERNALSYM ENABLEPAIRKERNING}
  511. SETKERNTRACK = 770;
  512. {$EXTERNALSYM SETKERNTRACK}
  513. SETALLJUSTVALUES = 771;
  514. {$EXTERNALSYM SETALLJUSTVALUES}
  515. SETCHARSET = 772;
  516. {$EXTERNALSYM SETCHARSET}
  517. STRETCHBLT_ESCAPE = 2048; // suffix _ESCAPE by translator because of
  518. // name-clash with StretchBlt function
  519. {$EXTERNALSYM STRETCHBLT}
  520. METAFILE_DRIVER = 2049;
  521. {$EXTERNALSYM METAFILE_DRIVER}
  522. GETSETSCREENPARAMS = 3072;
  523. {$EXTERNALSYM GETSETSCREENPARAMS}
  524. QUERYDIBSUPPORT = 3073;
  525. {$EXTERNALSYM QUERYDIBSUPPORT}
  526. BEGIN_PATH = 4096;
  527. {$EXTERNALSYM BEGIN_PATH}
  528. CLIP_TO_PATH = 4097;
  529. {$EXTERNALSYM CLIP_TO_PATH}
  530. END_PATH = 4098;
  531. {$EXTERNALSYM END_PATH}
  532. EXT_DEVICE_CAPS = 4099;
  533. {$EXTERNALSYM EXT_DEVICE_CAPS}
  534. RESTORE_CTM = 4100;
  535. {$EXTERNALSYM RESTORE_CTM}
  536. SAVE_CTM = 4101;
  537. {$EXTERNALSYM SAVE_CTM}
  538. SET_ARC_DIRECTION = 4102;
  539. {$EXTERNALSYM SET_ARC_DIRECTION}
  540. SET_BACKGROUND_COLOR = 4103;
  541. {$EXTERNALSYM SET_BACKGROUND_COLOR}
  542. SET_POLY_MODE = 4104;
  543. {$EXTERNALSYM SET_POLY_MODE}
  544. SET_SCREEN_ANGLE = 4105;
  545. {$EXTERNALSYM SET_SCREEN_ANGLE}
  546. SET_SPREAD = 4106;
  547. {$EXTERNALSYM SET_SPREAD}
  548. TRANSFORM_CTM = 4107;
  549. {$EXTERNALSYM TRANSFORM_CTM}
  550. SET_CLIP_BOX = 4108;
  551. {$EXTERNALSYM SET_CLIP_BOX}
  552. SET_BOUNDS = 4109;
  553. {$EXTERNALSYM SET_BOUNDS}
  554. SET_MIRROR_MODE = 4110;
  555. {$EXTERNALSYM SET_MIRROR_MODE}
  556. OPENCHANNEL = 4110;
  557. {$EXTERNALSYM OPENCHANNEL}
  558. DOWNLOADHEADER = 4111;
  559. {$EXTERNALSYM DOWNLOADHEADER}
  560. CLOSECHANNEL = 4112;
  561. {$EXTERNALSYM CLOSECHANNEL}
  562. POSTSCRIPT_PASSTHROUGH = 4115;
  563. {$EXTERNALSYM POSTSCRIPT_PASSTHROUGH}
  564. ENCAPSULATED_POSTSCRIPT = 4116;
  565. {$EXTERNALSYM ENCAPSULATED_POSTSCRIPT}
  566. POSTSCRIPT_IDENTIFY = 4117; // new escape for NT5 pscript driver
  567. {$EXTERNALSYM POSTSCRIPT_IDENTIFY}
  568. POSTSCRIPT_INJECTION = 4118; // new escape for NT5 pscript driver
  569. {$EXTERNALSYM POSTSCRIPT_INJECTION}
  570. CHECKJPEGFORMAT = 4119;
  571. {$EXTERNALSYM CHECKJPEGFORMAT}
  572. CHECKPNGFORMAT = 4120;
  573. {$EXTERNALSYM CHECKPNGFORMAT}
  574. GET_PS_FEATURESETTING = 4121; // new escape for NT5 pscript driver
  575. {$EXTERNALSYM GET_PS_FEATURESETTING}
  576. SPCLPASSTHROUGH2 = 4568; // new escape for NT5 pscript driver
  577. {$EXTERNALSYM SPCLPASSTHROUGH2}
  578. //
  579. // Parameters for POSTSCRIPT_IDENTIFY escape
  580. //
  581. PSIDENT_GDICENTRIC = 0;
  582. {$EXTERNALSYM PSIDENT_GDICENTRIC}
  583. PSIDENT_PSCENTRIC = 1;
  584. {$EXTERNALSYM PSIDENT_PSCENTRIC}
  585. //
  586. // Header structure for the input buffer to POSTSCRIPT_INJECTION escape
  587. //
  588. type
  589. PPsInjectData = ^TPsInjectData;
  590. _PSINJECTDATA = record
  591. DataBytes: DWORD; // number of raw data bytes (NOT including this header)
  592. InjectionPoint: WORD; // injection point
  593. PageNumber: WORD; // page number to apply the injection
  594. // Followed by raw data to be injected
  595. end;
  596. {$EXTERNALSYM _PSINJECTDATA}
  597. PSINJECTDATA = _PSINJECTDATA;
  598. {$EXTERNALSYM PSINJECTDATA}
  599. TPsInjectData = _PSINJECTDATA;
  600. //
  601. // Constants for PSINJECTDATA.InjectionPoint field
  602. //
  603. const
  604. PSINJECT_BEGINSTREAM = 1;
  605. {$EXTERNALSYM PSINJECT_BEGINSTREAM}
  606. PSINJECT_PSADOBE = 2;
  607. {$EXTERNALSYM PSINJECT_PSADOBE}
  608. PSINJECT_PAGESATEND = 3;
  609. {$EXTERNALSYM PSINJECT_PAGESATEND}
  610. PSINJECT_PAGES = 4;
  611. {$EXTERNALSYM PSINJECT_PAGES}
  612. PSINJECT_DOCNEEDEDRES = 5;
  613. {$EXTERNALSYM PSINJECT_DOCNEEDEDRES}
  614. PSINJECT_DOCSUPPLIEDRES = 6;
  615. {$EXTERNALSYM PSINJECT_DOCSUPPLIEDRES}
  616. PSINJECT_PAGEORDER = 7;
  617. {$EXTERNALSYM PSINJECT_PAGEORDER}
  618. PSINJECT_ORIENTATION = 8;
  619. {$EXTERNALSYM PSINJECT_ORIENTATION}
  620. PSINJECT_BOUNDINGBOX = 9;
  621. {$EXTERNALSYM PSINJECT_BOUNDINGBOX}
  622. PSINJECT_DOCUMENTPROCESSCOLORS = 10;
  623. {$EXTERNALSYM PSINJECT_DOCUMENTPROCESSCOLORS}
  624. PSINJECT_COMMENTS = 11;
  625. {$EXTERNALSYM PSINJECT_COMMENTS}
  626. PSINJECT_BEGINDEFAULTS = 12;
  627. {$EXTERNALSYM PSINJECT_BEGINDEFAULTS}
  628. PSINJECT_ENDDEFAULTS = 13;
  629. {$EXTERNALSYM PSINJECT_ENDDEFAULTS}
  630. PSINJECT_BEGINPROLOG = 14;
  631. {$EXTERNALSYM PSINJECT_BEGINPROLOG}
  632. PSINJECT_ENDPROLOG = 15;
  633. {$EXTERNALSYM PSINJECT_ENDPROLOG}
  634. PSINJECT_BEGINSETUP = 16;
  635. {$EXTERNALSYM PSINJECT_BEGINSETUP}
  636. PSINJECT_ENDSETUP = 17;
  637. {$EXTERNALSYM PSINJECT_ENDSETUP}
  638. PSINJECT_TRAILER = 18;
  639. {$EXTERNALSYM PSINJECT_TRAILER}
  640. PSINJECT_EOF = 19;
  641. {$EXTERNALSYM PSINJECT_EOF}
  642. PSINJECT_ENDSTREAM = 20;
  643. {$EXTERNALSYM PSINJECT_ENDSTREAM}
  644. PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21;
  645. {$EXTERNALSYM PSINJECT_DOCUMENTPROCESSCOLORSATEND}
  646. PSINJECT_PAGENUMBER = 100;
  647. {$EXTERNALSYM PSINJECT_PAGENUMBER}
  648. PSINJECT_BEGINPAGESETUP = 101;
  649. {$EXTERNALSYM PSINJECT_BEGINPAGESETUP}
  650. PSINJECT_ENDPAGESETUP = 102;
  651. {$EXTERNALSYM PSINJECT_ENDPAGESETUP}
  652. PSINJECT_PAGETRAILER = 103;
  653. {$EXTERNALSYM PSINJECT_PAGETRAILER}
  654. PSINJECT_PLATECOLOR = 104;
  655. {$EXTERNALSYM PSINJECT_PLATECOLOR}
  656. PSINJECT_SHOWPAGE = 105;
  657. {$EXTERNALSYM PSINJECT_SHOWPAGE}
  658. PSINJECT_PAGEBBOX = 106;
  659. {$EXTERNALSYM PSINJECT_PAGEBBOX}
  660. PSINJECT_ENDPAGECOMMENTS = 107;
  661. {$EXTERNALSYM PSINJECT_ENDPAGECOMMENTS}
  662. PSINJECT_VMSAVE = 200;
  663. {$EXTERNALSYM PSINJECT_VMSAVE}
  664. PSINJECT_VMRESTORE = 201;
  665. {$EXTERNALSYM PSINJECT_VMRESTORE}
  666. //
  667. // Parameter for GET_PS_FEATURESETTING escape
  668. //
  669. FEATURESETTING_NUP = 0;
  670. {$EXTERNALSYM FEATURESETTING_NUP}
  671. FEATURESETTING_OUTPUT = 1;
  672. {$EXTERNALSYM FEATURESETTING_OUTPUT}
  673. FEATURESETTING_PSLEVEL = 2;
  674. {$EXTERNALSYM FEATURESETTING_PSLEVEL}
  675. FEATURESETTING_CUSTPAPER = 3;
  676. {$EXTERNALSYM FEATURESETTING_CUSTPAPER}
  677. FEATURESETTING_MIRROR = 4;
  678. {$EXTERNALSYM FEATURESETTING_MIRROR}
  679. FEATURESETTING_NEGATIVE = 5;
  680. {$EXTERNALSYM FEATURESETTING_NEGATIVE}
  681. FEATURESETTING_PROTOCOL = 6;
  682. {$EXTERNALSYM FEATURESETTING_PROTOCOL}
  683. //
  684. // The range of selectors between FEATURESETTING_PRIVATE_BEGIN and
  685. // FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use
  686. //
  687. FEATURESETTING_PRIVATE_BEGIN = $1000;
  688. {$EXTERNALSYM FEATURESETTING_PRIVATE_BEGIN}
  689. FEATURESETTING_PRIVATE_END = $1FFF;
  690. {$EXTERNALSYM FEATURESETTING_PRIVATE_END}
  691. //
  692. // Information about output options
  693. //
  694. type
  695. PPsFeatureOutput = ^TPsFeatureOutput;
  696. _PSFEATURE_OUTPUT = record
  697. bPageIndependent: BOOL;
  698. bSetPageDevice: BOOL;
  699. end;
  700. {$EXTERNALSYM _PSFEATURE_OUTPUT}
  701. PSFEATURE_OUTPUT = _PSFEATURE_OUTPUT;
  702. {$EXTERNALSYM PSFEATURE_OUTPUT}
  703. PPSFEATURE_OUTPUT = ^PSFEATURE_OUTPUT;
  704. {$EXTERNALSYM PPSFEATURE_OUTPUT}
  705. TPsFeatureOutput = _PSFEATURE_OUTPUT;
  706. //
  707. // Information about custom paper size
  708. //
  709. PPsFeatureCustPaper = ^TPsFeatureCustPaper;
  710. _PSFEATURE_CUSTPAPER = record
  711. lOrientation: LONG;
  712. lWidth: LONG;
  713. lHeight: LONG;
  714. lWidthOffset: LONG;
  715. lHeightOffset: LONG;
  716. end;
  717. {$EXTERNALSYM _PSFEATURE_CUSTPAPER}
  718. PSFEATURE_CUSTPAPER = _PSFEATURE_CUSTPAPER;
  719. {$EXTERNALSYM PSFEATURE_CUSTPAPER}
  720. PPSFEATURE_CUSTPAPER = ^PSFEATURE_CUSTPAPER;
  721. {$EXTERNALSYM PPSFEATURE_CUSTPAPER}
  722. TPsFeatureCustPaper = _PSFEATURE_CUSTPAPER;
  723. // Value returned for FEATURESETTING_PROTOCOL
  724. const
  725. PSPROTOCOL_ASCII = 0;
  726. {$EXTERNALSYM PSPROTOCOL_ASCII}
  727. PSPROTOCOL_BCP = 1;
  728. {$EXTERNALSYM PSPROTOCOL_BCP}
  729. PSPROTOCOL_TBCP = 2;
  730. {$EXTERNALSYM PSPROTOCOL_TBCP}
  731. PSPROTOCOL_BINARY = 3;
  732. {$EXTERNALSYM PSPROTOCOL_BINARY}
  733. // Flag returned from QUERYDIBSUPPORT
  734. QDI_SETDIBITS = 1;
  735. {$EXTERNALSYM QDI_SETDIBITS}
  736. QDI_GETDIBITS = 2;
  737. {$EXTERNALSYM QDI_GETDIBITS}
  738. QDI_DIBTOSCREEN = 4;
  739. {$EXTERNALSYM QDI_DIBTOSCREEN}
  740. QDI_STRETCHDIB = 8;
  741. {$EXTERNALSYM QDI_STRETCHDIB}
  742. // Spooler Error Codes
  743. SP_NOTREPORTED = $4000;
  744. {$EXTERNALSYM SP_NOTREPORTED}
  745. SP_ERROR = DWORD(-1);
  746. {$EXTERNALSYM SP_ERROR}
  747. SP_APPABORT = DWORD(-2);
  748. {$EXTERNALSYM SP_APPABORT}
  749. SP_USERABORT = DWORD(-3);
  750. {$EXTERNALSYM SP_USERABORT}
  751. SP_OUTOFDISK = DWORD(-4);
  752. {$EXTERNALSYM SP_OUTOFDISK}
  753. SP_OUTOFMEMORY = DWORD(-5);
  754. {$EXTERNALSYM SP_OUTOFMEMORY}
  755. PR_JOBSTATUS = $0000;
  756. {$EXTERNALSYM PR_JOBSTATUS}
  757. // Object Definitions for EnumObjects()
  758. OBJ_PEN = 1;
  759. {$EXTERNALSYM OBJ_PEN}
  760. OBJ_BRUSH = 2;
  761. {$EXTERNALSYM OBJ_BRUSH}
  762. OBJ_DC = 3;
  763. {$EXTERNALSYM OBJ_DC}
  764. OBJ_METADC = 4;
  765. {$EXTERNALSYM OBJ_METADC}
  766. OBJ_PAL = 5;
  767. {$EXTERNALSYM OBJ_PAL}
  768. OBJ_FONT = 6;
  769. {$EXTERNALSYM OBJ_FONT}
  770. OBJ_BITMAP = 7;
  771. {$EXTERNALSYM OBJ_BITMAP}
  772. OBJ_REGION = 8;
  773. {$EXTERNALSYM OBJ_REGION}
  774. OBJ_METAFILE = 9;
  775. {$EXTERNALSYM OBJ_METAFILE}
  776. OBJ_MEMDC = 10;
  777. {$EXTERNALSYM OBJ_MEMDC}
  778. OBJ_EXTPEN = 11;
  779. {$EXTERNALSYM OBJ_EXTPEN}
  780. OBJ_ENHMETADC = 12;
  781. {$EXTERNALSYM OBJ_ENHMETADC}
  782. OBJ_ENHMETAFILE = 13;
  783. {$EXTERNALSYM OBJ_ENHMETAFILE}
  784. OBJ_COLORSPACE = 14;
  785. {$EXTERNALSYM OBJ_COLORSPACE}
  786. // xform stuff
  787. MWT_IDENTITY = 1;
  788. {$EXTERNALSYM MWT_IDENTITY}
  789. MWT_LEFTMULTIPLY = 2;
  790. {$EXTERNALSYM MWT_LEFTMULTIPLY}
  791. MWT_RIGHTMULTIPLY = 3;
  792. {$EXTERNALSYM MWT_RIGHTMULTIPLY}
  793. MWT_MIN = MWT_IDENTITY;
  794. {$EXTERNALSYM MWT_MIN}
  795. MWT_MAX = MWT_RIGHTMULTIPLY;
  796. {$EXTERNALSYM MWT_MAX}
  797. type
  798. PXform = ^TXform;
  799. tagXFORM = record
  800. eM11: FLOAT;
  801. eM12: FLOAT;
  802. eM21: FLOAT;
  803. eM22: FLOAT;
  804. eDx: FLOAT;
  805. eDy: FLOAT;
  806. end;
  807. {$EXTERNALSYM tagXFORM}
  808. XFORM = tagXFORM;
  809. {$EXTERNALSYM XFORM}
  810. LPXFORM = ^XFORM;
  811. {$EXTERNALSYM LPXFORM}
  812. TXform = XFORM;
  813. // Bitmap Header Definition
  814. PBitmap = ^TBitmap;
  815. tagBITMAP = record
  816. bmType: LONG;
  817. bmWidth: LONG;
  818. bmHeight: LONG;
  819. bmWidthBytes: LONG;
  820. bmPlanes: WORD;
  821. bmBitsPixel: WORD;
  822. bmBits: LPVOID;
  823. end;
  824. {$EXTERNALSYM tagBITMAP}
  825. BITMAP = tagBITMAP;
  826. {$EXTERNALSYM BITMAP}
  827. LPBITMAP = ^BITMAP;
  828. {$EXTERNALSYM LPBITMAP}
  829. NPBITMAP = ^BITMAP;
  830. {$EXTERNALSYM NPBITMAP}
  831. TBitmap = BITMAP;
  832. // #include <pshpack1.h>
  833. PRgbTriple = ^TRgbTriple;
  834. tagRGBTRIPLE = packed record
  835. rgbtBlue: BYTE;
  836. rgbtGreen: BYTE;
  837. rgbtRed: BYTE;
  838. end;
  839. {$EXTERNALSYM tagRGBTRIPLE}
  840. RGBTRIPLE = tagRGBTRIPLE;
  841. {$EXTERNALSYM RGBTRIPLE}
  842. TRgbTriple = RGBTRIPLE;
  843. // #include <poppack.h>
  844. PRgbQuad = ^TRgbQuad;
  845. tagRGBQUAD = record
  846. rgbBlue: BYTE;
  847. rgbGreen: BYTE;
  848. rgbRed: BYTE;
  849. rgbReserved: BYTE;
  850. end;
  851. {$EXTERNALSYM tagRGBQUAD}
  852. RGBQUAD = tagRGBQUAD;
  853. {$EXTERNALSYM RGBQUAD}
  854. LPRGBQUAD = ^RGBQUAD;
  855. {$EXTERNALSYM LPRGBQUAD}
  856. TRgbQuad = RGBQUAD;
  857. // Image Color Matching color definitions
  858. const
  859. CS_ENABLE = $00000001;
  860. {$EXTERNALSYM CS_ENABLE}
  861. CS_DISABLE = $00000002;
  862. {$EXTERNALSYM CS_DISABLE}
  863. CS_DELETE_TRANSFORM = $00000003;
  864. {$EXTERNALSYM CS_DELETE_TRANSFORM}
  865. // Logcolorspace signature
  866. LCS_SIGNATURE = 'PSOC';
  867. {$EXTERNALSYM LCS_SIGNATURE}
  868. // Logcolorspace lcsType values
  869. LCS_sRGB = 'sRGB';
  870. {$EXTERNALSYM LCS_sRGB}
  871. LCS_WINDOWS_COLOR_SPACE = 'Win '; // Windows default color space
  872. {$EXTERNALSYM LCS_WINDOWS_COLOR_SPACE}
  873. type
  874. LCSCSTYPE = LONG;
  875. {$EXTERNALSYM LCSCSTYPE}
  876. const
  877. LCS_CALIBRATED_RGB = $00000000;
  878. {$EXTERNALSYM LCS_CALIBRATED_RGB}
  879. type
  880. LCSGAMUTMATCH = LONG;
  881. {$EXTERNALSYM LCSGAMUTMATCH }
  882. const
  883. LCS_GM_BUSINESS = $00000001;
  884. {$EXTERNALSYM LCS_GM_BUSINESS}
  885. LCS_GM_GRAPHICS = $00000002;
  886. {$EXTERNALSYM LCS_GM_GRAPHICS}
  887. LCS_GM_IMAGES = $00000004;
  888. {$EXTERNALSYM LCS_GM_IMAGES}
  889. LCS_GM_ABS_COLORIMETRIC = $00000008;
  890. {$EXTERNALSYM LCS_GM_ABS_COLORIMETRIC}
  891. // ICM Defines for results from CheckColorInGamut()
  892. CM_OUT_OF_GAMUT = 255;
  893. {$EXTERNALSYM CM_OUT_OF_GAMUT}
  894. CM_IN_GAMUT = 0;
  895. {$EXTERNALSYM CM_IN_GAMUT}
  896. // UpdateICMRegKey Constants
  897. ICM_ADDPROFILE = 1;
  898. {$EXTERNALSYM ICM_ADDPROFILE}
  899. ICM_DELETEPROFILE = 2;
  900. {$EXTERNALSYM ICM_DELETEPROFILE}
  901. ICM_QUERYPROFILE = 3;
  902. {$EXTERNALSYM ICM_QUERYPROFILE}
  903. ICM_SETDEFAULTPROFILE = 4;
  904. {$EXTERNALSYM ICM_SETDEFAULTPROFILE}
  905. ICM_REGISTERICMATCHER = 5;
  906. {$EXTERNALSYM ICM_REGISTERICMATCHER}
  907. ICM_UNREGISTERICMATCHER = 6;
  908. {$EXTERNALSYM ICM_UNREGISTERICMATCHER}
  909. ICM_QUERYMATCH = 7;
  910. {$EXTERNALSYM ICM_QUERYMATCH}
  911. // Macros to retrieve CMYK values from a COLORREF
  912. function GetKValue(cmyk: COLORREF): BYTE;
  913. {$EXTERNALSYM GetKValue}
  914. function GetYValue(cmyk: COLORREF): BYTE;
  915. {$EXTERNALSYM GetYValue}
  916. function GetMValue(cmyk: COLORREF): BYTE;
  917. {$EXTERNALSYM GetMValue}
  918. function GetCValue(cmyk: COLORREF): BYTE;
  919. {$EXTERNALSYM GetCValue}
  920. function CMYK(c, m, y, k: BYTE): COLORREF;
  921. {$EXTERNALSYM CMYK}
  922. type
  923. FXPT16DOT16 = Longint;
  924. {$EXTERNALSYM FXPT16DOT16}
  925. LPFXPT16DOT16 = ^FXPT16DOT16;
  926. {$EXTERNALSYM LPFXPT16DOT16}
  927. FXPT2DOT30 = Longint;
  928. {$EXTERNALSYM FXPT2DOT30}
  929. LPFXPT2DOT30 = ^FXPT2DOT30;
  930. {$EXTERNALSYM LPFXPT2DOT30}
  931. // ICM Color Definitions
  932. // The following two structures are used for defining RGB's in terms of CIEXYZ.
  933. PCieXyz = ^TCieXyz;
  934. tagCIEXYZ = record
  935. ciexyzX: FXPT2DOT30;
  936. ciexyzY: FXPT2DOT30;
  937. ciexyzZ: FXPT2DOT30;
  938. end;
  939. {$EXTERNALSYM tagCIEXYZ}
  940. CIEXYZ = tagCIEXYZ;
  941. {$EXTERNALSYM CIEXYZ}
  942. LPCIEXYZ = ^CIEXYZ;
  943. {$EXTERNALSYM LPCIEXYZ}
  944. TCieXyz = CIEXYZ;
  945. PCieXyzTriple = ^TCieXyzTriple;
  946. tagCIEXYZTRIPLE = record
  947. ciexyzRed: CIEXYZ;
  948. ciexyzGreen: CIEXYZ;
  949. ciexyzBlue: CIEXYZ;
  950. end;
  951. {$EXTERNALSYM tagCIEXYZTRIPLE}
  952. CIEXYZTRIPLE = tagCIEXYZTRIPLE;
  953. {$EXTERNALSYM CIEXYZTRIPLE}
  954. LPCIEXYZTRIPLE = ^CIEXYZTRIPLE;
  955. {$EXTERNALSYM LPCIEXYZTRIPLE}
  956. TCieXyzTriple = CIEXYZTRIPLE;
  957. // The next structures the logical color space. Unlike pens and brushes,
  958. // but like palettes, there is only one way to create a LogColorSpace.
  959. // A pointer to it must be passed, its elements can't be pushed as
  960. // arguments.
  961. PLogColorSpaceA = ^TLogColorSpaceA;
  962. tagLOGCOLORSPACEA = record
  963. lcsSignature: DWORD;
  964. lcsVersion: DWORD;
  965. lcsSize: DWORD;
  966. lcsCSType: LCSCSTYPE;
  967. lcsIntent: LCSGAMUTMATCH;
  968. lcsEndpoints: CIEXYZTRIPLE;
  969. lcsGammaRed: DWORD;
  970. lcsGammaGreen: DWORD;
  971. lcsGammaBlue: DWORD;
  972. lcsFilename: array [0..MAX_PATH - 1] of CHAR;
  973. end;
  974. {$EXTERNALSYM tagLOGCOLORSPACEA}
  975. LOGCOLORSPACEA = tagLOGCOLORSPACEA;
  976. {$EXTERNALSYM LOGCOLORSPACEA}
  977. LPLOGCOLORSPACEA = ^LOGCOLORSPACEA;
  978. {$EXTERNALSYM LPLOGCOLORSPACEA}
  979. TLogColorSpaceA = LOGCOLORSPACEA;
  980. PLogColorSpaceW = ^TLogColorSpaceW;
  981. tagLOGCOLORSPACEW = record
  982. lcsSignature: DWORD;
  983. lcsVersion: DWORD;
  984. lcsSize: DWORD;
  985. lcsCSType: LCSCSTYPE;
  986. lcsIntent: LCSGAMUTMATCH;
  987. lcsEndpoints: CIEXYZTRIPLE;
  988. lcsGammaRed: DWORD;
  989. lcsGammaGreen: DWORD;
  990. lcsGammaBlue: DWORD;
  991. lcsFilename: array [0..MAX_PATH - 1] of WCHAR;
  992. end;
  993. {$EXTERNALSYM tagLOGCOLORSPACEW}
  994. LOGCOLORSPACEW = tagLOGCOLORSPACEW;
  995. {$EXTERNALSYM LOGCOLORSPACEW}
  996. LPLOGCOLORSPACEW = ^LOGCOLORSPACEW;
  997. {$EXTERNALSYM LPLOGCOLORSPACEW}
  998. TLogColorSpaceW = LOGCOLORSPACEW;
  999. {$IFDEF UNICODE}
  1000. LOGCOLORSPACE = LOGCOLORSPACEW;
  1001. {$EXTERNALSYM LOGCOLORSPACE}
  1002. LPLOGCOLORSPACE = LPLOGCOLORSPACEW;
  1003. {$EXTERNALSYM LPLOGCOLORSPACE}
  1004. TLogColorSpace = TLogColorSpaceW;
  1005. PLogColorSpace = PLogColorSpaceW;
  1006. {$ELSE}
  1007. LOGCOLORSPACE = LOGCOLORSPACEA;
  1008. {$EXTERNALSYM LOGCOLORSPACE}
  1009. LPLOGCOLORSPACE = LPLOGCOLORSPACEA;
  1010. {$EXTERNALSYM LPLOGCOLORSPACE}
  1011. TLogColorSpace = TLogColorSpaceA;
  1012. PLogColorSpace = PLogColorSpaceA;
  1013. {$ENDIF UNICODE}
  1014. // structures for defining DIBs
  1015. PBitmapCoreHeader = ^TBitmapCoreHeader;
  1016. tagBITMAPCOREHEADER = record
  1017. bcSize: DWORD;
  1018. bcWidth: WORD;
  1019. bcHeight: WORD;
  1020. bcPlanes: WORD;
  1021. bcBitCount: WORD;
  1022. end;
  1023. {$EXTERNALSYM tagBITMAPCOREHEADER}
  1024. BITMAPCOREHEADER = tagBITMAPCOREHEADER;
  1025. {$EXTERNALSYM BITMAPCOREHEADER}
  1026. LPBITMAPCOREHEADER = ^BITMAPCOREHEADER;
  1027. {$EXTERNALSYM LPBITMAPCOREHEADER}
  1028. TBitmapCoreHeader = BITMAPCOREHEADER;
  1029. PBitmapInfoHeader = ^TBitmapInfoHeader;
  1030. tagBITMAPINFOHEADER = record
  1031. biSize: DWORD;
  1032. biWidth: LONG;
  1033. biHeight: LONG;
  1034. biPlanes: WORD;
  1035. biBitCount: WORD;
  1036. biCompression: DWORD;
  1037. biSizeImage: DWORD;
  1038. biXPelsPerMeter: LONG;
  1039. biYPelsPerMeter: LONG;
  1040. biClrUsed: DWORD;
  1041. biClrImportant: DWORD;
  1042. end;
  1043. {$EXTERNALSYM tagBITMAPINFOHEADER}
  1044. BITMAPINFOHEADER = tagBITMAPINFOHEADER;
  1045. {$EXTERNALSYM BITMAPINFOHEADER}
  1046. LPBITMAPINFOHEADER = ^BITMAPINFOHEADER;
  1047. {$EXTERNALSYM LPBITMAPINFOHEADER}
  1048. TBitmapInfoHeader = BITMAPINFOHEADER;
  1049. PBitmapV4Header = ^TBitmapV4Header;
  1050. BITMAPV4HEADER = record
  1051. bV4Size: DWORD;
  1052. bV4Width: LONG;
  1053. bV4Height: LONG;
  1054. bV4Planes: WORD;
  1055. bV4BitCount: WORD;
  1056. bV4V4Compression: DWORD;
  1057. bV4SizeImage: DWORD;
  1058. bV4XPelsPerMeter: LONG;
  1059. bV4YPelsPerMeter: LONG;
  1060. bV4ClrUsed: DWORD;
  1061. bV4ClrImportant: DWORD;
  1062. bV4RedMask: DWORD;
  1063. bV4GreenMask: DWORD;
  1064. bV4BlueMask: DWORD;
  1065. bV4AlphaMask: DWORD;
  1066. bV4CSType: DWORD;
  1067. bV4Endpoints: CIEXYZTRIPLE;
  1068. bV4GammaRed: DWORD;
  1069. bV4GammaGreen: DWORD;
  1070. bV4GammaBlue: DWORD;
  1071. end;
  1072. {$EXTERNALSYM BITMAPV4HEADER}
  1073. LPBITMAPV4HEADER = ^BITMAPV4HEADER;
  1074. {$EXTERNALSYM LPBITMAPV4HEADER}
  1075. TBitmapV4Header = BITMAPV4HEADER;
  1076. PBitmapV5Header = ^TBitmapV5Header;
  1077. BITMAPV5HEADER = record
  1078. bV5Size: DWORD;
  1079. bV5Width: LONG;
  1080. bV5Height: LONG;
  1081. bV5Planes: WORD;
  1082. bV5BitCount: WORD;
  1083. bV5Compression: DWORD;
  1084. bV5SizeImage: DWORD;
  1085. bV5XPelsPerMeter: LONG;
  1086. bV5YPelsPerMeter: LONG;
  1087. bV5ClrUsed: DWORD;
  1088. bV5ClrImportant: DWORD;
  1089. bV5RedMask: DWORD;
  1090. bV5GreenMask: DWORD;
  1091. bV5BlueMask: DWORD;
  1092. bV5AlphaMask: DWORD;
  1093. bV5CSType: DWORD;
  1094. bV5Endpoints: CIEXYZTRIPLE;
  1095. bV5GammaRed: DWORD;
  1096. bV5GammaGreen: DWORD;
  1097. bV5GammaBlue: DWORD;
  1098. bV5Intent: DWORD;
  1099. bV5ProfileData: DWORD;
  1100. bV5ProfileSize: DWORD;
  1101. bV5Reserved: DWORD;
  1102. end;
  1103. {$EXTERNALSYM BITMAPV5HEADER}
  1104. LPBITMAPV5HEADER = ^BITMAPV5HEADER;
  1105. {$EXTERNALSYM LPBITMAPV5HEADER}
  1106. TBitmapV5Header = BITMAPV5HEADER;
  1107. // Values for bV5CSType
  1108. const
  1109. PROFILE_LINKED = 'LINK';
  1110. {$EXTERNALSYM PROFILE_LINKED}
  1111. PROFILE_EMBEDDED = 'MBED';
  1112. {$EXTERNALSYM PROFILE_EMBEDDED}
  1113. // constants for the biCompression field
  1114. BI_RGB = 0;
  1115. {$EXTERNALSYM BI_RGB}
  1116. BI_RLE8 = 1;
  1117. {$EXTERNALSYM BI_RLE8}
  1118. BI_RLE4 = 2;
  1119. {$EXTERNALSYM BI_RLE4}
  1120. BI_BITFIELDS = 3;
  1121. {$EXTERNALSYM BI_BITFIELDS}
  1122. BI_JPEG = 4;
  1123. {$EXTERNALSYM BI_JPEG}
  1124. BI_PNG = 5;
  1125. {$EXTERNALSYM BI_PNG}
  1126. type
  1127. PBitmapInfo = ^TBitmapInfo;
  1128. tagBITMAPINFO = record
  1129. bmiHeader: BITMAPINFOHEADER;
  1130. bmiColors: array [0..0] of RGBQUAD;
  1131. end;
  1132. {$EXTERNALSYM tagBITMAPINFO}
  1133. BITMAPINFO = tagBITMAPINFO;
  1134. {$EXTERNALSYM BITMAPINFO}
  1135. LPBITMAPINFO = ^BITMAPINFO;
  1136. {$EXTERNALSYM LPBITMAPINFO}
  1137. TBitmapInfo = BITMAPINFO;
  1138. PBitmapCoreInfo = ^TBitmapCoreInfo;
  1139. tagBITMAPCOREINFO = record
  1140. bmciHeader: BITMAPCOREHEADER;
  1141. bmciColors: array [0..0] of RGBTRIPLE;
  1142. end;
  1143. {$EXTERNALSYM tagBITMAPCOREINFO}
  1144. BITMAPCOREINFO = tagBITMAPCOREINFO;
  1145. {$EXTERNALSYM BITMAPCOREINFO}
  1146. LPBITMAPCOREINFO = ^BITMAPCOREINFO;
  1147. {$EXTERNALSYM LPBITMAPCOREINFO}
  1148. TBitmapCoreInfo = BITMAPCOREINFO;
  1149. // #include <pshpack2.h>
  1150. PBitmapFileHeader = ^TBitmapFileHeader;
  1151. tagBITMAPFILEHEADER = packed record
  1152. bfType: WORD;
  1153. bfSize: DWORD;
  1154. bfReserved1: WORD;
  1155. bfReserved2: WORD;
  1156. bfOffBits: DWORD;
  1157. end;
  1158. {$EXTERNALSYM tagBITMAPFILEHEADER}
  1159. BITMAPFILEHEADER = tagBITMAPFILEHEADER;
  1160. {$EXTERNALSYM BITMAPFILEHEADER}
  1161. LPBITMAPFILEHEADER = ^BITMAPFILEHEADER;
  1162. {$EXTERNALSYM BITMAPFILEHEADER}
  1163. TBitmapFileHeader = BITMAPFILEHEADER;
  1164. // #include <poppack.h>
  1165. function MAKEPOINTS(l: DWORD): POINTS;
  1166. {$EXTERNALSYM MAKEPOINTS}
  1167. type
  1168. PFontSignature = ^TFontSignature;
  1169. tagFONTSIGNATURE = record
  1170. fsUsb: array [0..3] of DWORD;
  1171. fsCsb: array [0..1] of DWORD;
  1172. end;
  1173. {$EXTERNALSYM tagFONTSIGNATURE}
  1174. FONTSIGNATURE = tagFONTSIGNATURE;
  1175. {$EXTERNALSYM FONTSIGNATURE}
  1176. LPFONTSIGNATURE = ^FONTSIGNATURE;
  1177. {$EXTERNALSYM LPFONTSIGNATURE}
  1178. TFontSignature = FONTSIGNATURE;
  1179. PCharSetInfo = ^TCharSetInfo;
  1180. tagCHARSETINFO = record
  1181. ciCharset: UINT;
  1182. ciACP: UINT;
  1183. fs: FONTSIGNATURE;
  1184. end;
  1185. {$EXTERNALSYM tagCHARSETINFO}
  1186. CHARSETINFO = tagCHARSETINFO;
  1187. {$EXTERNALSYM CHARSETINFO}
  1188. LPCHARSETINFO = ^CHARSETINFO;
  1189. {$EXTERNALSYM LPCHARSETINFO}
  1190. NPCHARSETINFO = ^CHARSETINFO;
  1191. {$EXTERNALSYM NPCHARSETINFO}
  1192. TCharSetInfo = CHARSETINFO;
  1193. const
  1194. TCI_SRCCHARSET = 1;
  1195. {$EXTERNALSYM TCI_SRCCHARSET}
  1196. TCI_SRCCODEPAGE = 2;
  1197. {$EXTERNALSYM TCI_SRCCODEPAGE}
  1198. TCI_SRCFONTSIG = 3;
  1199. {$EXTERNALSYM TCI_SRCFONTSIG}
  1200. TCI_SRCLOCALE = $1000;
  1201. {$EXTERNALSYM TCI_SRCLOCALE}
  1202. type
  1203. PLocaleSignature = ^TLocaleSignature;
  1204. tagLOCALESIGNATURE = record
  1205. lsUsb: array [0..3] of DWORD;
  1206. lsCsbDefault: array [0..1] of DWORD;
  1207. lsCsbSupported: array [0..1] of DWORD;
  1208. end;
  1209. {$EXTERNALSYM tagLOCALESIGNATURE}
  1210. LOCALESIGNATURE = tagLOCALESIGNATURE;
  1211. {$EXTERNALSYM LOCALESIGNATURE}
  1212. LPLOCALESIGNATURE = ^LOCALESIGNATURE;
  1213. {$EXTERNALSYM LPLOCALESIGNATURE}
  1214. TLocaleSignature = LOCALESIGNATURE;
  1215. // Clipboard Metafile Picture Structure
  1216. PHandleTable = ^THandleTable;
  1217. tagHANDLETABLE = record
  1218. objectHandle: array [0..0] of HGDIOBJ;
  1219. end;
  1220. {$EXTERNALSYM tagHANDLETABLE}
  1221. HANDLETABLE = tagHANDLETABLE;
  1222. {$EXTERNALSYM HANDLETABLE}
  1223. LPHANDLETABLE = ^HANDLETABLE;
  1224. {$EXTERNALSYM LPHANDLETABLE}
  1225. THandleTable = HANDLETABLE;
  1226. PMetaRecord = ^TMetaRecord;
  1227. tagMETARECORD = record
  1228. rdSize: DWORD;
  1229. rdFunction: WORD;
  1230. rdParm: array [0..0] of WORD;
  1231. end;
  1232. {$EXTERNALSYM tagMETARECORD}
  1233. METARECORD = tagMETARECORD;
  1234. {$EXTERNALSYM METARECORD}
  1235. LPMETARECORD = ^METARECORD;
  1236. {$EXTERNALSYM LPMETARECORD}
  1237. TMetaRecord = METARECORD;
  1238. PMetaFilePict = ^TMetaFilePict;
  1239. tagMETAFILEPICT = record
  1240. mm: LONG;
  1241. xExt: LONG;
  1242. yExt: LONG;
  1243. hMF: HMETAFILE;
  1244. end;
  1245. {$EXTERNALSYM tagMETAFILEPICT}
  1246. METAFILEPICT = tagMETAFILEPICT;
  1247. {$EXTERNALSYM METAFILEPICT}
  1248. LPMETAFILEPICT = ^METAFILEPICT;
  1249. {$EXTERNALSYM LPMETAFILEPICT}
  1250. TMetaFilePict = METAFILEPICT;
  1251. // #include <pshpack2.h>
  1252. PMetaHeader = ^TMetaHeader;
  1253. tagMETAHEADER = packed record
  1254. mtType: WORD;
  1255. mtHeaderSize: WORD;
  1256. mtVersion: WORD;
  1257. mtSize: DWORD;
  1258. mtNoObjects: WORD;
  1259. mtMaxRecord: DWORD;
  1260. mtNoParameters: WORD;
  1261. end;
  1262. {$EXTERNALSYM tagMETAHEADER}
  1263. METAHEADER = tagMETAHEADER;
  1264. {$EXTERNALSYM METAHEADER}
  1265. LPMETAHEADER = ^METAHEADER;
  1266. {$EXTERNALSYM LPMETAHEADER}
  1267. TMetaHeader = METAHEADER;
  1268. // #include <poppack.h>
  1269. // Enhanced Metafile structures
  1270. PEnhMetaRecord = ^TEnhMetaRecord;
  1271. tagENHMETARECORD = record
  1272. iType: DWORD; // Record type EMR_XXX
  1273. nSize: DWORD; // Record size in bytes
  1274. dParm: array [0..0] of DWORD; // Parameters
  1275. end;
  1276. {$EXTERNALSYM tagENHMETARECORD}
  1277. ENHMETARECORD = tagENHMETARECORD;
  1278. {$EXTERNALSYM ENHMETARECORD}
  1279. LPENHMETARECORD = ^ENHMETARECORD;
  1280. {$EXTERNALSYM LPENHMETARECORD}
  1281. TEnhMetaRecord = ENHMETARECORD;
  1282. PEnhMetaHeader = ^TEnhMetaHeader;
  1283. tagENHMETAHEADER = record
  1284. iType: DWORD; // Record type EMR_HEADER
  1285. nSize: DWORD; // Record size in bytes. This may be greater
  1286. // than the sizeof(ENHMETAHEADER).
  1287. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  1288. rclFrame: RECTL; // Inclusive-inclusive Picture Frame of metafile in .01 mm units
  1289. dSignature: DWORD; // Signature. Must be ENHMETA_SIGNATURE.
  1290. nVersion: DWORD; // Version number
  1291. nBytes: DWORD; // Size of the metafile in bytes
  1292. nRecords: DWORD; // Number of records in the metafile
  1293. nHandles: WORD; // Number of handles in the handle table
  1294. // Handle index zero is reserved.
  1295. sReserved: WORD; // Reserved. Must be zero.
  1296. nDescription: DWORD; // Number of chars in the unicode description string
  1297. // This is 0 if there is no description string
  1298. offDescription: DWORD; // Offset to the metafile description record.
  1299. // This is 0 if there is no description string
  1300. nPalEntries: DWORD; // Number of entries in the metafile palette.
  1301. szlDevice: SIZEL; // Size of the reference device in pels
  1302. szlMillimeters: SIZEL; // Size of the reference device in millimeters
  1303. cbPixelFormat: DWORD; // Size of PIXELFORMATDESCRIPTOR information
  1304. // This is 0 if no pixel format is set
  1305. offPixelFormat: DWORD; // Offset to PIXELFORMATDESCRIPTOR
  1306. // This is 0 if no pixel format is set
  1307. bOpenGL: DWORD; // TRUE if OpenGL commands are present in
  1308. // the metafile, otherwise FALSE
  1309. {$IFDEF WIN98ME_UP}
  1310. szlMicrometers: SIZEL; // Size of the reference device in micrometers
  1311. {$ENDIF WIN98ME_UP}
  1312. end;
  1313. {$EXTERNALSYM tagENHMETAHEADER}
  1314. ENHMETAHEADER = tagENHMETAHEADER;
  1315. {$EXTERNALSYM ENHMETAHEADER}
  1316. LPENHMETAHEADER = ^ENHMETAHEADER;
  1317. {$EXTERNALSYM LPENHMETAHEADER}
  1318. TEnhMetaHeader = tagENHMETAHEADER;
  1319. // tmPitchAndFamily flags
  1320. const
  1321. TMPF_FIXED_PITCH = $01;
  1322. {$EXTERNALSYM TMPF_FIXED_PITCH}
  1323. TMPF_VECTOR = $02;
  1324. {$EXTERNALSYM TMPF_VECTOR}
  1325. TMPF_DEVICE = $08;
  1326. {$EXTERNALSYM TMPF_DEVICE}
  1327. TMPF_TRUETYPE = $04;
  1328. {$EXTERNALSYM TMPF_TRUETYPE}
  1329. //
  1330. // BCHAR definition for APPs
  1331. //
  1332. type
  1333. {$IFDEF UNICODE}
  1334. BCHAR = WCHAR;
  1335. {$EXTERNALSYM BCHAR}
  1336. {$ELSE}
  1337. BCHAR = BYTE;
  1338. {$EXTERNALSYM BCHAR}
  1339. {$ENDIF UNICODE}
  1340. type
  1341. PTextMetricA = ^TTextMetricA;
  1342. tagTEXTMETRICA = record
  1343. tmHeight: LONG;
  1344. tmAscent: LONG;
  1345. tmDescent: LONG;
  1346. tmInternalLeading: LONG;
  1347. tmExternalLeading: LONG;
  1348. tmAveCharWidth: LONG;
  1349. tmMaxCharWidth: LONG;
  1350. tmWeight: LONG;
  1351. tmOverhang: LONG;
  1352. tmDigitizedAspectX: LONG;
  1353. tmDigitizedAspectY: LONG;
  1354. tmFirstChar: BYTE;
  1355. tmLastChar: BYTE;
  1356. tmDefaultChar: BYTE;
  1357. tmBreakChar: BYTE;
  1358. tmItalic: BYTE;
  1359. tmUnderlined: BYTE;
  1360. tmStruckOut: BYTE;
  1361. tmPitchAndFamily: BYTE;
  1362. tmCharSet: BYTE;
  1363. end;
  1364. {$EXTERNALSYM tagTEXTMETRICA}
  1365. TEXTMETRICA = tagTEXTMETRICA;
  1366. {$EXTERNALSYM TEXTMETRICA}
  1367. LPTEXTMETRICA = ^TEXTMETRICA;
  1368. {$EXTERNALSYM LPTEXTMETRICA}
  1369. NPTEXTMETRICA = ^TEXTMETRICA;
  1370. {$EXTERNALSYM NPTEXTMETRICA}
  1371. TTextMetricA = TEXTMETRICA;
  1372. PTextMetricW = ^TTextMetricW;
  1373. tagTEXTMETRICW = record
  1374. tmHeight: LONG;
  1375. tmAscent: LONG;
  1376. tmDescent: LONG;
  1377. tmInternalLeading: LONG;
  1378. tmExternalLeading: LONG;
  1379. tmAveCharWidth: LONG;
  1380. tmMaxCharWidth: LONG;
  1381. tmWeight: LONG;
  1382. tmOverhang: LONG;
  1383. tmDigitizedAspectX: LONG;
  1384. tmDigitizedAspectY: LONG;
  1385. tmFirstChar: WCHAR;
  1386. tmLastChar: WCHAR;
  1387. tmDefaultChar: WCHAR;
  1388. tmBreakChar: WCHAR;
  1389. tmItalic: BYTE;
  1390. tmUnderlined: BYTE;
  1391. tmStruckOut: BYTE;
  1392. tmPitchAndFamily: BYTE;
  1393. tmCharSet: BYTE;
  1394. end;
  1395. {$EXTERNALSYM tagTEXTMETRICW}
  1396. TEXTMETRICW = tagTEXTMETRICW;
  1397. {$EXTERNALSYM TEXTMETRICW}
  1398. LPTEXTMETRICW = ^TEXTMETRICW;
  1399. {$EXTERNALSYM LPTEXTMETRICW}
  1400. NPTEXTMETRICW = ^TEXTMETRICW;
  1401. {$EXTERNALSYM NPTEXTMETRICW}
  1402. TTextMetricW = TEXTMETRICW;
  1403. {$IFDEF UNICODE}
  1404. TEXTMETRIC = TEXTMETRICW;
  1405. {$EXTERNALSYM TEXTMETRIC}
  1406. PTEXTMETRIC = PTEXTMETRICW;
  1407. {$EXTERNALSYM PTEXTMETRIC}
  1408. NPTEXTMETRIC = NPTEXTMETRICW;
  1409. {$EXTERNALSYM NPTEXTMETRIC}
  1410. LPTEXTMETRIC = LPTEXTMETRICW;
  1411. {$EXTERNALSYM LPTEXTMETRIC}
  1412. TTextMetric = TTextMetricW;
  1413. {$ELSE}
  1414. TEXTMETRIC = TEXTMETRICA;
  1415. {$EXTERNALSYM TEXTMETRIC}
  1416. NPTEXTMETRIC = NPTEXTMETRICA;
  1417. {$EXTERNALSYM NPTEXTMETRIC}
  1418. LPTEXTMETRIC = LPTEXTMETRICA;
  1419. {$EXTERNALSYM LPTEXTMETRIC}
  1420. TTextMetric = TTextMetricA;
  1421. {$ENDIF UNICODE}
  1422. // ntmFlags field flags
  1423. const
  1424. NTM_REGULAR = $00000040;
  1425. {$EXTERNALSYM NTM_REGULAR}
  1426. NTM_BOLD = $00000020;
  1427. {$EXTERNALSYM NTM_BOLD}
  1428. NTM_ITALIC = $00000001;
  1429. {$EXTERNALSYM NTM_ITALIC}
  1430. // new in NT 5.0
  1431. NTM_NONNEGATIVE_AC = $00010000;
  1432. {$EXTERNALSYM NTM_NONNEGATIVE_AC}
  1433. NTM_PS_OPENTYPE = $00020000;
  1434. {$EXTERNALSYM NTM_PS_OPENTYPE}
  1435. NTM_TT_OPENTYPE = $00040000;
  1436. {$EXTERNALSYM NTM_TT_OPENTYPE}
  1437. NTM_MULTIPLEMASTER = $00080000;
  1438. {$EXTERNALSYM NTM_MULTIPLEMASTER}
  1439. NTM_TYPE1 = $00100000;
  1440. {$EXTERNALSYM NTM_TYPE1}
  1441. NTM_DSIG = $00200000;
  1442. {$EXTERNALSYM NTM_DSIG}
  1443. // #include <pshpack4.h>
  1444. type
  1445. PNewTextMetricA = ^TNewTextMetricA;
  1446. tagNEWTEXTMETRICA = record
  1447. tmHeight: LONG;
  1448. tmAscent: LONG;
  1449. tmDescent: LONG;
  1450. tmInternalLeading: LONG;
  1451. tmExternalLeading: LONG;
  1452. tmAveCharWidth: LONG;
  1453. tmMaxCharWidth: LONG;
  1454. tmWeight: LONG;
  1455. tmOverhang: LONG;
  1456. tmDigitizedAspectX: LONG;
  1457. tmDigitizedAspectY: LONG;
  1458. tmFirstChar: BYTE;
  1459. tmLastChar: BYTE;
  1460. tmDefaultChar: BYTE;
  1461. tmBreakChar: BYTE;
  1462. tmItalic: BYTE;
  1463. tmUnderlined: BYTE;
  1464. tmStruckOut: BYTE;
  1465. tmPitchAndFamily: BYTE;
  1466. tmCharSet: BYTE;
  1467. ntmFlags: DWORD;
  1468. ntmSizeEM: UINT;
  1469. ntmCellHeight: UINT;
  1470. ntmAvgWidth: UINT;
  1471. end;
  1472. {$EXTERNALSYM tagNEWTEXTMETRICA}
  1473. NEWTEXTMETRICA = tagNEWTEXTMETRICA;
  1474. {$EXTERNALSYM NEWTEXTMETRICA}
  1475. LPNEWTEXTMETRICA = ^NEWTEXTMETRICA;
  1476. {$EXTERNALSYM LPNEWTEXTMETRICA}
  1477. NPNEWTEXTMETRICA = ^NEWTEXTMETRICA;
  1478. {$EXTERNALSYM NPNEWTEXTMETRICA}
  1479. TNewTextMetricA = NEWTEXTMETRICA;
  1480. PNewTextMetricW = ^TNewTextMetricW;
  1481. tagNEWTEXTMETRICW = record
  1482. tmHeight: LONG;
  1483. tmAscent: LONG;
  1484. tmDescent: LONG;
  1485. tmInternalLeading: LONG;
  1486. tmExternalLeading: LONG;
  1487. tmAveCharWidth: LONG;
  1488. tmMaxCharWidth: LONG;
  1489. tmWeight: LONG;
  1490. tmOverhang: LONG;
  1491. tmDigitizedAspectX: LONG;
  1492. tmDigitizedAspectY: LONG;
  1493. tmFirstChar: WCHAR;
  1494. tmLastChar: WCHAR;
  1495. tmDefaultChar: WCHAR;
  1496. tmBreakChar: WCHAR;
  1497. tmItalic: BYTE;
  1498. tmUnderlined: BYTE;
  1499. tmStruckOut: BYTE;
  1500. tmPitchAndFamily: BYTE;
  1501. tmCharSet: BYTE;
  1502. ntmFlags: DWORD;
  1503. ntmSizeEM: UINT;
  1504. ntmCellHeight: UINT;
  1505. ntmAvgWidth: UINT;
  1506. end;
  1507. {$EXTERNALSYM tagNEWTEXTMETRICW}
  1508. NEWTEXTMETRICW = tagNEWTEXTMETRICW;
  1509. {$EXTERNALSYM NEWTEXTMETRICW}
  1510. LPNEWTEXTMETRICW = ^NEWTEXTMETRICW;
  1511. {$EXTERNALSYM LPNEWTEXTMETRICW}
  1512. NPNEWTEXTMETRICW = ^NEWTEXTMETRICW;
  1513. {$EXTERNALSYM NPNEWTEXTMETRICW}
  1514. TNewTextMetricW = NEWTEXTMETRICW;
  1515. {$IFDEF UNICODE}
  1516. NEWTEXTMETRIC = NEWTEXTMETRICW;
  1517. {$EXTERNALSYM NEWTEXTMETRIC}
  1518. PNEWTEXTMETRIC = PNEWTEXTMETRICW;
  1519. {$EXTERNALSYM PNEWTEXTMETRIC}
  1520. NPNEWTEXTMETRIC = NPNEWTEXTMETRICW;
  1521. {$EXTERNALSYM NPNEWTEXTMETRIC}
  1522. LPNEWTEXTMETRIC = LPNEWTEXTMETRICW;
  1523. {$EXTERNALSYM LPNEWTEXTMETRIC}
  1524. TNewTextMetric = TNewTextMetricW;
  1525. {$ELSE}
  1526. NEWTEXTMETRIC = NEWTEXTMETRICW;
  1527. {$EXTERNALSYM NEWTEXTMETRIC}
  1528. PNEWTEXTMETRIC = PNEWTEXTMETRICW;
  1529. {$EXTERNALSYM PNEWTEXTMETRIC}
  1530. NPNEWTEXTMETRIC = NPNEWTEXTMETRICW;
  1531. {$EXTERNALSYM NPNEWTEXTMETRIC}
  1532. LPNEWTEXTMETRIC = LPNEWTEXTMETRICW;
  1533. {$EXTERNALSYM LPNEWTEXTMETRIC}
  1534. TNewTextMetric = TNewTextMetricW;
  1535. {$ENDIF UNICODE}
  1536. // #include <poppack.h>
  1537. PNewTextMetricExA = ^TNewTextMetricExA;
  1538. tagNEWTEXTMETRICEXA = record
  1539. ntmTm: NEWTEXTMETRICA;
  1540. ntmFontSig: FONTSIGNATURE;
  1541. end;
  1542. {$EXTERNALSYM tagNEWTEXTMETRICEXA}
  1543. NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA;
  1544. {$EXTERNALSYM NEWTEXTMETRICEXA}
  1545. TNewTextMetricExA = NEWTEXTMETRICEXA;
  1546. PNewTextMetricExW = ^TNewTextMetricExW;
  1547. tagNEWTEXTMETRICEXW = record
  1548. ntmTm: NEWTEXTMETRICW;
  1549. ntmFontSig: FONTSIGNATURE;
  1550. end;
  1551. {$EXTERNALSYM tagNEWTEXTMETRICEXW}
  1552. NEWTEXTMETRICEXW = tagNEWTEXTMETRICEXW;
  1553. {$EXTERNALSYM NEWTEXTMETRICEXW}
  1554. TNewTextMetricExW = NEWTEXTMETRICEXW;
  1555. {$IFDEF UNICODE}
  1556. NEWTEXTMETRICEX = NEWTEXTMETRICEXW;
  1557. {$EXTERNALSYM NEWTEXTMETRICEX}
  1558. TNewTextMetricEx = TNewTextMetricExW;
  1559. PNewTextMetricEx = PNewTextMetricExW;
  1560. {$ELSE}
  1561. NEWTEXTMETRICEX = NEWTEXTMETRICEXA;
  1562. {$EXTERNALSYM NEWTEXTMETRICEX}
  1563. TNewTextMetricEx = TNewTextMetricExA;
  1564. PNewTextMetricEx = PNewTextMetricExA;
  1565. {$ENDIF UNICODE}
  1566. // GDI Logical Objects:
  1567. // Pel Array
  1568. PPelArray = ^TPelArray;
  1569. tagPELARRAY = record
  1570. paXCount: LONG;
  1571. paYCount: LONG;
  1572. paXExt: LONG;
  1573. paYExt: LONG;
  1574. paRGBs: BYTE;
  1575. end;
  1576. {$EXTERNALSYM tagPELARRAY}
  1577. PELARRAY = tagPELARRAY;
  1578. {$EXTERNALSYM PELARRAY}
  1579. LPPELARRAY = ^PELARRAY;
  1580. {$EXTERNALSYM LPPELARRAY}
  1581. TPelArray = PELARRAY;
  1582. // Logical Brush (or Pattern)
  1583. PLogBrush = ^TLogBrush;
  1584. tagLOGBRUSH = record
  1585. lbStyle: UINT;
  1586. lbColor: COLORREF;
  1587. lbHatch: ULONG_PTR; // Sundown: lbHatch could hold a HANDLE
  1588. end;
  1589. {$EXTERNALSYM tagLOGBRUSH}
  1590. LOGBRUSH = tagLOGBRUSH;
  1591. {$EXTERNALSYM LOGBRUSH}
  1592. LPLOGBRUSH = ^LOGBRUSH;
  1593. {$EXTERNALSYM LPLOGBRUSH}
  1594. NPLOGBRUSH = ^LOGBRUSH;
  1595. {$EXTERNALSYM NPLOGBRUSH}
  1596. TLogBrush = LOGBRUSH;
  1597. PLogBrush32 = ^TLogBrush32;
  1598. tagLOGBRUSH32 = record
  1599. lbStyle: UINT;
  1600. lbColor: COLORREF;
  1601. lbHatch: ULONG;
  1602. end;
  1603. {$EXTERNALSYM tagLOGBRUSH32}
  1604. LOGBRUSH32 = tagLOGBRUSH32;
  1605. {$EXTERNALSYM LOGBRUSH32}
  1606. LPLOGBRUSH32 = ^LOGBRUSH32;
  1607. {$EXTERNALSYM LPLOGBRUSH32}
  1608. NPLOGBRUSH32 = ^LOGBRUSH32;
  1609. {$EXTERNALSYM NPLOGBRUSH32}
  1610. TLogBrush32 = LOGBRUSH32;
  1611. PATTERN = LOGBRUSH;
  1612. {$EXTERNALSYM PATTERN}
  1613. PPATTERN = ^PATTERN;
  1614. {$EXTERNALSYM PPATTERN}
  1615. LPPATTERN = ^PATTERN;
  1616. {$EXTERNALSYM LPPATTERN}
  1617. NPPATTERN = ^PATTERN;
  1618. {$EXTERNALSYM NPPATTERN}
  1619. // Logical Pen
  1620. PLogPen = ^TLogPen;
  1621. tagLOGPEN = record
  1622. lopnStyle: UINT;
  1623. lopnWidth: POINT;
  1624. lopnColor: COLORREF;
  1625. end;
  1626. {$EXTERNALSYM tagLOGPEN}
  1627. LOGPEN = tagLOGPEN;
  1628. {$EXTERNALSYM LOGPEN}
  1629. LPLOGPEN = ^LOGPEN;
  1630. {$EXTERNALSYM LPLOGPEN}
  1631. NPLOGPEN = ^LOGPEN;
  1632. {$EXTERNALSYM NPLOGPEN}
  1633. TLogPen = LOGPEN;
  1634. PExtLogPen = ^TExtLogPen;
  1635. tagEXTLOGPEN = record
  1636. elpPenStyle: DWORD;
  1637. elpWidth: DWORD;
  1638. elpBrushStyle: UINT;
  1639. elpColor: COLORREF;
  1640. elpHatch: ULONG_PTR; // Sundown: elpHatch could take a HANDLE
  1641. elpNumEntries: DWORD;
  1642. elpStyleEntry: array [0..0] of DWORD;
  1643. end;
  1644. {$EXTERNALSYM tagEXTLOGPEN}
  1645. EXTLOGPEN = tagEXTLOGPEN;
  1646. {$EXTERNALSYM EXTLOGPEN}
  1647. LPEXTLOGPEN = ^EXTLOGPEN;
  1648. {$EXTERNALSYM LPEXTLOGPEN}
  1649. NPEXTLOGPEN = ^EXTLOGPEN;
  1650. {$EXTERNALSYM NPEXTLOGPEN}
  1651. TExtLogPen = EXTLOGPEN;
  1652. PPaletteEntry = ^TPaletteEntry;
  1653. tagPALETTEENTRY = record
  1654. peRed: BYTE;
  1655. peGreen: BYTE;
  1656. peBlue: BYTE;
  1657. peFlags: BYTE;
  1658. end;
  1659. {$EXTERNALSYM tagPALETTEENTRY}
  1660. PALETTEENTRY = tagPALETTEENTRY;
  1661. {$EXTERNALSYM PALETTEENTRY}
  1662. LPPALETTEENTRY = ^PALETTEENTRY;
  1663. {$EXTERNALSYM LPPALETTEENTRY}
  1664. TPaletteEntry = PALETTEENTRY;
  1665. // Logical Palette
  1666. PLogPalette = ^TLogPalette;
  1667. tagLOGPALETTE = record
  1668. palVersion: WORD;
  1669. palNumEntries: WORD;
  1670. palPalEntry: array [0..0] of PALETTEENTRY;
  1671. end;
  1672. {$EXTERNALSYM tagLOGPALETTE}
  1673. LOGPALETTE = tagLOGPALETTE;
  1674. {$EXTERNALSYM LOGPALETTE}
  1675. LPLOGPALETTE = ^LOGPALETTE;
  1676. {$EXTERNALSYM LPLOGPALETTE}
  1677. NPLOGPALETTE = ^LOGPALETTE;
  1678. {$EXTERNALSYM NPLOGPALETTE}
  1679. TLogPalette = LOGPALETTE;
  1680. // Logical Font
  1681. const
  1682. LF_FACESIZE = 32;
  1683. {$EXTERNALSYM LF_FACESIZE}
  1684. type
  1685. PLogFontA = ^TLogFontA;
  1686. tagLOGFONTA = record
  1687. lfHeight: LONG;
  1688. lfWidth: LONG;
  1689. lfEscapement: LONG;
  1690. lfOrientation: LONG;
  1691. lfWeight: LONG;
  1692. lfItalic: BYTE;
  1693. lfUnderline: BYTE;
  1694. lfStrikeOut: BYTE;
  1695. lfCharSet: BYTE;
  1696. lfOutPrecision: BYTE;
  1697. lfClipPrecision: BYTE;
  1698. lfQuality: BYTE;
  1699. lfPitchAndFamily: BYTE;
  1700. lfFaceName: array [0..LF_FACESIZE - 1] of CHAR;
  1701. end;
  1702. {$EXTERNALSYM tagLOGFONTA}
  1703. LOGFONTA = tagLOGFONTA;
  1704. {$EXTERNALSYM LOGFONTA}
  1705. LPLOGFONTA = ^LOGFONTA;
  1706. {$EXTERNALSYM LPLOGFONTA}
  1707. NPLOGFONTA = ^LOGFONTA;
  1708. {$EXTERNALSYM NPLOGFONTA}
  1709. TLogFontA = LOGFONTA;
  1710. PLogFontW = ^TLogFontW;
  1711. tagLOGFONTW = record
  1712. lfHeight: LONG;
  1713. lfWidth: LONG;
  1714. lfEscapement: LONG;
  1715. lfOrientation: LONG;
  1716. lfWeight: LONG;
  1717. lfItalic: BYTE;
  1718. lfUnderline: BYTE;
  1719. lfStrikeOut: BYTE;
  1720. lfCharSet: BYTE;
  1721. lfOutPrecision: BYTE;
  1722. lfClipPrecision: BYTE;
  1723. lfQuality: BYTE;
  1724. lfPitchAndFamily: BYTE;
  1725. lfFaceName: array [0..LF_FACESIZE - 1] of WCHAR;
  1726. end;
  1727. {$EXTERNALSYM tagLOGFONTW}
  1728. LOGFONTW = tagLOGFONTW;
  1729. {$EXTERNALSYM LOGFONTW}
  1730. LPLOGFONTW = ^LOGFONTW;
  1731. {$EXTERNALSYM LPLOGFONTW}
  1732. NPLOGFONTW = ^LOGFONTW;
  1733. {$EXTERNALSYM NPLOGFONTW}
  1734. TLogFontW = LOGFONTW;
  1735. {$IFDEF UNICODE}
  1736. LOGFONT = LOGFONTW;
  1737. {$EXTERNALSYM LOGFONT}
  1738. PLOGFONT = PLOGFONTW;
  1739. {$EXTERNALSYM PLOGFONT}
  1740. NPLOGFONT = NPLOGFONTW;
  1741. {$EXTERNALSYM NPLOGFONT}
  1742. LPLOGFONT = LPLOGFONTW;
  1743. {$EXTERNALSYM LPLOGFONT}
  1744. TLogFont = TLogFontW;
  1745. {$ELSE}
  1746. LOGFONT = LOGFONTA;
  1747. {$EXTERNALSYM LOGFONT}
  1748. PLOGFONT = PLOGFONTA;
  1749. {$EXTERNALSYM PLOGFONT}
  1750. NPLOGFONT = NPLOGFONTA;
  1751. {$EXTERNALSYM NPLOGFONT}
  1752. LPLOGFONT = LPLOGFONTA;
  1753. {$EXTERNALSYM LPLOGFONT}
  1754. TLogFont = TLogFontA;
  1755. {$ENDIF UNICODE}
  1756. const
  1757. LF_FULLFACESIZE = 64;
  1758. {$EXTERNALSYM LF_FULLFACESIZE}
  1759. // Structure passed to FONTENUMPROC
  1760. type
  1761. PEnumLogFontA = ^TEnumLogFontA;
  1762. tagENUMLOGFONTA = record
  1763. elfLogFont: LOGFONTA;
  1764. elfFullName: array [ 0..LF_FULLFACESIZE - 1] of BYTE;
  1765. elfStyle: array [0..LF_FACESIZE - 1] of BYTE;
  1766. end;
  1767. {$EXTERNALSYM tagENUMLOGFONTA}
  1768. ENUMLOGFONTA = tagENUMLOGFONTA;
  1769. {$EXTERNALSYM ENUMLOGFONTA}
  1770. LPENUMLOGFONTA = ^ENUMLOGFONTA;
  1771. {$EXTERNALSYM LPENUMLOGFONTA}
  1772. TEnumLogFontA = ENUMLOGFONTA;
  1773. // Structure passed to FONTENUMPROC
  1774. PEnumLogFontW = ^TEnumLogFontW;
  1775. tagENUMLOGFONTW = record
  1776. elfLogFont: LOGFONTW;
  1777. elfFullName: array [0..LF_FULLFACESIZE - 1] of WCHAR;
  1778. elfStyle: array [0..LF_FACESIZE - 1] of WCHAR;
  1779. end;
  1780. {$EXTERNALSYM tagENUMLOGFONTW}
  1781. ENUMLOGFONTW = tagENUMLOGFONTW;
  1782. {$EXTERNALSYM ENUMLOGFONTW}
  1783. LPENUMLOGFONTW = ^ENUMLOGFONTW;
  1784. {$EXTERNALSYM LPENUMLOGFONTW}
  1785. TEnumLogFontW = ENUMLOGFONTW;
  1786. {$IFDEF UNICODE}
  1787. ENUMLOGFONT = ENUMLOGFONTW;
  1788. {$EXTERNALSYM ENUMLOGFONT}
  1789. LPENUMLOGFONT = LPENUMLOGFONTW;
  1790. {$EXTERNALSYM LPENUMLOGFONT}
  1791. TEnumLogFont = TEnumLogFontW;
  1792. PEnumLogFont = PEnumLogFontW;
  1793. {$ELSE}
  1794. ENUMLOGFONT = ENUMLOGFONTA;
  1795. {$EXTERNALSYM ENUMLOGFONT}
  1796. LPENUMLOGFONT = LPENUMLOGFONTA;
  1797. {$EXTERNALSYM LPENUMLOGFONT}
  1798. TEnumLogFont = TEnumLogFontA;
  1799. PEnumLogFont = PEnumLogFontA;
  1800. {$ENDIF UNICODE}
  1801. PEnumLogFontExA = ^TEnumLogFontExA;
  1802. tagENUMLOGFONTEXA = record
  1803. elfLogFont: LOGFONTA;
  1804. elfFullName: array [0..LF_FULLFACESIZE - 1] of BYTE;
  1805. elfStyle: array [0..LF_FACESIZE - 1] of BYTE;
  1806. elfScript: array [0..LF_FACESIZE - 1] of BYTE;
  1807. end;
  1808. {$EXTERNALSYM tagENUMLOGFONTEXA}
  1809. ENUMLOGFONTEXA = tagENUMLOGFONTEXA;
  1810. {$EXTERNALSYM ENUMLOGFONTEXA}
  1811. LPENUMLOGFONTEXA = ^ENUMLOGFONTEXA;
  1812. {$EXTERNALSYM LPENUMLOGFONTEXA}
  1813. TEnumLogFontExA = ENUMLOGFONTEXA;
  1814. PEnumLogFontExW = ^TEnumLogFontExW;
  1815. tagENUMLOGFONTEXW = record
  1816. elfLogFont: LOGFONTW;
  1817. elfFullName: array [0..LF_FULLFACESIZE - 1] of WCHAR;
  1818. elfStyle: array [0..LF_FACESIZE - 1] of WCHAR;
  1819. elfScript: array [0..LF_FACESIZE - 1] of WCHAR;
  1820. end;
  1821. {$EXTERNALSYM tagENUMLOGFONTEXW}
  1822. ENUMLOGFONTEXW = tagENUMLOGFONTEXW;
  1823. {$EXTERNALSYM ENUMLOGFONTEXW}
  1824. LPENUMLOGFONTEXW = ^ENUMLOGFONTEXW;
  1825. {$EXTERNALSYM LPENUMLOGFONTEXW}
  1826. TEnumLogFontExW = ENUMLOGFONTEXW;
  1827. {$IFDEF UNICODE}
  1828. ENUMLOGFONTEX = ENUMLOGFONTEXW;
  1829. {$EXTERNALSYM ENUMLOGFONTEX}
  1830. LPENUMLOGFONTEX = LPENUMLOGFONTEXW;
  1831. {$EXTERNALSYM LPENUMLOGFONTEX}
  1832. TEnumLogFontEx = TEnumLogFontExW;
  1833. PEnumLogFontEx = PEnumLogFontExW;
  1834. {$ELSE}
  1835. ENUMLOGFONTEX = ENUMLOGFONTEXA;
  1836. {$EXTERNALSYM ENUMLOGFONTEX}
  1837. LPENUMLOGFONTEX = LPENUMLOGFONTEXA;
  1838. {$EXTERNALSYM LPENUMLOGFONTEX}
  1839. TEnumLogFontEx = TEnumLogFontExA;
  1840. PEnumLogFontEx = PEnumLogFontExA;
  1841. {$ENDIF UNICODE}
  1842. const
  1843. OUT_DEFAULT_PRECIS = 0;
  1844. {$EXTERNALSYM OUT_DEFAULT_PRECIS}
  1845. OUT_STRING_PRECIS = 1;
  1846. {$EXTERNALSYM OUT_STRING_PRECIS}
  1847. OUT_CHARACTER_PRECIS = 2;
  1848. {$EXTERNALSYM OUT_CHARACTER_PRECIS}
  1849. OUT_STROKE_PRECIS = 3;
  1850. {$EXTERNALSYM OUT_STROKE_PRECIS}
  1851. OUT_TT_PRECIS = 4;
  1852. {$EXTERNALSYM OUT_TT_PRECIS}
  1853. OUT_DEVICE_PRECIS = 5;
  1854. {$EXTERNALSYM OUT_DEVICE_PRECIS}
  1855. OUT_RASTER_PRECIS = 6;
  1856. {$EXTERNALSYM OUT_RASTER_PRECIS}
  1857. OUT_TT_ONLY_PRECIS = 7;
  1858. {$EXTERNALSYM OUT_TT_ONLY_PRECIS}
  1859. OUT_OUTLINE_PRECIS = 8;
  1860. {$EXTERNALSYM OUT_OUTLINE_PRECIS}
  1861. OUT_SCREEN_OUTLINE_PRECIS = 9;
  1862. {$EXTERNALSYM OUT_SCREEN_OUTLINE_PRECIS}
  1863. OUT_PS_ONLY_PRECIS = 10;
  1864. {$EXTERNALSYM OUT_PS_ONLY_PRECIS}
  1865. CLIP_DEFAULT_PRECIS = 0;
  1866. {$EXTERNALSYM CLIP_DEFAULT_PRECIS}
  1867. CLIP_CHARACTER_PRECIS = 1;
  1868. {$EXTERNALSYM CLIP_CHARACTER_PRECIS}
  1869. CLIP_STROKE_PRECIS = 2;
  1870. {$EXTERNALSYM CLIP_STROKE_PRECIS}
  1871. CLIP_MASK = $f;
  1872. {$EXTERNALSYM CLIP_MASK}
  1873. CLIP_LH_ANGLES = 1 shl 4;
  1874. {$EXTERNALSYM CLIP_LH_ANGLES}
  1875. CLIP_TT_ALWAYS = 2 shl 4;
  1876. {$EXTERNALSYM CLIP_TT_ALWAYS}
  1877. CLIP_DFA_DISABLE = 4 shl 4;
  1878. {$EXTERNALSYM CLIP_DFA_DISABLE}
  1879. CLIP_EMBEDDED = 8 shl 4;
  1880. {$EXTERNALSYM CLIP_EMBEDDED}
  1881. DEFAULT_QUALITY = 0;
  1882. {$EXTERNALSYM DEFAULT_QUALITY}
  1883. DRAFT_QUALITY = 1;
  1884. {$EXTERNALSYM DRAFT_QUALITY}
  1885. PROOF_QUALITY = 2;
  1886. {$EXTERNALSYM PROOF_QUALITY}
  1887. NONANTIALIASED_QUALITY = 3;
  1888. {$EXTERNALSYM NONANTIALIASED_QUALITY}
  1889. ANTIALIASED_QUALITY = 4;
  1890. {$EXTERNALSYM ANTIALIASED_QUALITY}
  1891. CLEARTYPE_QUALITY = 5;
  1892. {$EXTERNALSYM CLEARTYPE_QUALITY}
  1893. //#if (_WIN32_WINNT >= 0x0501)
  1894. CLEARTYPE_NATURAL_QUALITY = 6;
  1895. {$EXTERNALSYM CLEARTYPE_NATURAL_QUALITY}
  1896. //#endif
  1897. DEFAULT_PITCH = 0;
  1898. {$EXTERNALSYM DEFAULT_PITCH}
  1899. FIXED_PITCH = 1;
  1900. {$EXTERNALSYM FIXED_PITCH}
  1901. VARIABLE_PITCH = 2;
  1902. {$EXTERNALSYM VARIABLE_PITCH}
  1903. MONO_FONT = 8;
  1904. {$EXTERNALSYM MONO_FONT}
  1905. ANSI_CHARSET = 0;
  1906. {$EXTERNALSYM ANSI_CHARSET}
  1907. DEFAULT_CHARSET = 1;
  1908. {$EXTERNALSYM DEFAULT_CHARSET}
  1909. SYMBOL_CHARSET = 2;
  1910. {$EXTERNALSYM SYMBOL_CHARSET}
  1911. SHIFTJIS_CHARSET = 128;
  1912. {$EXTERNALSYM SHIFTJIS_CHARSET}
  1913. HANGEUL_CHARSET = 129;
  1914. {$EXTERNALSYM HANGEUL_CHARSET}
  1915. HANGUL_CHARSET = 129;
  1916. {$EXTERNALSYM HANGUL_CHARSET}
  1917. GB2312_CHARSET = 134;
  1918. {$EXTERNALSYM GB2312_CHARSET}
  1919. CHINESEBIG5_CHARSET = 136;
  1920. {$EXTERNALSYM CHINESEBIG5_CHARSET}
  1921. OEM_CHARSET = 255;
  1922. {$EXTERNALSYM OEM_CHARSET}
  1923. JOHAB_CHARSET = 130;
  1924. {$EXTERNALSYM JOHAB_CHARSET}
  1925. HEBREW_CHARSET = 177;
  1926. {$EXTERNALSYM HEBREW_CHARSET}
  1927. ARABIC_CHARSET = 178;
  1928. {$EXTERNALSYM ARABIC_CHARSET}
  1929. GREEK_CHARSET = 161;
  1930. {$EXTERNALSYM GREEK_CHARSET}
  1931. TURKISH_CHARSET = 162;
  1932. {$EXTERNALSYM TURKISH_CHARSET}
  1933. VIETNAMESE_CHARSET = 163;
  1934. {$EXTERNALSYM VIETNAMESE_CHARSET}
  1935. THAI_CHARSET = 222;
  1936. {$EXTERNALSYM THAI_CHARSET}
  1937. EASTEUROPE_CHARSET = 238;
  1938. {$EXTERNALSYM EASTEUROPE_CHARSET}
  1939. RUSSIAN_CHARSET = 204;
  1940. {$EXTERNALSYM RUSSIAN_CHARSET}
  1941. MAC_CHARSET = 77;
  1942. {$EXTERNALSYM MAC_CHARSET}
  1943. BALTIC_CHARSET = 186;
  1944. {$EXTERNALSYM BALTIC_CHARSET}
  1945. FS_LATIN1 = $00000001;
  1946. {$EXTERNALSYM FS_LATIN1}
  1947. FS_LATIN2 = $00000002;
  1948. {$EXTERNALSYM FS_LATIN2}
  1949. FS_CYRILLIC = $00000004;
  1950. {$EXTERNALSYM FS_CYRILLIC}
  1951. FS_GREEK = $00000008;
  1952. {$EXTERNALSYM FS_GREEK}
  1953. FS_TURKISH = $00000010;
  1954. {$EXTERNALSYM FS_TURKISH}
  1955. FS_HEBREW = $00000020;
  1956. {$EXTERNALSYM FS_HEBREW}
  1957. FS_ARABIC = $00000040;
  1958. {$EXTERNALSYM FS_ARABIC}
  1959. FS_BALTIC = $00000080;
  1960. {$EXTERNALSYM FS_BALTIC}
  1961. FS_VIETNAMESE = $00000100;
  1962. {$EXTERNALSYM FS_VIETNAMESE}
  1963. FS_THAI = $00010000;
  1964. {$EXTERNALSYM FS_THAI}
  1965. FS_JISJAPAN = $00020000;
  1966. {$EXTERNALSYM FS_JISJAPAN}
  1967. FS_CHINESESIMP = $00040000;
  1968. {$EXTERNALSYM FS_CHINESESIMP}
  1969. FS_WANSUNG = $00080000;
  1970. {$EXTERNALSYM FS_WANSUNG}
  1971. FS_CHINESETRAD = $00100000;
  1972. {$EXTERNALSYM FS_CHINESETRAD}
  1973. FS_JOHAB = $00200000;
  1974. {$EXTERNALSYM FS_JOHAB}
  1975. FS_SYMBOL = $80000000;
  1976. {$EXTERNALSYM FS_SYMBOL}
  1977. // Font Families
  1978. FF_DONTCARE = 0 shl 4; // Don't care or don't know.
  1979. {$EXTERNALSYM FF_DONTCARE}
  1980. FF_ROMAN = 1 shl 4; // Variable stroke width, serifed.
  1981. {$EXTERNALSYM FF_ROMAN}
  1982. // Times Roman, Century Schoolbook, etc.
  1983. FF_SWISS = 2 shl 4; // Variable stroke width, sans-serifed.
  1984. {$EXTERNALSYM FF_SWISS}
  1985. // Helvetica, Swiss, etc.
  1986. FF_MODERN = 3 shl 4; // Constant stroke width, serifed or sans-serifed.
  1987. {$EXTERNALSYM FF_MODERN}
  1988. // Pica, Elite, Courier, etc.
  1989. FF_SCRIPT = 4 shl 4; // Cursive, etc.
  1990. {$EXTERNALSYM FF_SCRIPT}
  1991. FF_DECORATIVE = 5 shl 4; // Old English, etc.
  1992. {$EXTERNALSYM FF_DECORATIVE}
  1993. // Font Weights
  1994. FW_DONTCARE = 0;
  1995. {$EXTERNALSYM FW_DONTCARE}
  1996. FW_THIN = 100;
  1997. {$EXTERNALSYM FW_THIN}
  1998. FW_EXTRALIGHT = 200;
  1999. {$EXTERNALSYM FW_EXTRALIGHT}
  2000. FW_LIGHT = 300;
  2001. {$EXTERNALSYM FW_LIGHT}
  2002. FW_NORMAL = 400;
  2003. {$EXTERNALSYM FW_NORMAL}
  2004. FW_MEDIUM = 500;
  2005. {$EXTERNALSYM FW_MEDIUM}
  2006. FW_SEMIBOLD = 600;
  2007. {$EXTERNALSYM FW_SEMIBOLD}
  2008. FW_BOLD = 700;
  2009. {$EXTERNALSYM FW_BOLD}
  2010. FW_EXTRABOLD = 800;
  2011. {$EXTERNALSYM FW_EXTRABOLD}
  2012. FW_HEAVY = 900;
  2013. {$EXTERNALSYM FW_HEAVY}
  2014. FW_ULTRALIGHT = FW_EXTRALIGHT;
  2015. {$EXTERNALSYM FW_ULTRALIGHT}
  2016. FW_REGULAR = FW_NORMAL;
  2017. {$EXTERNALSYM FW_REGULAR}
  2018. FW_DEMIBOLD = FW_SEMIBOLD;
  2019. {$EXTERNALSYM FW_DEMIBOLD}
  2020. FW_ULTRABOLD = FW_EXTRABOLD;
  2021. {$EXTERNALSYM FW_ULTRABOLD}
  2022. FW_BLACK = FW_HEAVY;
  2023. {$EXTERNALSYM FW_BLACK}
  2024. PANOSE_COUNT = 10;
  2025. {$EXTERNALSYM PANOSE_COUNT}
  2026. PAN_FAMILYTYPE_INDEX = 0;
  2027. {$EXTERNALSYM PAN_FAMILYTYPE_INDEX}
  2028. PAN_SERIFSTYLE_INDEX = 1;
  2029. {$EXTERNALSYM PAN_SERIFSTYLE_INDEX}
  2030. PAN_WEIGHT_INDEX = 2;
  2031. {$EXTERNALSYM PAN_WEIGHT_INDEX}
  2032. PAN_PROPORTION_INDEX = 3;
  2033. {$EXTERNALSYM PAN_PROPORTION_INDEX}
  2034. PAN_CONTRAST_INDEX = 4;
  2035. {$EXTERNALSYM PAN_CONTRAST_INDEX}
  2036. PAN_STROKEVARIATION_INDEX = 5;
  2037. {$EXTERNALSYM PAN_STROKEVARIATION_INDEX}
  2038. PAN_ARMSTYLE_INDEX = 6;
  2039. {$EXTERNALSYM PAN_ARMSTYLE_INDEX}
  2040. PAN_LETTERFORM_INDEX = 7;
  2041. {$EXTERNALSYM PAN_LETTERFORM_INDEX}
  2042. PAN_MIDLINE_INDEX = 8;
  2043. {$EXTERNALSYM PAN_MIDLINE_INDEX}
  2044. PAN_XHEIGHT_INDEX = 9;
  2045. {$EXTERNALSYM PAN_XHEIGHT_INDEX}
  2046. PAN_CULTURE_LATIN = 0;
  2047. {$EXTERNALSYM PAN_CULTURE_LATIN}
  2048. type
  2049. PPanose = ^TPanose;
  2050. tagPANOSE = record
  2051. bFamilyType: BYTE;
  2052. bSerifStyle: BYTE;
  2053. bWeight: BYTE;
  2054. bProportion: BYTE;
  2055. bContrast: BYTE;
  2056. bStrokeVariation: BYTE;
  2057. bArmStyle: BYTE;
  2058. bLetterform: BYTE;
  2059. bMidline: BYTE;
  2060. bXHeight: BYTE;
  2061. end;
  2062. {$EXTERNALSYM tagPANOSE}
  2063. PANOSE = tagPANOSE;
  2064. {$EXTERNALSYM PANOSE}
  2065. LPPANOSE = ^PANOSE;
  2066. {$EXTERNALSYM LPPANOSE}
  2067. TPanose = PANOSE;
  2068. const
  2069. PAN_ANY = 0; // Any
  2070. {$EXTERNALSYM PAN_ANY}
  2071. PAN_NO_FIT = 1; // No Fit
  2072. {$EXTERNALSYM PAN_NO_FIT}
  2073. PAN_FAMILY_TEXT_DISPLAY = 2; // Text and Display
  2074. {$EXTERNALSYM PAN_FAMILY_TEXT_DISPLAY}
  2075. PAN_FAMILY_SCRIPT = 3; // Script
  2076. {$EXTERNALSYM PAN_FAMILY_SCRIPT}
  2077. PAN_FAMILY_DECORATIVE = 4; // Decorative
  2078. {$EXTERNALSYM PAN_FAMILY_DECORATIVE}
  2079. PAN_FAMILY_PICTORIAL = 5; // Pictorial
  2080. {$EXTERNALSYM PAN_FAMILY_PICTORIAL}
  2081. PAN_SERIF_COVE = 2; // Cove
  2082. {$EXTERNALSYM PAN_SERIF_COVE}
  2083. PAN_SERIF_OBTUSE_COVE = 3; // Obtuse Cove
  2084. {$EXTERNALSYM PAN_SERIF_OBTUSE_COVE}
  2085. PAN_SERIF_SQUARE_COVE = 4; // Square Cove
  2086. {$EXTERNALSYM PAN_SERIF_SQUARE_COVE}
  2087. PAN_SERIF_OBTUSE_SQUARE_COVE = 5; // Obtuse Square Cove
  2088. {$EXTERNALSYM PAN_SERIF_OBTUSE_SQUARE_COVE}
  2089. PAN_SERIF_SQUARE = 6; // Square
  2090. {$EXTERNALSYM PAN_SERIF_SQUARE}
  2091. PAN_SERIF_THIN = 7; // Thin
  2092. {$EXTERNALSYM PAN_SERIF_THIN}
  2093. PAN_SERIF_BONE = 8; // Bone
  2094. {$EXTERNALSYM PAN_SERIF_BONE}
  2095. PAN_SERIF_EXAGGERATED = 9; // Exaggerated
  2096. {$EXTERNALSYM PAN_SERIF_EXAGGERATED}
  2097. PAN_SERIF_TRIANGLE = 10; // Triangle
  2098. {$EXTERNALSYM PAN_SERIF_TRIANGLE}
  2099. PAN_SERIF_NORMAL_SANS = 11; // Normal Sans
  2100. {$EXTERNALSYM PAN_SERIF_NORMAL_SANS}
  2101. PAN_SERIF_OBTUSE_SANS = 12; // Obtuse Sans
  2102. {$EXTERNALSYM PAN_SERIF_OBTUSE_SANS}
  2103. PAN_SERIF_PERP_SANS = 13; // Prep Sans
  2104. {$EXTERNALSYM PAN_SERIF_PERP_SANS}
  2105. PAN_SERIF_FLARED = 14; // Flared
  2106. {$EXTERNALSYM PAN_SERIF_FLARED}
  2107. PAN_SERIF_ROUNDED = 15; // Rounded
  2108. {$EXTERNALSYM PAN_SERIF_ROUNDED}
  2109. PAN_WEIGHT_VERY_LIGHT = 2; // Very Light
  2110. {$EXTERNALSYM PAN_WEIGHT_VERY_LIGHT}
  2111. PAN_WEIGHT_LIGHT = 3; // Light
  2112. {$EXTERNALSYM PAN_WEIGHT_LIGHT}
  2113. PAN_WEIGHT_THIN = 4; // Thin
  2114. {$EXTERNALSYM PAN_WEIGHT_THIN}
  2115. PAN_WEIGHT_BOOK = 5; // Book
  2116. {$EXTERNALSYM PAN_WEIGHT_BOOK}
  2117. PAN_WEIGHT_MEDIUM = 6; // Medium
  2118. {$EXTERNALSYM PAN_WEIGHT_MEDIUM}
  2119. PAN_WEIGHT_DEMI = 7; // Demi
  2120. {$EXTERNALSYM PAN_WEIGHT_DEMI}
  2121. PAN_WEIGHT_BOLD = 8; // Bold
  2122. {$EXTERNALSYM PAN_WEIGHT_BOLD}
  2123. PAN_WEIGHT_HEAVY = 9; // Heavy
  2124. {$EXTERNALSYM PAN_WEIGHT_HEAVY}
  2125. PAN_WEIGHT_BLACK = 10; // Black
  2126. {$EXTERNALSYM PAN_WEIGHT_BLACK}
  2127. PAN_WEIGHT_NORD = 11; // Nord
  2128. {$EXTERNALSYM PAN_WEIGHT_NORD}
  2129. PAN_PROP_OLD_STYLE = 2; // Old Style
  2130. {$EXTERNALSYM PAN_PROP_OLD_STYLE}
  2131. PAN_PROP_MODERN = 3; // Modern
  2132. {$EXTERNALSYM PAN_PROP_MODERN}
  2133. PAN_PROP_EVEN_WIDTH = 4; // Even Width
  2134. {$EXTERNALSYM PAN_PROP_EVEN_WIDTH}
  2135. PAN_PROP_EXPANDED = 5; // Expanded
  2136. {$EXTERNALSYM PAN_PROP_EXPANDED}
  2137. PAN_PROP_CONDENSED = 6; // Condensed
  2138. {$EXTERNALSYM PAN_PROP_CONDENSED}
  2139. PAN_PROP_VERY_EXPANDED = 7; // Very Expanded
  2140. {$EXTERNALSYM PAN_PROP_VERY_EXPANDED}
  2141. PAN_PROP_VERY_CONDENSED = 8; // Very Condensed
  2142. {$EXTERNALSYM PAN_PROP_VERY_CONDENSED}
  2143. PAN_PROP_MONOSPACED = 9; // Monospaced
  2144. {$EXTERNALSYM PAN_PROP_MONOSPACED}
  2145. PAN_CONTRAST_NONE = 2; // None
  2146. {$EXTERNALSYM PAN_CONTRAST_NONE}
  2147. PAN_CONTRAST_VERY_LOW = 3; // Very Low
  2148. {$EXTERNALSYM PAN_CONTRAST_VERY_LOW}
  2149. PAN_CONTRAST_LOW = 4; // Low
  2150. {$EXTERNALSYM PAN_CONTRAST_LOW}
  2151. PAN_CONTRAST_MEDIUM_LOW = 5; // Medium Low
  2152. {$EXTERNALSYM PAN_CONTRAST_MEDIUM_LOW}
  2153. PAN_CONTRAST_MEDIUM = 6; // Medium
  2154. {$EXTERNALSYM PAN_CONTRAST_MEDIUM}
  2155. PAN_CONTRAST_MEDIUM_HIGH = 7; // Mediim High
  2156. {$EXTERNALSYM PAN_CONTRAST_MEDIUM_HIGH}
  2157. PAN_CONTRAST_HIGH = 8; // High
  2158. {$EXTERNALSYM PAN_CONTRAST_HIGH}
  2159. PAN_CONTRAST_VERY_HIGH = 9; // Very High
  2160. {$EXTERNALSYM PAN_CONTRAST_VERY_HIGH}
  2161. PAN_STROKE_GRADUAL_DIAG = 2; // Gradual/Diagonal
  2162. {$EXTERNALSYM PAN_STROKE_GRADUAL_DIAG}
  2163. PAN_STROKE_GRADUAL_TRAN = 3; // Gradual/Transitional
  2164. {$EXTERNALSYM PAN_STROKE_GRADUAL_TRAN}
  2165. PAN_STROKE_GRADUAL_VERT = 4; // Gradual/Vertical
  2166. {$EXTERNALSYM PAN_STROKE_GRADUAL_VERT}
  2167. PAN_STROKE_GRADUAL_HORZ = 5; // Gradual/Horizontal
  2168. {$EXTERNALSYM PAN_STROKE_GRADUAL_HORZ}
  2169. PAN_STROKE_RAPID_VERT = 6; // Rapid/Vertical
  2170. {$EXTERNALSYM PAN_STROKE_RAPID_VERT}
  2171. PAN_STROKE_RAPID_HORZ = 7; // Rapid/Horizontal
  2172. {$EXTERNALSYM PAN_STROKE_RAPID_HORZ}
  2173. PAN_STROKE_INSTANT_VERT = 8; // Instant/Vertical
  2174. {$EXTERNALSYM PAN_STROKE_INSTANT_VERT}
  2175. PAN_STRAIGHT_ARMS_HORZ = 2; // Straight Arms/Horizontal
  2176. {$EXTERNALSYM PAN_STRAIGHT_ARMS_HORZ}
  2177. PAN_STRAIGHT_ARMS_WEDGE = 3; // Straight Arms/Wedge
  2178. {$EXTERNALSYM PAN_STRAIGHT_ARMS_WEDGE}
  2179. PAN_STRAIGHT_ARMS_VERT = 4; // Straight Arms/Vertical
  2180. {$EXTERNALSYM PAN_STRAIGHT_ARMS_VERT}
  2181. PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5; // Straight Arms/Single-Serif
  2182. {$EXTERNALSYM PAN_STRAIGHT_ARMS_SINGLE_SERIF}
  2183. PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6; // Straight Arms/Double-Serif
  2184. {$EXTERNALSYM PAN_STRAIGHT_ARMS_DOUBLE_SERIF}
  2185. PAN_BENT_ARMS_HORZ = 7; // Non-Straight Arms/Horizontal
  2186. {$EXTERNALSYM PAN_BENT_ARMS_HORZ}
  2187. PAN_BENT_ARMS_WEDGE = 8; // Non-Straight Arms/Wedge
  2188. {$EXTERNALSYM PAN_BENT_ARMS_WEDGE}
  2189. PAN_BENT_ARMS_VERT = 9; // Non-Straight Arms/Vertical
  2190. {$EXTERNALSYM PAN_BENT_ARMS_VERT}
  2191. PAN_BENT_ARMS_SINGLE_SERIF = 10; // Non-Straight Arms/Single-Serif
  2192. {$EXTERNALSYM PAN_BENT_ARMS_SINGLE_SERIF}
  2193. PAN_BENT_ARMS_DOUBLE_SERIF = 11; // Non-Straight Arms/Double-Serif
  2194. {$EXTERNALSYM PAN_BENT_ARMS_DOUBLE_SERIF}
  2195. PAN_LETT_NORMAL_CONTACT = 2; // Normal/Contact
  2196. {$EXTERNALSYM PAN_LETT_NORMAL_CONTACT}
  2197. PAN_LETT_NORMAL_WEIGHTED = 3; // Normal/Weighted
  2198. {$EXTERNALSYM PAN_LETT_NORMAL_WEIGHTED}
  2199. PAN_LETT_NORMAL_BOXED = 4; // Normal/Boxed
  2200. {$EXTERNALSYM PAN_LETT_NORMAL_BOXED}
  2201. PAN_LETT_NORMAL_FLATTENED = 5; // Normal/Flattened
  2202. {$EXTERNALSYM PAN_LETT_NORMAL_FLATTENED}
  2203. PAN_LETT_NORMAL_ROUNDED = 6; // Normal/Rounded
  2204. {$EXTERNALSYM PAN_LETT_NORMAL_ROUNDED}
  2205. PAN_LETT_NORMAL_OFF_CENTER = 7; // Normal/Off Center
  2206. {$EXTERNALSYM PAN_LETT_NORMAL_OFF_CENTER}
  2207. PAN_LETT_NORMAL_SQUARE = 8; // Normal/Square
  2208. {$EXTERNALSYM PAN_LETT_NORMAL_SQUARE}
  2209. PAN_LETT_OBLIQUE_CONTACT = 9; // Oblique/Contact
  2210. {$EXTERNALSYM PAN_LETT_OBLIQUE_CONTACT}
  2211. PAN_LETT_OBLIQUE_WEIGHTED = 10; // Oblique/Weighted
  2212. {$EXTERNALSYM PAN_LETT_OBLIQUE_WEIGHTED}
  2213. PAN_LETT_OBLIQUE_BOXED = 11; // Oblique/Boxed
  2214. {$EXTERNALSYM PAN_LETT_OBLIQUE_BOXED}
  2215. PAN_LETT_OBLIQUE_FLATTENED = 12; // Oblique/Flattened
  2216. {$EXTERNALSYM PAN_LETT_OBLIQUE_FLATTENED}
  2217. PAN_LETT_OBLIQUE_ROUNDED = 13; // Oblique/Rounded
  2218. {$EXTERNALSYM PAN_LETT_OBLIQUE_ROUNDED}
  2219. PAN_LETT_OBLIQUE_OFF_CENTER = 14; // Oblique/Off Center
  2220. {$EXTERNALSYM PAN_LETT_OBLIQUE_OFF_CENTER}
  2221. PAN_LETT_OBLIQUE_SQUARE = 15; // Oblique/Square
  2222. {$EXTERNALSYM PAN_LETT_OBLIQUE_SQUARE}
  2223. PAN_MIDLINE_STANDARD_TRIMMED = 2; // Standard/Trimmed
  2224. {$EXTERNALSYM PAN_MIDLINE_STANDARD_TRIMMED}
  2225. PAN_MIDLINE_STANDARD_POINTED = 3; // Standard/Pointed
  2226. {$EXTERNALSYM PAN_MIDLINE_STANDARD_POINTED}
  2227. PAN_MIDLINE_STANDARD_SERIFED = 4; // Standard/Serifed
  2228. {$EXTERNALSYM PAN_MIDLINE_STANDARD_SERIFED}
  2229. PAN_MIDLINE_HIGH_TRIMMED = 5; // High/Trimmed
  2230. {$EXTERNALSYM PAN_MIDLINE_HIGH_TRIMMED}
  2231. PAN_MIDLINE_HIGH_POINTED = 6; // High/Pointed
  2232. {$EXTERNALSYM PAN_MIDLINE_HIGH_POINTED}
  2233. PAN_MIDLINE_HIGH_SERIFED = 7; // High/Serifed
  2234. {$EXTERNALSYM PAN_MIDLINE_HIGH_SERIFED}
  2235. PAN_MIDLINE_CONSTANT_TRIMMED = 8; // Constant/Trimmed
  2236. {$EXTERNALSYM PAN_MIDLINE_CONSTANT_TRIMMED}
  2237. PAN_MIDLINE_CONSTANT_POINTED = 9; // Constant/Pointed
  2238. {$EXTERNALSYM PAN_MIDLINE_CONSTANT_POINTED}
  2239. PAN_MIDLINE_CONSTANT_SERIFED = 10; // Constant/Serifed
  2240. {$EXTERNALSYM PAN_MIDLINE_CONSTANT_SERIFED}
  2241. PAN_MIDLINE_LOW_TRIMMED = 11; // Low/Trimmed
  2242. {$EXTERNALSYM PAN_MIDLINE_LOW_TRIMMED}
  2243. PAN_MIDLINE_LOW_POINTED = 12; // Low/Pointed
  2244. {$EXTERNALSYM PAN_MIDLINE_LOW_POINTED}
  2245. PAN_MIDLINE_LOW_SERIFED = 13; // Low/Serifed
  2246. {$EXTERNALSYM PAN_MIDLINE_LOW_SERIFED}
  2247. PAN_XHEIGHT_CONSTANT_SMALL = 2; // Constant/Small
  2248. {$EXTERNALSYM PAN_XHEIGHT_CONSTANT_SMALL}
  2249. PAN_XHEIGHT_CONSTANT_STD = 3; // Constant/Standard
  2250. {$EXTERNALSYM PAN_XHEIGHT_CONSTANT_STD}
  2251. PAN_XHEIGHT_CONSTANT_LARGE = 4; // Constant/Large
  2252. {$EXTERNALSYM PAN_XHEIGHT_CONSTANT_LARGE}
  2253. PAN_XHEIGHT_DUCKING_SMALL = 5; // Ducking/Small
  2254. {$EXTERNALSYM PAN_XHEIGHT_DUCKING_SMALL}
  2255. PAN_XHEIGHT_DUCKING_STD = 6; // Ducking/Standard
  2256. {$EXTERNALSYM PAN_XHEIGHT_DUCKING_STD}
  2257. PAN_XHEIGHT_DUCKING_LARGE = 7; // Ducking/Large
  2258. {$EXTERNALSYM PAN_XHEIGHT_DUCKING_LARGE}
  2259. ELF_VENDOR_SIZE = 4;
  2260. {$EXTERNALSYM ELF_VENDOR_SIZE}
  2261. // The extended logical font
  2262. // An extension of the ENUMLOGFONT
  2263. type
  2264. PExtLogFontA = ^TExtLogFontA;
  2265. tagEXTLOGFONTA = record
  2266. elfLogFont: LOGFONTA;
  2267. elfFullName: array [0..LF_FULLFACESIZE - 1] of BYTE;
  2268. elfStyle: array [0..LF_FACESIZE - 1] of BYTE;
  2269. elfVersion: DWORD;
  2270. elfStyleSize: DWORD;
  2271. elfMatch: DWORD;
  2272. elfReserved: DWORD;
  2273. elfVendorId: array [0..ELF_VENDOR_SIZE - 1] of BYTE;
  2274. elfCulture: DWORD;
  2275. elfPanose: PANOSE;
  2276. end;
  2277. {$EXTERNALSYM tagEXTLOGFONTA}
  2278. EXTLOGFONTA = tagEXTLOGFONTA;
  2279. {$EXTERNALSYM EXTLOGFONTA}
  2280. LPEXTLOGFONTA = ^EXTLOGFONTA;
  2281. {$EXTERNALSYM LPEXTLOGFONTA}
  2282. NPEXTLOGFONTA = ^EXTLOGFONTA;
  2283. {$EXTERNALSYM NPEXTLOGFONTA}
  2284. TExtLogFontA = EXTLOGFONTA;
  2285. PExtLogFontW = ^TExtLogFontW;
  2286. tagEXTLOGFONTW = record
  2287. elfLogFont: LOGFONTW;
  2288. elfFullName: array [0..LF_FULLFACESIZE - 1] of WCHAR;
  2289. elfStyle: array [0..LF_FACESIZE - 1] of WCHAR;
  2290. elfVersion: DWORD;
  2291. elfStyleSize: DWORD;
  2292. elfMatch: DWORD;
  2293. elfReserved: DWORD;
  2294. elfVendorId: array [0..ELF_VENDOR_SIZE - 1] of BYTE;
  2295. elfCulture: DWORD;
  2296. elfPanose: PANOSE;
  2297. end;
  2298. {$EXTERNALSYM tagEXTLOGFONTW}
  2299. EXTLOGFONTW = tagEXTLOGFONTW;
  2300. {$EXTERNALSYM EXTLOGFONTW}
  2301. LPEXTLOGFONTW = ^EXTLOGFONTW;
  2302. {$EXTERNALSYM LPEXTLOGFONTW}
  2303. NPEXTLOGFONTW = ^EXTLOGFONTW;
  2304. {$EXTERNALSYM NPEXTLOGFONTW}
  2305. TExtLogFontW = EXTLOGFONTW;
  2306. {$IFDEF UNICODE}
  2307. EXTLOGFONT = EXTLOGFONTW;
  2308. {$EXTERNALSYM EXTLOGFONT}
  2309. PEXTLOGFONT = PEXTLOGFONTW;
  2310. {$EXTERNALSYM PEXTLOGFONT}
  2311. NPEXTLOGFONT = NPEXTLOGFONTW;
  2312. {$EXTERNALSYM NPEXTLOGFONT}
  2313. LPEXTLOGFONT = LPEXTLOGFONTW;
  2314. {$EXTERNALSYM LPEXTLOGFONT}
  2315. TExtLogFont = TExtLogFontW;
  2316. {$ELSE}
  2317. EXTLOGFONT = EXTLOGFONTA;
  2318. {$EXTERNALSYM EXTLOGFONT}
  2319. PEXTLOGFONT = PEXTLOGFONTA;
  2320. {$EXTERNALSYM PEXTLOGFONT}
  2321. NPEXTLOGFONT = NPEXTLOGFONTA;
  2322. {$EXTERNALSYM NPEXTLOGFONT}
  2323. LPEXTLOGFONT = LPEXTLOGFONTA;
  2324. {$EXTERNALSYM LPEXTLOGFONT}
  2325. TExtLogFont = TExtLogFontA;
  2326. {$ENDIF UNICODE}
  2327. const
  2328. ELF_VERSION = 0;
  2329. {$EXTERNALSYM ELF_VERSION}
  2330. ELF_CULTURE_LATIN = 0;
  2331. {$EXTERNALSYM ELF_CULTURE_LATIN}
  2332. // EnumFonts Masks
  2333. RASTER_FONTTYPE = $0001;
  2334. {$EXTERNALSYM RASTER_FONTTYPE}
  2335. DEVICE_FONTTYPE = $002;
  2336. {$EXTERNALSYM DEVICE_FONTTYPE}
  2337. TRUETYPE_FONTTYPE = $004;
  2338. {$EXTERNALSYM TRUETYPE_FONTTYPE}
  2339. function RGB(r, g, b: BYTE): COLORREF;
  2340. {$EXTERNALSYM RGB}
  2341. function PALETTERGB(r, g, b: BYTE): COLORREF;
  2342. {$EXTERNALSYM PALETTERGB}
  2343. function PALETTEINDEX(i: WORD): COLORREF;
  2344. {$EXTERNALSYM PALETTEINDEX}
  2345. // palette entry flags
  2346. const
  2347. PC_RESERVED = $01; // palette index used for animation
  2348. {$EXTERNALSYM PC_RESERVED}
  2349. PC_EXPLICIT = $02; // palette index is explicit to device
  2350. {$EXTERNALSYM PC_EXPLICIT}
  2351. PC_NOCOLLAPSE = $04; // do not match color to system palette
  2352. {$EXTERNALSYM PC_NOCOLLAPSE}
  2353. function GetRValue(rgb: COLORREF): BYTE;
  2354. {$EXTERNALSYM GetRValue}
  2355. function GetGValue(rgb: COLORREF): BYTE;
  2356. {$EXTERNALSYM GetGValue}
  2357. function GetBValue(rgb: COLORREF): BYTE;
  2358. {$EXTERNALSYM GetBValue}
  2359. // Background Modes
  2360. const
  2361. TRANSPARENT = 1;
  2362. {$EXTERNALSYM TRANSPARENT}
  2363. OPAQUE = 2;
  2364. {$EXTERNALSYM OPAQUE}
  2365. BKMODE_LAST = 2;
  2366. {$EXTERNALSYM BKMODE_LAST}
  2367. // Graphics Modes
  2368. GM_COMPATIBLE = 1;
  2369. {$EXTERNALSYM GM_COMPATIBLE}
  2370. GM_ADVANCED = 2;
  2371. {$EXTERNALSYM GM_ADVANCED}
  2372. GM_LAST = 2;
  2373. {$EXTERNALSYM GM_LAST}
  2374. // PolyDraw and GetPath point types
  2375. PT_CLOSEFIGURE = $01;
  2376. {$EXTERNALSYM PT_CLOSEFIGURE}
  2377. PT_LINETO = $02;
  2378. {$EXTERNALSYM PT_LINETO}
  2379. PT_BEZIERTO = $04;
  2380. {$EXTERNALSYM PT_BEZIERTO}
  2381. PT_MOVETO = $06;
  2382. {$EXTERNALSYM PT_MOVETO}
  2383. // Mapping Modes
  2384. MM_TEXT = 1;
  2385. {$EXTERNALSYM MM_TEXT}
  2386. MM_LOMETRIC = 2;
  2387. {$EXTERNALSYM MM_LOMETRIC}
  2388. MM_HIMETRIC = 3;
  2389. {$EXTERNALSYM MM_HIMETRIC}
  2390. MM_LOENGLISH = 4;
  2391. {$EXTERNALSYM MM_LOENGLISH}
  2392. MM_HIENGLISH = 5;
  2393. {$EXTERNALSYM MM_HIENGLISH}
  2394. MM_TWIPS = 6;
  2395. {$EXTERNALSYM MM_TWIPS}
  2396. MM_ISOTROPIC = 7;
  2397. {$EXTERNALSYM MM_ISOTROPIC}
  2398. MM_ANISOTROPIC = 8;
  2399. {$EXTERNALSYM MM_ANISOTROPIC}
  2400. // Min and Max Mapping Mode values
  2401. MM_MIN = MM_TEXT;
  2402. {$EXTERNALSYM MM_MIN}
  2403. MM_MAX = MM_ANISOTROPIC;
  2404. {$EXTERNALSYM MM_MAX}
  2405. MM_MAX_FIXEDSCALE = MM_TWIPS;
  2406. {$EXTERNALSYM MM_MAX_FIXEDSCALE}
  2407. // Coordinate Modes
  2408. ABSOLUTE = 1;
  2409. {$EXTERNALSYM ABSOLUTE}
  2410. RELATIVE = 2;
  2411. {$EXTERNALSYM RELATIVE}
  2412. // Stock Logical Objects
  2413. WHITE_BRUSH = 0;
  2414. {$EXTERNALSYM WHITE_BRUSH}
  2415. LTGRAY_BRUSH = 1;
  2416. {$EXTERNALSYM LTGRAY_BRUSH}
  2417. GRAY_BRUSH = 2;
  2418. {$EXTERNALSYM GRAY_BRUSH}
  2419. DKGRAY_BRUSH = 3;
  2420. {$EXTERNALSYM DKGRAY_BRUSH}
  2421. BLACK_BRUSH = 4;
  2422. {$EXTERNALSYM BLACK_BRUSH}
  2423. NULL_BRUSH = 5;
  2424. {$EXTERNALSYM NULL_BRUSH}
  2425. HOLLOW_BRUSH = NULL_BRUSH;
  2426. {$EXTERNALSYM HOLLOW_BRUSH}
  2427. WHITE_PEN = 6;
  2428. {$EXTERNALSYM WHITE_PEN}
  2429. BLACK_PEN = 7;
  2430. {$EXTERNALSYM BLACK_PEN}
  2431. NULL_PEN = 8;
  2432. {$EXTERNALSYM NULL_PEN}
  2433. OEM_FIXED_FONT = 10;
  2434. {$EXTERNALSYM OEM_FIXED_FONT}
  2435. ANSI_FIXED_FONT = 11;
  2436. {$EXTERNALSYM ANSI_FIXED_FONT}
  2437. ANSI_VAR_FONT = 12;
  2438. {$EXTERNALSYM ANSI_VAR_FONT}
  2439. SYSTEM_FONT = 13;
  2440. {$EXTERNALSYM SYSTEM_FONT}
  2441. DEVICE_DEFAULT_FONT = 14;
  2442. {$EXTERNALSYM DEVICE_DEFAULT_FONT}
  2443. DEFAULT_PALETTE = 15;
  2444. {$EXTERNALSYM DEFAULT_PALETTE}
  2445. SYSTEM_FIXED_FONT = 16;
  2446. {$EXTERNALSYM SYSTEM_FIXED_FONT}
  2447. DEFAULT_GUI_FONT = 17;
  2448. {$EXTERNALSYM DEFAULT_GUI_FONT}
  2449. DC_BRUSH = 18;
  2450. {$EXTERNALSYM DC_BRUSH}
  2451. DC_PEN = 19;
  2452. {$EXTERNALSYM DC_PEN}
  2453. {$IFDEF WIN2000_UP}
  2454. STOCK_LAST = 19;
  2455. {$EXTERNALSYM STOCK_LAST}
  2456. {$ELSE}
  2457. {$IFDEF WIN95_UP}
  2458. STOCK_LAST = 17;
  2459. {$EXTERNALSYM STOCK_LAST}
  2460. {$ELSE}
  2461. STOCK_LAST = 16;
  2462. {$EXTERNALSYM STOCK_LAST}
  2463. {$ENDIF WIN95_UP}
  2464. {$ENDIF WIN2000_UP}
  2465. CLR_INVALID = DWORD($FFFFFFFF);
  2466. {$EXTERNALSYM CLR_INVALID}
  2467. // Brush Styles
  2468. BS_SOLID = 0;
  2469. {$EXTERNALSYM BS_SOLID}
  2470. BS_NULL = 1;
  2471. {$EXTERNALSYM BS_NULL}
  2472. BS_HOLLOW = BS_NULL;
  2473. {$EXTERNALSYM BS_HOLLOW}
  2474. BS_HATCHED = 2;
  2475. {$EXTERNALSYM BS_HATCHED}
  2476. BS_PATTERN = 3;
  2477. {$EXTERNALSYM BS_PATTERN}
  2478. BS_INDEXED = 4;
  2479. {$EXTERNALSYM BS_INDEXED}
  2480. BS_DIBPATTERN = 5;
  2481. {$EXTERNALSYM BS_DIBPATTERN}
  2482. BS_DIBPATTERNPT = 6;
  2483. {$EXTERNALSYM BS_DIBPATTERNPT}
  2484. BS_PATTERN8X8 = 7;
  2485. {$EXTERNALSYM BS_PATTERN8X8}
  2486. BS_DIBPATTERN8X8 = 8;
  2487. {$EXTERNALSYM BS_DIBPATTERN8X8}
  2488. BS_MONOPATTERN = 9;
  2489. {$EXTERNALSYM BS_MONOPATTERN}
  2490. // Hatch Styles
  2491. HS_HORIZONTAL = 0; // -----
  2492. {$EXTERNALSYM HS_HORIZONTAL}
  2493. HS_VERTICAL = 1; // |||||
  2494. {$EXTERNALSYM HS_VERTICAL}
  2495. HS_FDIAGONAL = 2; // \\\\\
  2496. {$EXTERNALSYM HS_FDIAGONAL}
  2497. HS_BDIAGONAL = 3; // /////
  2498. {$EXTERNALSYM HS_BDIAGONAL}
  2499. HS_CROSS = 4; // +++++
  2500. {$EXTERNALSYM HS_CROSS}
  2501. HS_DIAGCROSS = 5; // xxxxx
  2502. {$EXTERNALSYM HS_DIAGCROSS}
  2503. // Pen Styles
  2504. PS_SOLID = 0;
  2505. {$EXTERNALSYM PS_SOLID}
  2506. PS_DASH = 1; // -------
  2507. {$EXTERNALSYM PS_DASH}
  2508. PS_DOT = 2; // .......
  2509. {$EXTERNALSYM PS_DOT}
  2510. PS_DASHDOT = 3; // _._._._
  2511. {$EXTERNALSYM PS_DASHDOT}
  2512. PS_DASHDOTDOT = 4; // _.._.._
  2513. {$EXTERNALSYM PS_DASHDOTDOT}
  2514. PS_NULL = 5;
  2515. {$EXTERNALSYM PS_NULL}
  2516. PS_INSIDEFRAME = 6;
  2517. {$EXTERNALSYM PS_INSIDEFRAME}
  2518. PS_USERSTYLE = 7;
  2519. {$EXTERNALSYM PS_USERSTYLE}
  2520. PS_ALTERNATE = 8;
  2521. {$EXTERNALSYM PS_ALTERNATE}
  2522. PS_STYLE_MASK = $0000000F;
  2523. {$EXTERNALSYM PS_STYLE_MASK}
  2524. PS_ENDCAP_ROUND = $00000000;
  2525. {$EXTERNALSYM PS_ENDCAP_ROUND}
  2526. PS_ENDCAP_SQUARE = $00000100;
  2527. {$EXTERNALSYM PS_ENDCAP_SQUARE}
  2528. PS_ENDCAP_FLAT = $00000200;
  2529. {$EXTERNALSYM PS_ENDCAP_FLAT}
  2530. PS_ENDCAP_MASK = $00000F00;
  2531. {$EXTERNALSYM PS_ENDCAP_MASK}
  2532. PS_JOIN_ROUND = $00000000;
  2533. {$EXTERNALSYM PS_JOIN_ROUND}
  2534. PS_JOIN_BEVEL = $00001000;
  2535. {$EXTERNALSYM PS_JOIN_BEVEL}
  2536. PS_JOIN_MITER = $00002000;
  2537. {$EXTERNALSYM PS_JOIN_MITER}
  2538. PS_JOIN_MASK = $0000F000;
  2539. {$EXTERNALSYM PS_JOIN_MASK}
  2540. PS_COSMETIC = $00000000;
  2541. {$EXTERNALSYM PS_COSMETIC}
  2542. PS_GEOMETRIC = $00010000;
  2543. {$EXTERNALSYM PS_GEOMETRIC}
  2544. PS_TYPE_MASK = $000F0000;
  2545. {$EXTERNALSYM PS_TYPE_MASK}
  2546. AD_COUNTERCLOCKWISE = 1;
  2547. {$EXTERNALSYM AD_COUNTERCLOCKWISE}
  2548. AD_CLOCKWISE = 2;
  2549. {$EXTERNALSYM AD_CLOCKWISE}
  2550. // Device Parameters for GetDeviceCaps()
  2551. DRIVERVERSION = 0; // Device driver version
  2552. {$EXTERNALSYM DRIVERVERSION}
  2553. TECHNOLOGY = 2; // Device classification
  2554. {$EXTERNALSYM TECHNOLOGY}
  2555. HORZSIZE = 4; // Horizontal size in millimeters
  2556. {$EXTERNALSYM HORZSIZE}
  2557. VERTSIZE = 6; // Vertical size in millimeters
  2558. {$EXTERNALSYM VERTSIZE}
  2559. HORZRES = 8; // Horizontal width in pixels
  2560. {$EXTERNALSYM HORZRES}
  2561. VERTRES = 10; // Vertical height in pixels
  2562. {$EXTERNALSYM VERTRES}
  2563. BITSPIXEL = 12; // Number of bits per pixel
  2564. {$EXTERNALSYM BITSPIXEL}
  2565. PLANES = 14; // Number of planes
  2566. {$EXTERNALSYM PLANES}
  2567. NUMBRUSHES = 16; // Number of brushes the device has
  2568. {$EXTERNALSYM NUMBRUSHES}
  2569. NUMPENS = 18; // Number of pens the device has
  2570. {$EXTERNALSYM NUMPENS}
  2571. NUMMARKERS = 20; // Number of markers the device has
  2572. {$EXTERNALSYM NUMMARKERS}
  2573. NUMFONTS = 22; // Number of fonts the device has
  2574. {$EXTERNALSYM NUMFONTS}
  2575. NUMCOLORS = 24; // Number of colors the device supports
  2576. {$EXTERNALSYM NUMCOLORS}
  2577. PDEVICESIZE = 26; // Size required for device descriptor
  2578. {$EXTERNALSYM PDEVICESIZE}
  2579. CURVECAPS = 28; // Curve capabilities
  2580. {$EXTERNALSYM CURVECAPS}
  2581. LINECAPS = 30; // Line capabilities
  2582. {$EXTERNALSYM LINECAPS}
  2583. POLYGONALCAPS = 32; // Polygonal capabilities
  2584. {$EXTERNALSYM POLYGONALCAPS}
  2585. TEXTCAPS = 34; // Text capabilities
  2586. {$EXTERNALSYM TEXTCAPS}
  2587. CLIPCAPS = 36; // Clipping capabilities
  2588. {$EXTERNALSYM CLIPCAPS}
  2589. RASTERCAPS = 38; // Bitblt capabilities
  2590. {$EXTERNALSYM RASTERCAPS}
  2591. ASPECTX = 40; // Length of the X leg
  2592. {$EXTERNALSYM ASPECTX}
  2593. ASPECTY = 42; // Length of the Y leg
  2594. {$EXTERNALSYM ASPECTY}
  2595. ASPECTXY = 44; // Length of the hypotenuse
  2596. {$EXTERNALSYM ASPECTXY}
  2597. LOGPIXELSX = 88; // Logical pixels/inch in X
  2598. {$EXTERNALSYM LOGPIXELSX}
  2599. LOGPIXELSY = 90; // Logical pixels/inch in Y
  2600. {$EXTERNALSYM LOGPIXELSY}
  2601. SIZEPALETTE = 104; // Number of entries in physical palette
  2602. {$EXTERNALSYM SIZEPALETTE}
  2603. NUMRESERVED = 106; // Number of reserved entries in palette
  2604. {$EXTERNALSYM NUMRESERVED}
  2605. COLORRES = 108; // Actual color resolution
  2606. {$EXTERNALSYM COLORRES}
  2607. // Printing related DeviceCaps. These replace the appropriate Escapes
  2608. PHYSICALWIDTH = 110; // Physical Width in device units
  2609. {$EXTERNALSYM PHYSICALWIDTH}
  2610. PHYSICALHEIGHT = 111; // Physical Height in device units
  2611. {$EXTERNALSYM PHYSICALHEIGHT}
  2612. PHYSICALOFFSETX = 112; // Physical Printable Area x margin
  2613. {$EXTERNALSYM PHYSICALOFFSETX}
  2614. PHYSICALOFFSETY = 113; // Physical Printable Area y margin
  2615. {$EXTERNALSYM PHYSICALOFFSETY}
  2616. SCALINGFACTORX = 114; // Scaling factor x
  2617. {$EXTERNALSYM SCALINGFACTORX}
  2618. SCALINGFACTORY = 115; // Scaling factor y
  2619. {$EXTERNALSYM SCALINGFACTORY}
  2620. // Display driver specific
  2621. VREFRESH = 116; // Current vertical refresh rate of the
  2622. {$EXTERNALSYM VREFRESH}
  2623. // display device (for displays only) in Hz
  2624. DESKTOPVERTRES = 117; // Horizontal width of entire desktop in
  2625. {$EXTERNALSYM DESKTOPVERTRES}
  2626. // pixels
  2627. DESKTOPHORZRES = 118; // Vertical height of entire desktop in
  2628. {$EXTERNALSYM DESKTOPHORZRES}
  2629. // pixels
  2630. BLTALIGNMENT = 119; // Preferred blt alignment
  2631. {$EXTERNALSYM BLTALIGNMENT}
  2632. SHADEBLENDCAPS = 120; // Shading and blending caps
  2633. {$EXTERNALSYM SHADEBLENDCAPS}
  2634. COLORMGMTCAPS = 121; // Color Management caps
  2635. {$EXTERNALSYM COLORMGMTCAPS}
  2636. // Device Capability Masks:
  2637. // Device Technologies
  2638. DT_PLOTTER = 0; // Vector plotter
  2639. {$EXTERNALSYM DT_PLOTTER}
  2640. DT_RASDISPLAY = 1; // Raster display
  2641. {$EXTERNALSYM DT_RASDISPLAY}
  2642. DT_RASPRINTER = 2; // Raster printer
  2643. {$EXTERNALSYM DT_RASPRINTER}
  2644. DT_RASCAMERA = 3; // Raster camera
  2645. {$EXTERNALSYM DT_RASCAMERA}
  2646. DT_CHARSTREAM = 4; // Character-stream, PLP
  2647. {$EXTERNALSYM DT_CHARSTREAM}
  2648. DT_METAFILE = 5; // Metafile, VDM
  2649. {$EXTERNALSYM DT_METAFILE}
  2650. DT_DISPFILE = 6; // Display-file
  2651. {$EXTERNALSYM DT_DISPFILE}
  2652. // Curve Capabilities
  2653. CC_NONE = 0; // Curves not supported
  2654. {$EXTERNALSYM CC_NONE}
  2655. CC_CIRCLES = 1; // Can do circles
  2656. {$EXTERNALSYM CC_CIRCLES}
  2657. CC_PIE = 2; // Can do pie wedges
  2658. {$EXTERNALSYM CC_PIE}
  2659. CC_CHORD = 4; // Can do chord arcs
  2660. {$EXTERNALSYM CC_CHORD}
  2661. CC_ELLIPSES = 8; // Can do ellipese
  2662. {$EXTERNALSYM CC_ELLIPSES}
  2663. CC_WIDE = 16; // Can do wide lines
  2664. {$EXTERNALSYM CC_WIDE}
  2665. CC_STYLED = 32; // Can do styled lines
  2666. {$EXTERNALSYM CC_STYLED}
  2667. CC_WIDESTYLED = 64; // Can do wide styled lines
  2668. {$EXTERNALSYM CC_WIDESTYLED}
  2669. CC_INTERIORS = 128; // Can do interiors
  2670. {$EXTERNALSYM CC_INTERIORS}
  2671. CC_ROUNDRECT = 256;
  2672. {$EXTERNALSYM CC_ROUNDRECT}
  2673. // Line Capabilities
  2674. LC_NONE = 0; // Lines not supported
  2675. {$EXTERNALSYM LC_NONE}
  2676. LC_POLYLINE = 2; // Can do polylines
  2677. {$EXTERNALSYM LC_POLYLINE}
  2678. LC_MARKER = 4; // Can do markers
  2679. {$EXTERNALSYM LC_MARKER}
  2680. LC_POLYMARKER = 8; // Can do polymarkers
  2681. {$EXTERNALSYM LC_POLYMARKER}
  2682. LC_WIDE = 16; // Can do wide lines
  2683. {$EXTERNALSYM LC_WIDE}
  2684. LC_STYLED = 32; // Can do styled lines
  2685. {$EXTERNALSYM LC_STYLED}
  2686. LC_WIDESTYLED = 64; // Can do wide styled lines
  2687. {$EXTERNALSYM LC_WIDESTYLED}
  2688. LC_INTERIORS = 128; // Can do interiors
  2689. {$EXTERNALSYM LC_INTERIORS}
  2690. // Polygonal Capabilities
  2691. PC_NONE = 0; // Polygonals not supported
  2692. {$EXTERNALSYM PC_NONE}
  2693. PC_POLYGON = 1; // Can do polygons
  2694. {$EXTERNALSYM PC_POLYGON}
  2695. PC_RECTANGLE = 2; // Can do rectangles
  2696. {$EXTERNALSYM PC_RECTANGLE}
  2697. PC_WINDPOLYGON = 4; // Can do winding polygons
  2698. {$EXTERNALSYM PC_WINDPOLYGON}
  2699. PC_TRAPEZOID = 4; // Can do trapezoids
  2700. {$EXTERNALSYM PC_TRAPEZOID}
  2701. PC_SCANLINE = 8; // Can do scanlines
  2702. {$EXTERNALSYM PC_SCANLINE}
  2703. PC_WIDE = 16; // Can do wide borders
  2704. {$EXTERNALSYM PC_WIDE}
  2705. PC_STYLED = 32; // Can do styled borders
  2706. {$EXTERNALSYM PC_STYLED}
  2707. PC_WIDESTYLED = 64; // Can do wide styled borders
  2708. {$EXTERNALSYM PC_WIDESTYLED}
  2709. PC_INTERIORS = 128; // Can do interiors
  2710. {$EXTERNALSYM PC_INTERIORS}
  2711. PC_POLYPOLYGON = 256; // Can do polypolygons
  2712. {$EXTERNALSYM PC_POLYPOLYGON}
  2713. PC_PATHS = 512; // Can do paths
  2714. {$EXTERNALSYM PC_PATHS}
  2715. // Clipping Capabilities
  2716. CP_NONE = 0; // No clipping of output
  2717. {$EXTERNALSYM CP_NONE}
  2718. CP_RECTANGLE = 1; // Output clipped to rects
  2719. {$EXTERNALSYM CP_RECTANGLE}
  2720. CP_REGION = 2; // obsolete
  2721. {$EXTERNALSYM CP_REGION}
  2722. // Text Capabilities
  2723. TC_OP_CHARACTER = $00000001; // Can do OutputPrecision CHARACTER
  2724. {$EXTERNALSYM TC_OP_CHARACTER}
  2725. TC_OP_STROKE = $00000002; // Can do OutputPrecision STROKE
  2726. {$EXTERNALSYM TC_OP_STROKE}
  2727. TC_CP_STROKE = $00000004; // Can do ClipPrecision STROKE
  2728. {$EXTERNALSYM TC_CP_STROKE}
  2729. TC_CR_90 = $00000008; // Can do CharRotAbility 90
  2730. {$EXTERNALSYM TC_CR_90}
  2731. TC_CR_ANY = $00000010; // Can do CharRotAbility ANY
  2732. {$EXTERNALSYM TC_CR_ANY}
  2733. TC_SF_X_YINDEP = $00000020; // Can do ScaleFreedom X_YINDEPENDENT
  2734. {$EXTERNALSYM TC_SF_X_YINDEP}
  2735. TC_SA_DOUBLE = $00000040; // Can do ScaleAbility DOUBLE
  2736. {$EXTERNALSYM TC_SA_DOUBLE}
  2737. TC_SA_INTEGER = $00000080; // Can do ScaleAbility INTEGER
  2738. {$EXTERNALSYM TC_SA_INTEGER}
  2739. TC_SA_CONTIN = $00000100; // Can do ScaleAbility CONTINUOUS
  2740. {$EXTERNALSYM TC_SA_CONTIN}
  2741. TC_EA_DOUBLE = $00000200; // Can do EmboldenAbility DOUBLE
  2742. {$EXTERNALSYM TC_EA_DOUBLE}
  2743. TC_IA_ABLE = $00000400; // Can do ItalisizeAbility ABLE
  2744. {$EXTERNALSYM TC_IA_ABLE}
  2745. TC_UA_ABLE = $00000800; // Can do UnderlineAbility ABLE
  2746. {$EXTERNALSYM TC_UA_ABLE}
  2747. TC_SO_ABLE = $00001000; // Can do StrikeOutAbility ABLE
  2748. {$EXTERNALSYM TC_SO_ABLE}
  2749. TC_RA_ABLE = $00002000; // Can do RasterFontAble ABLE
  2750. {$EXTERNALSYM TC_RA_ABLE}
  2751. TC_VA_ABLE = $00004000; // Can do VectorFontAble ABLE
  2752. {$EXTERNALSYM TC_VA_ABLE}
  2753. TC_RESERVED = $00008000;
  2754. {$EXTERNALSYM TC_RESERVED}
  2755. TC_SCROLLBLT = $00010000; // Don't do text scroll with blt
  2756. {$EXTERNALSYM TC_SCROLLBLT}
  2757. // Raster Capabilities
  2758. RC_BITBLT = 1; // Can do standard BLT.
  2759. {$EXTERNALSYM RC_BITBLT}
  2760. RC_BANDING = 2; // Device requires banding support
  2761. {$EXTERNALSYM RC_BANDING}
  2762. RC_SCALING = 4; // Device requires scaling support
  2763. {$EXTERNALSYM RC_SCALING}
  2764. RC_BITMAP64 = 8; // Device can support >64K bitmap
  2765. {$EXTERNALSYM RC_BITMAP64}
  2766. RC_GDI20_OUTPUT = $0010; // has 2.0 output calls
  2767. {$EXTERNALSYM RC_GDI20_OUTPUT}
  2768. RC_GDI20_STATE = $0020;
  2769. {$EXTERNALSYM RC_GDI20_STATE}
  2770. RC_SAVEBITMAP = $0040;
  2771. {$EXTERNALSYM RC_SAVEBITMAP}
  2772. RC_DI_BITMAP = $0080; // supports DIB to memory
  2773. {$EXTERNALSYM RC_DI_BITMAP}
  2774. RC_PALETTE = $0100; // supports a palette
  2775. {$EXTERNALSYM RC_PALETTE}
  2776. RC_DIBTODEV = $0200; // supports DIBitsToDevice
  2777. {$EXTERNALSYM RC_DIBTODEV}
  2778. RC_BIGFONT = $0400; // supports >64K fonts
  2779. {$EXTERNALSYM RC_BIGFONT}
  2780. RC_STRETCHBLT = $0800; // supports StretchBlt
  2781. {$EXTERNALSYM RC_STRETCHBLT}
  2782. RC_FLOODFILL = $1000; // supports FloodFill
  2783. {$EXTERNALSYM RC_FLOODFILL}
  2784. RC_STRETCHDIB = $2000; // supports StretchDIBits
  2785. {$EXTERNALSYM RC_STRETCHDIB}
  2786. RC_OP_DX_OUTPUT = $4000;
  2787. {$EXTERNALSYM RC_OP_DX_OUTPUT}
  2788. RC_DEVBITS = $8000;
  2789. {$EXTERNALSYM RC_DEVBITS}
  2790. // Shading and blending caps
  2791. SB_NONE = $00000000;
  2792. {$EXTERNALSYM SB_NONE}
  2793. SB_CONST_ALPHA = $00000001;
  2794. {$EXTERNALSYM SB_CONST_ALPHA}
  2795. SB_PIXEL_ALPHA = $00000002;
  2796. {$EXTERNALSYM SB_PIXEL_ALPHA}
  2797. SB_PREMULT_ALPHA = $00000004;
  2798. {$EXTERNALSYM SB_PREMULT_ALPHA}
  2799. SB_GRAD_RECT = $00000010;
  2800. {$EXTERNALSYM SB_GRAD_RECT}
  2801. SB_GRAD_TRI = $00000020;
  2802. {$EXTERNALSYM SB_GRAD_TRI}
  2803. // Color Management caps
  2804. CM_NONE = $00000000;
  2805. {$EXTERNALSYM CM_NONE}
  2806. CM_DEVICE_ICM = $00000001;
  2807. {$EXTERNALSYM CM_DEVICE_ICM}
  2808. CM_GAMMA_RAMP = $00000002;
  2809. {$EXTERNALSYM CM_GAMMA_RAMP}
  2810. CM_CMYK_COLOR = $00000004;
  2811. {$EXTERNALSYM CM_CMYK_COLOR}
  2812. // DIB color table identifiers
  2813. DIB_RGB_COLORS = 0; // color table in RGBs
  2814. {$EXTERNALSYM DIB_RGB_COLORS}
  2815. DIB_PAL_COLORS = 1; // color table in palette indices
  2816. {$EXTERNALSYM DIB_PAL_COLORS}
  2817. // constants for Get/SetSystemPaletteUse()
  2818. SYSPAL_ERROR = 0;
  2819. {$EXTERNALSYM SYSPAL_ERROR}
  2820. SYSPAL_STATIC = 1;
  2821. {$EXTERNALSYM SYSPAL_STATIC}
  2822. SYSPAL_NOSTATIC = 2;
  2823. {$EXTERNALSYM SYSPAL_NOSTATIC}
  2824. SYSPAL_NOSTATIC256 = 3;
  2825. {$EXTERNALSYM SYSPAL_NOSTATIC256}
  2826. // constants for CreateDIBitmap
  2827. CBM_INIT = $04; // initialize bitmap
  2828. {$EXTERNALSYM CBM_INIT}
  2829. // ExtFloodFill style flags
  2830. FLOODFILLBORDER = 0;
  2831. {$EXTERNALSYM FLOODFILLBORDER}
  2832. FLOODFILLSURFACE = 1;
  2833. {$EXTERNALSYM FLOODFILLSURFACE}
  2834. // size of a device name string
  2835. CCHDEVICENAME = 32;
  2836. {$EXTERNALSYM CCHDEVICENAME}
  2837. // size of a form name string
  2838. CCHFORMNAME = 32;
  2839. {$EXTERNALSYM CCHFORMNAME}
  2840. {$IFDEF WIN98ME}
  2841. {$IFNDEF WINNT4}
  2842. {$DEFINE WIN98ME_UP_EXCEPT_NT4}
  2843. {$ENDIF !WINNT4}
  2844. {$ENDIF WIN98ME}
  2845. type
  2846. TDmDisplayFlagsUnion = record
  2847. case Integer of
  2848. 0: (
  2849. dmDisplayFlags: DWORD);
  2850. 1: (
  2851. dmNup: DWORD);
  2852. end;
  2853. _devicemodeA = record
  2854. dmDeviceName: array [0..CCHDEVICENAME - 1] of BYTE;
  2855. dmSpecVersion: WORD;
  2856. dmDriverVersion: WORD;
  2857. dmSize: WORD;
  2858. dmDriverExtra: WORD;
  2859. dmFields: DWORD;
  2860. union1: record
  2861. case Integer of
  2862. // printer only fields
  2863. 0: (
  2864. dmOrientation: Smallint;
  2865. dmPaperSize: Smallint;
  2866. dmPaperLength: Smallint;
  2867. dmPaperWidth: Smallint;
  2868. dmScale: Smallint;
  2869. dmCopies: Smallint;
  2870. dmDefaultSource: Smallint;
  2871. dmPrintQuality: Smallint);
  2872. // display only fields
  2873. 1: (
  2874. dmPosition: POINTL;
  2875. dmDisplayOrientation: DWORD;
  2876. dmDisplayFixedOutput: DWORD);
  2877. end;
  2878. dmColor: Shortint;
  2879. dmDuplex: Shortint;
  2880. dmYResolution: Shortint;
  2881. dmTTOption: Shortint;
  2882. dmCollate: Shortint;
  2883. dmFormName: array [0..CCHFORMNAME - 1] of BYTE;
  2884. dmLogPixels: WORD;
  2885. dmBitsPerPel: DWORD;
  2886. dmPelsWidth: DWORD;
  2887. dmPelsHeight: DWORD;
  2888. dmDisplayFlags: TDmDisplayFlagsUnion;
  2889. dmDisplayFrequency: DWORD;
  2890. dmICMMethod: DWORD;
  2891. dmICMIntent: DWORD;
  2892. dmMediaType: DWORD;
  2893. dmDitherType: DWORD;
  2894. dmReserved1: DWORD;
  2895. dmReserved2: DWORD;
  2896. {$IFDEF WIN98ME_UP_EXCEPT_NT4}
  2897. dmPanningWidth: DWORD;
  2898. dmPanningHeight: DWORD;
  2899. {$ENDIF WIN98ME_UP_EXCEPT_NT4}
  2900. end;
  2901. {$EXTERNALSYM _devicemodeA}
  2902. DEVMODEA = _devicemodeA;
  2903. {$EXTERNALSYM DEVMODEA}
  2904. PDEVMODEA = ^DEVMODEA;
  2905. {$EXTERNALSYM PDEVMODEA}
  2906. LPDEVMODEA = ^DEVMODEA;
  2907. {$EXTERNALSYM LPDEVMODEA}
  2908. NPDEVMODEA = ^DEVMODEA;
  2909. {$EXTERNALSYM NPDEVMODEA}
  2910. TDevModeA = _devicemodeA;
  2911. _devicemodeW = record
  2912. dmDeviceName: array [0..CCHDEVICENAME - 1] of WCHAR;
  2913. dmSpecVersion: WORD;
  2914. dmDriverVersion: WORD;
  2915. dmSize: WORD;
  2916. dmDriverExtra: WORD;
  2917. dmFields: DWORD;
  2918. union1: record
  2919. case Integer of
  2920. // printer only fields
  2921. 0: (
  2922. dmOrientation: Smallint;
  2923. dmPaperSize: Smallint;
  2924. dmPaperLength: Smallint;
  2925. dmPaperWidth: Smallint;
  2926. dmScale: Smallint;
  2927. dmCopies: Smallint;
  2928. dmDefaultSource: Smallint;
  2929. dmPrintQuality: Smallint);
  2930. // display only fields
  2931. 1: (
  2932. dmPosition: POINTL;
  2933. dmDisplayOrientation: DWORD;
  2934. dmDisplayFixedOutput: DWORD);
  2935. end;
  2936. dmColor: Shortint;
  2937. dmDuplex: Shortint;
  2938. dmYResolution: Shortint;
  2939. dmTTOption: Shortint;
  2940. dmCollate: Shortint;
  2941. dmFormName: array [0..CCHFORMNAME - 1] of WCHAR;
  2942. dmLogPixels: WORD;
  2943. dmBitsPerPel: DWORD;
  2944. dmPelsWidth: DWORD;
  2945. dmPelsHeight: DWORD;
  2946. dmDiusplayFlags: TDmDisplayFlagsUnion;
  2947. dmDisplayFrequency: DWORD;
  2948. dmICMMethod: DWORD;
  2949. dmICMIntent: DWORD;
  2950. dmMediaType: DWORD;
  2951. dmDitherType: DWORD;
  2952. dmReserved1: DWORD;
  2953. dmReserved2: DWORD;
  2954. {$IFDEF WIN98ME_UP_EXCEPT_NT4}
  2955. dmPanningWidth: DWORD;
  2956. dmPanningHeight: DWORD;
  2957. {$ENDIF WIN98ME_UP_EXCEPT_NT4}
  2958. end;
  2959. {$EXTERNALSYM _devicemodeW}
  2960. DEVMODEW = _devicemodeW;
  2961. {$EXTERNALSYM DEVMODEW}
  2962. PDEVMODEW = ^DEVMODEW;
  2963. {$EXTERNALSYM PDEVMODEW}
  2964. LPDEVMODEW = ^DEVMODEW;
  2965. {$EXTERNALSYM LPDEVMODEW}
  2966. NPDEVMODEW = ^DEVMODEW;
  2967. {$EXTERNALSYM NPDEVMODEW}
  2968. TDevModeW = _devicemodeW;
  2969. {$IFDEF UNICODE}
  2970. DEVMODE = DEVMODEW;
  2971. {$EXTERNALSYM DEVMODE}
  2972. PDEVMODE = PDEVMODEW;
  2973. {$EXTERNALSYM PDEVMODE}
  2974. NPDEVMODE = NPDEVMODEW;
  2975. {$EXTERNALSYM NPDEVMODE}
  2976. LPDEVMODE = LPDEVMODEW;
  2977. {$EXTERNALSYM LPDEVMODE}
  2978. TDevMode = TDevModeW;
  2979. {$ELSE}
  2980. DEVMODE = DEVMODEA;
  2981. {$EXTERNALSYM DEVMODE}
  2982. PDEVMODE = PDEVMODEA;
  2983. {$EXTERNALSYM PDEVMODE}
  2984. NPDEVMODE = NPDEVMODEA;
  2985. {$EXTERNALSYM NPDEVMODE}
  2986. LPDEVMODE = LPDEVMODEA;
  2987. {$EXTERNALSYM LPDEVMODE}
  2988. TDevMode = TDevModeA;
  2989. {$ENDIF UNICODE}
  2990. // current version of specification
  2991. const
  2992. {$IFDEF WIN98ME_UP_EXCEPT_NT4}
  2993. DM_SPECVERSION = $0401;
  2994. {$EXTERNALSYM DM_SPECVERSION}
  2995. {$ELSE}
  2996. DM_SPECVERSION = $0400;
  2997. {$EXTERNALSYM DM_SPECVERSION}
  2998. {$ENDIF WIN98ME_UP_EXCEPT_NT4}
  2999. {$UNDEF WIN98ME_UP_EXCEPT_NT4}
  3000. // field selection bits
  3001. const
  3002. DM_ORIENTATION = $00000001;
  3003. {$EXTERNALSYM DM_ORIENTATION}
  3004. DM_PAPERSIZE = $00000002;
  3005. {$EXTERNALSYM DM_PAPERSIZE}
  3006. DM_PAPERLENGTH = $00000004;
  3007. {$EXTERNALSYM DM_PAPERLENGTH}
  3008. DM_PAPERWIDTH = $00000008;
  3009. {$EXTERNALSYM DM_PAPERWIDTH}
  3010. DM_SCALE = $00000010;
  3011. {$EXTERNALSYM DM_SCALE}
  3012. DM_POSITION = $00000020;
  3013. {$EXTERNALSYM DM_POSITION}
  3014. DM_NUP = $00000040;
  3015. {$EXTERNALSYM DM_NUP}
  3016. //#if(WINVER >= 0x0501)
  3017. DM_DISPLAYORIENTATION = $00000080;
  3018. {$EXTERNALSYM DM_DISPLAYORIENTATION}
  3019. //#endif /* WINVER >= 0x0501 */
  3020. DM_COPIES = $00000100;
  3021. {$EXTERNALSYM DM_COPIES}
  3022. DM_DEFAULTSOURCE = $00000200;
  3023. {$EXTERNALSYM DM_DEFAULTSOURCE}
  3024. DM_PRINTQUALITY = $00000400;
  3025. {$EXTERNALSYM DM_PRINTQUALITY}
  3026. DM_COLOR = $00000800;
  3027. {$EXTERNALSYM DM_COLOR}
  3028. DM_DUPLEX = $00001000;
  3029. {$EXTERNALSYM DM_DUPLEX}
  3030. DM_YRESOLUTION = $00002000;
  3031. {$EXTERNALSYM DM_YRESOLUTION}
  3032. DM_TTOPTION = $00004000;
  3033. {$EXTERNALSYM DM_TTOPTION}
  3034. DM_COLLATE = $00008000;
  3035. {$EXTERNALSYM DM_COLLATE}
  3036. DM_FORMNAME = $00010000;
  3037. {$EXTERNALSYM DM_FORMNAME}
  3038. DM_LOGPIXELS = $00020000;
  3039. {$EXTERNALSYM DM_LOGPIXELS}
  3040. DM_BITSPERPEL = $00040000;
  3041. {$EXTERNALSYM DM_BITSPERPEL}
  3042. DM_PELSWIDTH = $00080000;
  3043. {$EXTERNALSYM DM_PELSWIDTH}
  3044. DM_PELSHEIGHT = $00100000;
  3045. {$EXTERNALSYM DM_PELSHEIGHT}
  3046. DM_DISPLAYFLAGS = $00200000;
  3047. {$EXTERNALSYM DM_DISPLAYFLAGS}
  3048. DM_DISPLAYFREQUENCY = $00400000;
  3049. {$EXTERNALSYM DM_DISPLAYFREQUENCY}
  3050. DM_ICMMETHOD = $00800000;
  3051. {$EXTERNALSYM DM_ICMMETHOD}
  3052. DM_ICMINTENT = $01000000;
  3053. {$EXTERNALSYM DM_ICMINTENT}
  3054. DM_MEDIATYPE = $02000000;
  3055. {$EXTERNALSYM DM_MEDIATYPE}
  3056. DM_DITHERTYPE = $04000000;
  3057. {$EXTERNALSYM DM_DITHERTYPE}
  3058. DM_PANNINGWIDTH = $08000000;
  3059. {$EXTERNALSYM DM_PANNINGWIDTH}
  3060. DM_PANNINGHEIGHT = $10000000;
  3061. {$EXTERNALSYM DM_PANNINGHEIGHT}
  3062. //#if(WINVER >= 0x0501)
  3063. DM_DISPLAYFIXEDOUTPUT = $20000000;
  3064. {$EXTERNALSYM DM_DISPLAYFIXEDOUTPUT}
  3065. //#endif /* WINVER >= 0x0501 */
  3066. // orientation selections
  3067. DMORIENT_PORTRAIT = 1;
  3068. {$EXTERNALSYM DMORIENT_PORTRAIT}
  3069. DMORIENT_LANDSCAPE = 2;
  3070. {$EXTERNALSYM DMORIENT_LANDSCAPE}
  3071. // paper selections
  3072. DMPAPER_LETTER = 1; // Letter 8 1/2 x 11 in
  3073. {$EXTERNALSYM DMPAPER_LETTER}
  3074. DMPAPER_FIRST = DMPAPER_LETTER;
  3075. {$EXTERNALSYM DMPAPER_FIRST}
  3076. DMPAPER_LETTERSMALL = 2; // Letter Small 8 1/2 x 11 in
  3077. {$EXTERNALSYM DMPAPER_LETTERSMALL}
  3078. DMPAPER_TABLOID = 3; // Tabloid 11 x 17 in
  3079. {$EXTERNALSYM DMPAPER_TABLOID}
  3080. DMPAPER_LEDGER = 4; // Ledger 17 x 11 in
  3081. {$EXTERNALSYM DMPAPER_LEDGER}
  3082. DMPAPER_LEGAL = 5; // Legal 8 1/2 x 14 in
  3083. {$EXTERNALSYM DMPAPER_LEGAL}
  3084. DMPAPER_STATEMENT = 6; // Statement 5 1/2 x 8 1/2 in
  3085. {$EXTERNALSYM DMPAPER_STATEMENT}
  3086. DMPAPER_EXECUTIVE = 7; // Executive 7 1/4 x 10 1/2 in
  3087. {$EXTERNALSYM DMPAPER_EXECUTIVE}
  3088. DMPAPER_A3 = 8; // A3 297 x 420 mm
  3089. {$EXTERNALSYM DMPAPER_A3}
  3090. DMPAPER_A4 = 9; // A4 210 x 297 mm
  3091. {$EXTERNALSYM DMPAPER_A4}
  3092. DMPAPER_A4SMALL = 10; // A4 Small 210 x 297 mm
  3093. {$EXTERNALSYM DMPAPER_A4SMALL}
  3094. DMPAPER_A5 = 11; // A5 148 x 210 mm
  3095. {$EXTERNALSYM DMPAPER_A5}
  3096. DMPAPER_B4 = 12; // B4 (JIS) 250 x 354
  3097. {$EXTERNALSYM DMPAPER_B4}
  3098. DMPAPER_B5 = 13; // B5 (JIS) 182 x 257 mm
  3099. {$EXTERNALSYM DMPAPER_B5}
  3100. DMPAPER_FOLIO = 14; // Folio 8 1/2 x 13 in
  3101. {$EXTERNALSYM DMPAPER_FOLIO}
  3102. DMPAPER_QUARTO = 15; // Quarto 215 x 275 mm
  3103. {$EXTERNALSYM DMPAPER_QUARTO}
  3104. DMPAPER_10X14 = 16; // 10x14 in
  3105. {$EXTERNALSYM DMPAPER_10X14}
  3106. DMPAPER_11X17 = 17; // 11x17 in
  3107. {$EXTERNALSYM DMPAPER_11X17}
  3108. DMPAPER_NOTE = 18; // Note 8 1/2 x 11 in
  3109. {$EXTERNALSYM DMPAPER_NOTE}
  3110. DMPAPER_ENV_9 = 19; // Envelope #9 3 7/8 x 8 7/8
  3111. {$EXTERNALSYM DMPAPER_ENV_9}
  3112. DMPAPER_ENV_10 = 20; // Envelope #10 4 1/8 x 9 1/2
  3113. {$EXTERNALSYM DMPAPER_ENV_10}
  3114. DMPAPER_ENV_11 = 21; // Envelope #11 4 1/2 x 10 3/8
  3115. {$EXTERNALSYM DMPAPER_ENV_11}
  3116. DMPAPER_ENV_12 = 22; // Envelope #12 4 \276 x 11
  3117. {$EXTERNALSYM DMPAPER_ENV_12}
  3118. DMPAPER_ENV_14 = 23; // Envelope #14 5 x 11 1/2
  3119. {$EXTERNALSYM DMPAPER_ENV_14}
  3120. DMPAPER_CSHEET = 24; // C size sheet
  3121. {$EXTERNALSYM DMPAPER_CSHEET}
  3122. DMPAPER_DSHEET = 25; // D size sheet
  3123. {$EXTERNALSYM DMPAPER_DSHEET}
  3124. DMPAPER_ESHEET = 26; // E size sheet
  3125. {$EXTERNALSYM DMPAPER_ESHEET}
  3126. DMPAPER_ENV_DL = 27; // Envelope DL 110 x 220mm
  3127. {$EXTERNALSYM DMPAPER_ENV_DL}
  3128. DMPAPER_ENV_C5 = 28; // Envelope C5 162 x 229 mm
  3129. {$EXTERNALSYM DMPAPER_ENV_C5}
  3130. DMPAPER_ENV_C3 = 29; // Envelope C3 324 x 458 mm
  3131. {$EXTERNALSYM DMPAPER_ENV_C3}
  3132. DMPAPER_ENV_C4 = 30; // Envelope C4 229 x 324 mm
  3133. {$EXTERNALSYM DMPAPER_ENV_C4}
  3134. DMPAPER_ENV_C6 = 31; // Envelope C6 114 x 162 mm
  3135. {$EXTERNALSYM DMPAPER_ENV_C6}
  3136. DMPAPER_ENV_C65 = 32; // Envelope C65 114 x 229 mm
  3137. {$EXTERNALSYM DMPAPER_ENV_C65}
  3138. DMPAPER_ENV_B4 = 33; // Envelope B4 250 x 353 mm
  3139. {$EXTERNALSYM DMPAPER_ENV_B4}
  3140. DMPAPER_ENV_B5 = 34; // Envelope B5 176 x 250 mm
  3141. {$EXTERNALSYM DMPAPER_ENV_B5}
  3142. DMPAPER_ENV_B6 = 35; // Envelope B6 176 x 125 mm
  3143. {$EXTERNALSYM DMPAPER_ENV_B6}
  3144. DMPAPER_ENV_ITALY = 36; // Envelope 110 x 230 mm
  3145. {$EXTERNALSYM DMPAPER_ENV_ITALY}
  3146. DMPAPER_ENV_MONARCH = 37; // Envelope Monarch 3.875 x 7.5 in
  3147. {$EXTERNALSYM DMPAPER_ENV_MONARCH}
  3148. DMPAPER_ENV_PERSONAL = 38; // 6 3/4 Envelope 3 5/8 x 6 1/2 in
  3149. {$EXTERNALSYM DMPAPER_ENV_PERSONAL}
  3150. DMPAPER_FANFOLD_US = 39; // US Std Fanfold 14 7/8 x 11 in
  3151. {$EXTERNALSYM DMPAPER_FANFOLD_US}
  3152. DMPAPER_FANFOLD_STD_GERMAN = 40; // German Std Fanfold 8 1/2 x 12 in
  3153. {$EXTERNALSYM DMPAPER_FANFOLD_STD_GERMAN}
  3154. DMPAPER_FANFOLD_LGL_GERMAN = 41; // German Legal Fanfold 8 1/2 x 13 in
  3155. {$EXTERNALSYM DMPAPER_FANFOLD_LGL_GERMAN}
  3156. DMPAPER_ISO_B4 = 42; // B4 (ISO) 250 x 353 mm
  3157. {$EXTERNALSYM DMPAPER_ISO_B4}
  3158. DMPAPER_JAPANESE_POSTCARD = 43; // Japanese Postcard 100 x 148 mm
  3159. {$EXTERNALSYM DMPAPER_JAPANESE_POSTCARD}
  3160. DMPAPER_9X11 = 44; // 9 x 11 in
  3161. {$EXTERNALSYM DMPAPER_9X11}
  3162. DMPAPER_10X11 = 45; // 10 x 11 in
  3163. {$EXTERNALSYM DMPAPER_10X11}
  3164. DMPAPER_15X11 = 46; // 15 x 11 in
  3165. {$EXTERNALSYM DMPAPER_15X11}
  3166. DMPAPER_ENV_INVITE = 47; // Envelope Invite 220 x 220 mm
  3167. {$EXTERNALSYM DMPAPER_ENV_INVITE}
  3168. DMPAPER_RESERVED_48 = 48; // RESERVED--DO NOT USE
  3169. {$EXTERNALSYM DMPAPER_RESERVED_48}
  3170. DMPAPER_RESERVED_49 = 49; // RESERVED--DO NOT USE
  3171. {$EXTERNALSYM DMPAPER_RESERVED_49}
  3172. DMPAPER_LETTER_EXTRA = 50; // Letter Extra 9 \275 x 12 in
  3173. {$EXTERNALSYM DMPAPER_LETTER_EXTRA}
  3174. DMPAPER_LEGAL_EXTRA = 51; // Legal Extra 9 \275 x 15 in
  3175. {$EXTERNALSYM DMPAPER_LEGAL_EXTRA}
  3176. DMPAPER_TABLOID_EXTRA = 52; // Tabloid Extra 11.69 x 18 in
  3177. {$EXTERNALSYM DMPAPER_TABLOID_EXTRA}
  3178. DMPAPER_A4_EXTRA = 53; // A4 Extra 9.27 x 12.69 in
  3179. {$EXTERNALSYM DMPAPER_A4_EXTRA}
  3180. DMPAPER_LETTER_TRANSVERSE = 54; // Letter Transverse 8 \275 x 11 in
  3181. {$EXTERNALSYM DMPAPER_LETTER_TRANSVERSE}
  3182. DMPAPER_A4_TRANSVERSE = 55; // A4 Transverse 210 x 297 mm
  3183. {$EXTERNALSYM DMPAPER_A4_TRANSVERSE}
  3184. DMPAPER_LETTER_EXTRA_TRANSVERSE = 56; // Letter Extra Transverse 9\275 x 12 in
  3185. {$EXTERNALSYM DMPAPER_LETTER_EXTRA_TRANSVERSE}
  3186. DMPAPER_A_PLUS = 57; // SuperA/SuperA/A4 227 x 356 mm
  3187. {$EXTERNALSYM DMPAPER_A_PLUS}
  3188. DMPAPER_B_PLUS = 58; // SuperB/SuperB/A3 305 x 487 mm
  3189. {$EXTERNALSYM DMPAPER_B_PLUS}
  3190. DMPAPER_LETTER_PLUS = 59; // Letter Plus 8.5 x 12.69 in
  3191. {$EXTERNALSYM DMPAPER_LETTER_PLUS}
  3192. DMPAPER_A4_PLUS = 60; // A4 Plus 210 x 330 mm
  3193. {$EXTERNALSYM DMPAPER_A4_PLUS}
  3194. DMPAPER_A5_TRANSVERSE = 61; // A5 Transverse 148 x 210 mm
  3195. {$EXTERNALSYM DMPAPER_A5_TRANSVERSE}
  3196. DMPAPER_B5_TRANSVERSE = 62; // B5 (JIS) Transverse 182 x 257 mm
  3197. {$EXTERNALSYM DMPAPER_B5_TRANSVERSE}
  3198. DMPAPER_A3_EXTRA = 63; // A3 Extra 322 x 445 mm
  3199. {$EXTERNALSYM DMPAPER_A3_EXTRA}
  3200. DMPAPER_A5_EXTRA = 64; // A5 Extra 174 x 235 mm
  3201. {$EXTERNALSYM DMPAPER_A5_EXTRA}
  3202. DMPAPER_B5_EXTRA = 65; // B5 (ISO) Extra 201 x 276 mm
  3203. {$EXTERNALSYM DMPAPER_B5_EXTRA}
  3204. DMPAPER_A2 = 66; // A2 420 x 594 mm
  3205. {$EXTERNALSYM DMPAPER_A2}
  3206. DMPAPER_A3_TRANSVERSE = 67; // A3 Transverse 297 x 420 mm
  3207. {$EXTERNALSYM DMPAPER_A3_TRANSVERSE}
  3208. DMPAPER_A3_EXTRA_TRANSVERSE = 68; // A3 Extra Transverse 322 x 445 mm
  3209. {$EXTERNALSYM DMPAPER_A3_EXTRA_TRANSVERSE}
  3210. DMPAPER_DBL_JAPANESE_POSTCARD = 69; // Japanese Double Postcard 200 x 148 mm
  3211. {$EXTERNALSYM DMPAPER_DBL_JAPANESE_POSTCARD}
  3212. DMPAPER_A6 = 70; // A6 105 x 148 mm
  3213. {$EXTERNALSYM DMPAPER_A6}
  3214. DMPAPER_JENV_KAKU2 = 71; // Japanese Envelope Kaku #2
  3215. {$EXTERNALSYM DMPAPER_JENV_KAKU2}
  3216. DMPAPER_JENV_KAKU3 = 72; // Japanese Envelope Kaku #3
  3217. {$EXTERNALSYM DMPAPER_JENV_KAKU3}
  3218. DMPAPER_JENV_CHOU3 = 73; // Japanese Envelope Chou #3
  3219. {$EXTERNALSYM DMPAPER_JENV_CHOU3}
  3220. DMPAPER_JENV_CHOU4 = 74; // Japanese Envelope Chou #4
  3221. {$EXTERNALSYM DMPAPER_JENV_CHOU4}
  3222. DMPAPER_LETTER_ROTATED = 75; // Letter Rotated 11 x 8 1/2 11 in
  3223. {$EXTERNALSYM DMPAPER_LETTER_ROTATED}
  3224. DMPAPER_A3_ROTATED = 76; // A3 Rotated 420 x 297 mm
  3225. {$EXTERNALSYM DMPAPER_A3_ROTATED}
  3226. DMPAPER_A4_ROTATED = 77; // A4 Rotated 297 x 210 mm
  3227. {$EXTERNALSYM DMPAPER_A4_ROTATED}
  3228. DMPAPER_A5_ROTATED = 78; // A5 Rotated 210 x 148 mm
  3229. {$EXTERNALSYM DMPAPER_A5_ROTATED}
  3230. DMPAPER_B4_JIS_ROTATED = 79; // B4 (JIS) Rotated 364 x 257 mm
  3231. {$EXTERNALSYM DMPAPER_B4_JIS_ROTATED}
  3232. DMPAPER_B5_JIS_ROTATED = 80; // B5 (JIS) Rotated 257 x 182 mm
  3233. {$EXTERNALSYM DMPAPER_B5_JIS_ROTATED}
  3234. DMPAPER_JAPANESE_POSTCARD_ROTATED = 81; // Japanese Postcard Rotated 148 x 100 mm
  3235. {$EXTERNALSYM DMPAPER_JAPANESE_POSTCARD_ROTATED}
  3236. DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82; // Double Japanese Postcard Rotated 148 x 200 mm
  3237. {$EXTERNALSYM DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED}
  3238. DMPAPER_A6_ROTATED = 83; // A6 Rotated 148 x 105 mm
  3239. {$EXTERNALSYM DMPAPER_A6_ROTATED}
  3240. DMPAPER_JENV_KAKU2_ROTATED = 84; // Japanese Envelope Kaku #2 Rotated
  3241. {$EXTERNALSYM DMPAPER_JENV_KAKU2_ROTATED}
  3242. DMPAPER_JENV_KAKU3_ROTATED = 85; // Japanese Envelope Kaku #3 Rotated
  3243. {$EXTERNALSYM DMPAPER_JENV_KAKU3_ROTATED}
  3244. DMPAPER_JENV_CHOU3_ROTATED = 86; // Japanese Envelope Chou #3 Rotated
  3245. {$EXTERNALSYM DMPAPER_JENV_CHOU3_ROTATED}
  3246. DMPAPER_JENV_CHOU4_ROTATED = 87; // Japanese Envelope Chou #4 Rotated
  3247. {$EXTERNALSYM DMPAPER_JENV_CHOU4_ROTATED}
  3248. DMPAPER_B6_JIS = 88; // B6 (JIS) 128 x 182 mm
  3249. {$EXTERNALSYM DMPAPER_B6_JIS}
  3250. DMPAPER_B6_JIS_ROTATED = 89; // B6 (JIS) Rotated 182 x 128 mm
  3251. {$EXTERNALSYM DMPAPER_B6_JIS_ROTATED}
  3252. DMPAPER_12X11 = 90; // 12 x 11 in
  3253. {$EXTERNALSYM DMPAPER_12X11}
  3254. DMPAPER_JENV_YOU4 = 91; // Japanese Envelope You #4
  3255. {$EXTERNALSYM DMPAPER_JENV_YOU4}
  3256. DMPAPER_JENV_YOU4_ROTATED = 92; // Japanese Envelope You #4 Rotated
  3257. {$EXTERNALSYM DMPAPER_JENV_YOU4_ROTATED}
  3258. DMPAPER_P16K = 93; // PRC 16K 146 x 215 mm
  3259. {$EXTERNALSYM DMPAPER_P16K}
  3260. DMPAPER_P32K = 94; // PRC 32K 97 x 151 mm
  3261. {$EXTERNALSYM DMPAPER_P32K}
  3262. DMPAPER_P32KBIG = 95; // PRC 32K(Big) 97 x 151 mm
  3263. {$EXTERNALSYM DMPAPER_P32KBIG}
  3264. DMPAPER_PENV_1 = 96; // PRC Envelope #1 102 x 165 mm
  3265. {$EXTERNALSYM DMPAPER_PENV_1}
  3266. DMPAPER_PENV_2 = 97; // PRC Envelope #2 102 x 176 mm
  3267. {$EXTERNALSYM DMPAPER_PENV_2}
  3268. DMPAPER_PENV_3 = 98; // PRC Envelope #3 125 x 176 mm
  3269. {$EXTERNALSYM DMPAPER_PENV_3}
  3270. DMPAPER_PENV_4 = 99; // PRC Envelope #4 110 x 208 mm
  3271. {$EXTERNALSYM DMPAPER_PENV_4}
  3272. DMPAPER_PENV_5 = 100; // PRC Envelope #5 110 x 220 mm
  3273. {$EXTERNALSYM DMPAPER_PENV_5}
  3274. DMPAPER_PENV_6 = 101; // PRC Envelope #6 120 x 230 mm
  3275. {$EXTERNALSYM DMPAPER_PENV_6}
  3276. DMPAPER_PENV_7 = 102; // PRC Envelope #7 160 x 230 mm
  3277. {$EXTERNALSYM DMPAPER_PENV_7}
  3278. DMPAPER_PENV_8 = 103; // PRC Envelope #8 120 x 309 mm
  3279. {$EXTERNALSYM DMPAPER_PENV_8}
  3280. DMPAPER_PENV_9 = 104; // PRC Envelope #9 229 x 324 mm
  3281. {$EXTERNALSYM DMPAPER_PENV_9}
  3282. DMPAPER_PENV_10 = 105; // PRC Envelope #10 324 x 458 mm
  3283. {$EXTERNALSYM DMPAPER_PENV_10}
  3284. DMPAPER_P16K_ROTATED = 106; // PRC 16K Rotated
  3285. {$EXTERNALSYM DMPAPER_P16K_ROTATED}
  3286. DMPAPER_P32K_ROTATED = 107; // PRC 32K Rotated
  3287. {$EXTERNALSYM DMPAPER_P32K_ROTATED}
  3288. DMPAPER_P32KBIG_ROTATED = 108; // PRC 32K(Big) Rotated
  3289. {$EXTERNALSYM DMPAPER_P32KBIG_ROTATED}
  3290. DMPAPER_PENV_1_ROTATED = 109; // PRC Envelope #1 Rotated 165 x 102 mm
  3291. {$EXTERNALSYM DMPAPER_PENV_1_ROTATED}
  3292. DMPAPER_PENV_2_ROTATED = 110; // PRC Envelope #2 Rotated 176 x 102 mm
  3293. {$EXTERNALSYM DMPAPER_PENV_2_ROTATED}
  3294. DMPAPER_PENV_3_ROTATED = 111; // PRC Envelope #3 Rotated 176 x 125 mm
  3295. {$EXTERNALSYM DMPAPER_PENV_3_ROTATED}
  3296. DMPAPER_PENV_4_ROTATED = 112; // PRC Envelope #4 Rotated 208 x 110 mm
  3297. {$EXTERNALSYM DMPAPER_PENV_4_ROTATED}
  3298. DMPAPER_PENV_5_ROTATED = 113; // PRC Envelope #5 Rotated 220 x 110 mm
  3299. {$EXTERNALSYM DMPAPER_PENV_5_ROTATED}
  3300. DMPAPER_PENV_6_ROTATED = 114; // PRC Envelope #6 Rotated 230 x 120 mm
  3301. {$EXTERNALSYM DMPAPER_PENV_6_ROTATED}
  3302. DMPAPER_PENV_7_ROTATED = 115; // PRC Envelope #7 Rotated 230 x 160 mm
  3303. {$EXTERNALSYM DMPAPER_PENV_7_ROTATED}
  3304. DMPAPER_PENV_8_ROTATED = 116; // PRC Envelope #8 Rotated 309 x 120 mm
  3305. {$EXTERNALSYM DMPAPER_PENV_8_ROTATED}
  3306. DMPAPER_PENV_9_ROTATED = 117; // PRC Envelope #9 Rotated 324 x 229 mm
  3307. {$EXTERNALSYM DMPAPER_PENV_9_ROTATED}
  3308. DMPAPER_PENV_10_ROTATED = 118; // PRC Envelope #10 Rotated 458 x 324 mm
  3309. {$EXTERNALSYM DMPAPER_PENV_10_ROTATED}
  3310. {$IFDEF WIN98ME_UP}
  3311. DMPAPER_LAST = DMPAPER_PENV_10_ROTATED;
  3312. {$EXTERNALSYM DMPAPER_LAST}
  3313. {$ELSE}
  3314. DMPAPER_LAST = DMPAPER_A3_EXTRA_TRANSVERSE;
  3315. {$EXTERNALSYM DMPAPER_LAST}
  3316. {$ENDIF WIN98ME_UP}
  3317. DMPAPER_USER = 256;
  3318. {$EXTERNALSYM DMPAPER_USER}
  3319. // bin selections
  3320. DMBIN_UPPER = 1;
  3321. {$EXTERNALSYM DMBIN_UPPER}
  3322. DMBIN_FIRST = DMBIN_UPPER;
  3323. {$EXTERNALSYM DMBIN_FIRST}
  3324. DMBIN_ONLYONE = 1;
  3325. {$EXTERNALSYM DMBIN_ONLYONE}
  3326. DMBIN_LOWER = 2;
  3327. {$EXTERNALSYM DMBIN_LOWER}
  3328. DMBIN_MIDDLE = 3;
  3329. {$EXTERNALSYM DMBIN_MIDDLE}
  3330. DMBIN_MANUAL = 4;
  3331. {$EXTERNALSYM DMBIN_MANUAL}
  3332. DMBIN_ENVELOPE = 5;
  3333. {$EXTERNALSYM DMBIN_ENVELOPE}
  3334. DMBIN_ENVMANUAL = 6;
  3335. {$EXTERNALSYM DMBIN_ENVMANUAL}
  3336. DMBIN_AUTO = 7;
  3337. {$EXTERNALSYM DMBIN_AUTO}
  3338. DMBIN_TRACTOR = 8;
  3339. {$EXTERNALSYM DMBIN_TRACTOR}
  3340. DMBIN_SMALLFMT = 9;
  3341. {$EXTERNALSYM DMBIN_SMALLFMT}
  3342. DMBIN_LARGEFMT = 10;
  3343. {$EXTERNALSYM DMBIN_LARGEFMT}
  3344. DMBIN_LARGECAPACITY = 11;
  3345. {$EXTERNALSYM DMBIN_LARGECAPACITY}
  3346. DMBIN_CASSETTE = 14;
  3347. {$EXTERNALSYM DMBIN_CASSETTE}
  3348. DMBIN_FORMSOURCE = 15;
  3349. {$EXTERNALSYM DMBIN_FORMSOURCE}
  3350. DMBIN_LAST = DMBIN_FORMSOURCE;
  3351. {$EXTERNALSYM DMBIN_LAST}
  3352. DMBIN_USER = 256; // device specific bins start here
  3353. {$EXTERNALSYM DMBIN_USER}
  3354. // print qualities
  3355. DMRES_DRAFT = DWORD(-1);
  3356. {$EXTERNALSYM DMRES_DRAFT}
  3357. DMRES_LOW = DWORD(-2);
  3358. {$EXTERNALSYM DMRES_LOW}
  3359. DMRES_MEDIUM = DWORD(-3);
  3360. {$EXTERNALSYM DMRES_MEDIUM}
  3361. DMRES_HIGH = DWORD(-4);
  3362. {$EXTERNALSYM DMRES_HIGH}
  3363. // color enable/disable for color printers
  3364. DMCOLOR_MONOCHROME = 1;
  3365. {$EXTERNALSYM DMCOLOR_MONOCHROME}
  3366. DMCOLOR_COLOR = 2;
  3367. {$EXTERNALSYM DMCOLOR_COLOR}
  3368. // duplex enable
  3369. DMDUP_SIMPLEX = 1;
  3370. {$EXTERNALSYM DMDUP_SIMPLEX}
  3371. DMDUP_VERTICAL = 2;
  3372. {$EXTERNALSYM DMDUP_VERTICAL}
  3373. DMDUP_HORIZONTAL = 3;
  3374. {$EXTERNALSYM DMDUP_HORIZONTAL}
  3375. // TrueType options
  3376. DMTT_BITMAP = 1; // print TT fonts as graphics
  3377. {$EXTERNALSYM DMTT_BITMAP}
  3378. DMTT_DOWNLOAD = 2; // download TT fonts as soft fonts
  3379. {$EXTERNALSYM DMTT_DOWNLOAD}
  3380. DMTT_SUBDEV = 3; // substitute device fonts for TT fonts
  3381. {$EXTERNALSYM DMTT_SUBDEV}
  3382. DMTT_DOWNLOAD_OUTLINE = 4; // download TT fonts as outline soft fonts
  3383. {$EXTERNALSYM DMTT_DOWNLOAD_OUTLINE}
  3384. // Collation selections
  3385. DMCOLLATE_FALSE = 0;
  3386. {$EXTERNALSYM DMCOLLATE_FALSE}
  3387. DMCOLLATE_TRUE = 1;
  3388. {$EXTERNALSYM DMCOLLATE_TRUE}
  3389. //#if(WINVER >= 0x0501)
  3390. // DEVMODE dmDisplayOrientation specifiations
  3391. DMDO_DEFAULT = 0;
  3392. {$EXTERNALSYM DMDO_DEFAULT}
  3393. DMDO_90 = 1;
  3394. {$EXTERNALSYM DMDO_90}
  3395. DMDO_180 = 2;
  3396. {$EXTERNALSYM DMDO_180}
  3397. DMDO_270 = 3;
  3398. {$EXTERNALSYM DMDO_270}
  3399. // DEVMODE dmDisplayFixedOutput specifiations
  3400. DMDFO_DEFAULT = 0;
  3401. {$EXTERNALSYM DMDFO_DEFAULT}
  3402. DMDFO_STRETCH = 1;
  3403. {$EXTERNALSYM DMDFO_STRETCH}
  3404. DMDFO_CENTER = 2;
  3405. {$EXTERNALSYM DMDFO_CENTER}
  3406. //#endif /* WINVER >= 0x0501 */
  3407. // DEVMODE dmDisplayFlags flags
  3408. // #define DM_GRAYSCALE 0x00000001 /* This flag is no longer valid */
  3409. // #define DM_INTERLACED 0x00000002 /* This flag is no longer valid */
  3410. DMDISPLAYFLAGS_TEXTMODE = $00000004;
  3411. {$EXTERNALSYM DMDISPLAYFLAGS_TEXTMODE}
  3412. // dmNup , multiple logical page per physical page options
  3413. DMNUP_SYSTEM = 1;
  3414. {$EXTERNALSYM DMNUP_SYSTEM}
  3415. DMNUP_ONEUP = 2;
  3416. {$EXTERNALSYM DMNUP_ONEUP}
  3417. // ICM methods
  3418. DMICMMETHOD_NONE = 1; // ICM disabled
  3419. {$EXTERNALSYM DMICMMETHOD_NONE}
  3420. DMICMMETHOD_SYSTEM = 2; // ICM handled by system
  3421. {$EXTERNALSYM DMICMMETHOD_SYSTEM}
  3422. DMICMMETHOD_DRIVER = 3; // ICM handled by driver
  3423. {$EXTERNALSYM DMICMMETHOD_DRIVER}
  3424. DMICMMETHOD_DEVICE = 4; // ICM handled by device
  3425. {$EXTERNALSYM DMICMMETHOD_DEVICE}
  3426. DMICMMETHOD_USER = 256; // Device-specific methods start here
  3427. {$EXTERNALSYM DMICMMETHOD_USER}
  3428. // ICM Intents
  3429. DMICM_SATURATE = 1; // Maximize color saturation
  3430. {$EXTERNALSYM DMICM_SATURATE}
  3431. DMICM_CONTRAST = 2; // Maximize color contrast
  3432. {$EXTERNALSYM DMICM_CONTRAST}
  3433. DMICM_COLORIMETRIC = 3; // Use specific color metric
  3434. {$EXTERNALSYM DMICM_COLORIMETRIC}
  3435. DMICM_ABS_COLORIMETRIC = 4; // Use specific color metric
  3436. {$EXTERNALSYM DMICM_ABS_COLORIMETRIC}
  3437. DMICM_USER = 256; // Device-specific intents start here
  3438. {$EXTERNALSYM DMICM_USER}
  3439. // Media types
  3440. DMMEDIA_STANDARD = 1; // Standard paper
  3441. {$EXTERNALSYM DMMEDIA_STANDARD}
  3442. DMMEDIA_TRANSPARENCY = 2; // Transparency
  3443. {$EXTERNALSYM DMMEDIA_TRANSPARENCY}
  3444. DMMEDIA_GLOSSY = 3; // Glossy paper
  3445. {$EXTERNALSYM DMMEDIA_GLOSSY}
  3446. DMMEDIA_USER = 256; // Device-specific media start here
  3447. {$EXTERNALSYM DMMEDIA_USER}
  3448. // Dither types
  3449. DMDITHER_NONE = 1; // No dithering
  3450. {$EXTERNALSYM DMDITHER_NONE}
  3451. DMDITHER_COARSE = 2; // Dither with a coarse brush
  3452. {$EXTERNALSYM DMDITHER_COARSE}
  3453. DMDITHER_FINE = 3; // Dither with a fine brush
  3454. {$EXTERNALSYM DMDITHER_FINE}
  3455. DMDITHER_LINEART = 4; // LineArt dithering
  3456. {$EXTERNALSYM DMDITHER_LINEART}
  3457. DMDITHER_ERRORDIFFUSION = 5; // LineArt dithering
  3458. {$EXTERNALSYM DMDITHER_ERRORDIFFUSION}
  3459. DMDITHER_RESERVED6 = 6; // LineArt dithering
  3460. {$EXTERNALSYM DMDITHER_RESERVED6}
  3461. DMDITHER_RESERVED7 = 7; // LineArt dithering
  3462. {$EXTERNALSYM DMDITHER_RESERVED7}
  3463. DMDITHER_RESERVED8 = 8; // LineArt dithering
  3464. {$EXTERNALSYM DMDITHER_RESERVED8}
  3465. DMDITHER_RESERVED9 = 9; // LineArt dithering
  3466. {$EXTERNALSYM DMDITHER_RESERVED9}
  3467. DMDITHER_GRAYSCALE = 10; // Device does grayscaling
  3468. {$EXTERNALSYM DMDITHER_GRAYSCALE}
  3469. DMDITHER_USER = 256; // Device-specific dithers start here
  3470. {$EXTERNALSYM DMDITHER_USER}
  3471. type
  3472. PDisplayDeviceA = ^TDisplayDeviceA;
  3473. _DISPLAY_DEVICEA = record
  3474. cb: DWORD;
  3475. DeviceName: array [0..32 - 1] of CHAR;
  3476. DeviceString: array [0..128 - 1] of CHAR;
  3477. StateFlags: DWORD;
  3478. DeviceID: array [0..128 - 1] of CHAR;
  3479. DeviceKey: array [0..128 - 1] of CHAR;
  3480. end;
  3481. {$EXTERNALSYM _DISPLAY_DEVICEA}
  3482. DISPLAY_DEVICEA = _DISPLAY_DEVICEA;
  3483. {$EXTERNALSYM DISPLAY_DEVICEA}
  3484. LPDISPLAY_DEVICEA = ^DISPLAY_DEVICEA;
  3485. {$EXTERNALSYM LPDISPLAY_DEVICEA}
  3486. PDISPLAY_DEVICEA = ^DISPLAY_DEVICEA;
  3487. {$EXTERNALSYM PDISPLAY_DEVICEA}
  3488. TDisplayDeviceA = _DISPLAY_DEVICEA;
  3489. PDisplayDeviceW = ^TDisplayDeviceW;
  3490. _DISPLAY_DEVICEW = record
  3491. cb: DWORD;
  3492. DeviceName: array [0..32 - 1] of WCHAR;
  3493. DeviceString: array [0..128 - 1] of WCHAR;
  3494. StateFlags: DWORD;
  3495. DeviceID: array [0..128 - 1] of WCHAR;
  3496. DeviceKey: array [0..128 - 1] of WCHAR;
  3497. end;
  3498. {$EXTERNALSYM _DISPLAY_DEVICEW}
  3499. DISPLAY_DEVICEW = _DISPLAY_DEVICEW;
  3500. {$EXTERNALSYM DISPLAY_DEVICEW}
  3501. LPDISPLAY_DEVICEW = ^DISPLAY_DEVICEW;
  3502. {$EXTERNALSYM LPDISPLAY_DEVICEW}
  3503. PDISPLAY_DEVICEW = ^DISPLAY_DEVICEW;
  3504. {$EXTERNALSYM PDISPLAY_DEVICEW}
  3505. TDisplayDeviceW = _DISPLAY_DEVICEW;
  3506. {$IFDEF UNICODE}
  3507. DISPLAY_DEVICE = DISPLAY_DEVICEW;
  3508. {$EXTERNALSYM DISPLAY_DEVICE}
  3509. PDISPLAY_DEVICE = PDISPLAY_DEVICEW;
  3510. {$EXTERNALSYM PDISPLAY_DEVICE}
  3511. LPDISPLAY_DEVICE = LPDISPLAY_DEVICEW;
  3512. {$EXTERNALSYM LPDISPLAY_DEVICE}
  3513. TDisplayDevice = TDisplayDeviceW;
  3514. PDisplayDevice = PDisplayDeviceW;
  3515. {$ELSE}
  3516. DISPLAY_DEVICE = DISPLAY_DEVICEA;
  3517. {$EXTERNALSYM DISPLAY_DEVICE}
  3518. PDISPLAY_DEVICE = PDISPLAY_DEVICEA;
  3519. {$EXTERNALSYM PDISPLAY_DEVICE}
  3520. LPDISPLAY_DEVICE = LPDISPLAY_DEVICEA;
  3521. {$EXTERNALSYM LPDISPLAY_DEVICE}
  3522. TDisplayDevice = TDisplayDeviceA;
  3523. PDisplayDevice = PDisplayDeviceA;
  3524. {$ENDIF UNICODE}
  3525. const
  3526. DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = $00000001;
  3527. {$EXTERNALSYM DISPLAY_DEVICE_ATTACHED_TO_DESKTOP}
  3528. DISPLAY_DEVICE_MULTI_DRIVER = $00000002;
  3529. {$EXTERNALSYM DISPLAY_DEVICE_MULTI_DRIVER}
  3530. DISPLAY_DEVICE_PRIMARY_DEVICE = $00000004;
  3531. {$EXTERNALSYM DISPLAY_DEVICE_PRIMARY_DEVICE}
  3532. DISPLAY_DEVICE_MIRRORING_DRIVER = $00000008;
  3533. {$EXTERNALSYM DISPLAY_DEVICE_MIRRORING_DRIVER}
  3534. DISPLAY_DEVICE_VGA_COMPATIBLE = $00000010;
  3535. {$EXTERNALSYM DISPLAY_DEVICE_VGA_COMPATIBLE}
  3536. DISPLAY_DEVICE_REMOVABLE = $00000020;
  3537. {$EXTERNALSYM DISPLAY_DEVICE_REMOVABLE}
  3538. DISPLAY_DEVICE_MODESPRUNED = $08000000;
  3539. {$EXTERNALSYM DISPLAY_DEVICE_MODESPRUNED}
  3540. DISPLAY_DEVICE_REMOTE = $04000000;
  3541. {$EXTERNALSYM DISPLAY_DEVICE_REMOTE}
  3542. DISPLAY_DEVICE_DISCONNECT = $02000000;
  3543. {$EXTERNALSYM DISPLAY_DEVICE_DISCONNECT}
  3544. // Child device state
  3545. DISPLAY_DEVICE_ACTIVE = $00000001;
  3546. {$EXTERNALSYM DISPLAY_DEVICE_ACTIVE}
  3547. DISPLAY_DEVICE_ATTACHED = $00000002;
  3548. {$EXTERNALSYM DISPLAY_DEVICE_ATTACHED}
  3549. // GetRegionData/ExtCreateRegion
  3550. RDH_RECTANGLES = 1;
  3551. {$EXTERNALSYM RDH_RECTANGLES}
  3552. type
  3553. PRgnDataHeader = ^TRgnDataHeader;
  3554. _RGNDATAHEADER = record
  3555. dwSize: DWORD;
  3556. iType: DWORD;
  3557. nCount: DWORD;
  3558. nRgnSize: DWORD;
  3559. rcBound: RECT;
  3560. end;
  3561. {$EXTERNALSYM _RGNDATAHEADER}
  3562. RGNDATAHEADER = _RGNDATAHEADER;
  3563. {$EXTERNALSYM RGNDATAHEADER}
  3564. TRgnDataHeader = _RGNDATAHEADER;
  3565. PRgnData = ^TRgnData;
  3566. _RGNDATA = record
  3567. rdh: RGNDATAHEADER;
  3568. Buffer: array [0..0] of Char;
  3569. end;
  3570. {$EXTERNALSYM _RGNDATA}
  3571. RGNDATA = _RGNDATA;
  3572. {$EXTERNALSYM RGNDATA}
  3573. LPRGNDATA = ^RGNDATA;
  3574. {$EXTERNALSYM LPRGNDATA}
  3575. NPRGNDATA = ^RGNDATA;
  3576. {$EXTERNALSYM NPRGNDATA}
  3577. TRgnData = _RGNDATA;
  3578. // for GetRandomRgn
  3579. const
  3580. SYSRGN = 4;
  3581. {$EXTERNALSYM SYSRGN}
  3582. type
  3583. PAbc = ^TAbc;
  3584. _ABC = record
  3585. abcA: Integer;
  3586. abcB: UINT;
  3587. abcC: Integer;
  3588. end;
  3589. {$EXTERNALSYM _ABC}
  3590. ABC = _ABC;
  3591. {$EXTERNALSYM ABC}
  3592. LPABC = ^ABC;
  3593. {$EXTERNALSYM LPABC}
  3594. NPABC = ^ABC;
  3595. {$EXTERNALSYM NPABC}
  3596. TAbc = _ABC;
  3597. PAbcFloat = ^TAbcFloat;
  3598. _ABCFLOAT = record
  3599. abcfA: FLOAT;
  3600. abcfB: FLOAT;
  3601. abcfC: FLOAT;
  3602. end;
  3603. {$EXTERNALSYM _ABCFLOAT}
  3604. ABCFLOAT = _ABCFLOAT;
  3605. {$EXTERNALSYM ABCFLOAT}
  3606. LPABCFLOAT = ^ABCFLOAT;
  3607. {$EXTERNALSYM LPABCFLOAT}
  3608. NPABCFLOAT = ^ABCFLOAT;
  3609. {$EXTERNALSYM NPABCFLOAT}
  3610. TAbcFloat = _ABCFLOAT;
  3611. POutlineTextMetricA = ^TOutlineTextMetricA;
  3612. _OUTLINETEXTMETRICA = record
  3613. otmSize: UINT;
  3614. otmTextMetrics: TEXTMETRICA;
  3615. otmFiller: BYTE;
  3616. otmPanoseNumber: PANOSE;
  3617. otmfsSelection: UINT;
  3618. otmfsType: UINT;
  3619. otmsCharSlopeRise: Integer;
  3620. otmsCharSlopeRun: Integer;
  3621. otmItalicAngle: Integer;
  3622. otmEMSquare: UINT;
  3623. otmAscent: Integer;
  3624. otmDescent: Integer;
  3625. otmLineGap: UINT;
  3626. otmsCapEmHeight: UINT;
  3627. otmsXHeight: UINT;
  3628. otmrcFontBox: RECT;
  3629. otmMacAscent: Integer;
  3630. otmMacDescent: Integer;
  3631. otmMacLineGap: UINT;
  3632. otmusMinimumPPEM: UINT;
  3633. otmptSubscriptSize: POINT;
  3634. otmptSubscriptOffset: POINT;
  3635. otmptSuperscriptSize: POINT;
  3636. otmptSuperscriptOffset: POINT;
  3637. otmsStrikeoutSize: UINT;
  3638. otmsStrikeoutPosition: Integer;
  3639. otmsUnderscoreSize: Integer;
  3640. otmsUnderscorePosition: Integer;
  3641. otmpFamilyName: PSTR;
  3642. otmpFaceName: PSTR;
  3643. otmpStyleName: PSTR;
  3644. otmpFullName: PSTR;
  3645. end;
  3646. {$EXTERNALSYM _OUTLINETEXTMETRICA}
  3647. OUTLINETEXTMETRICA = _OUTLINETEXTMETRICA;
  3648. {$EXTERNALSYM OUTLINETEXTMETRICA}
  3649. LPOUTLINETEXTMETRICA = ^OUTLINETEXTMETRICA;
  3650. {$EXTERNALSYM LPOUTLINETEXTMETRICA}
  3651. NPOUTLINETEXTMETRICA = ^OUTLINETEXTMETRICA;
  3652. {$EXTERNALSYM NPOUTLINETEXTMETRICA}
  3653. TOutlineTextMetricA = _OUTLINETEXTMETRICA;
  3654. POutlineTextMetricW = ^TOutlineTextMetricW;
  3655. _OUTLINETEXTMETRICW = record
  3656. otmSize: UINT;
  3657. otmTextMetrics: TEXTMETRICW;
  3658. otmFiller: BYTE;
  3659. otmPanoseNumber: PANOSE;
  3660. otmfsSelection: UINT;
  3661. otmfsType: UINT;
  3662. otmsCharSlopeRise: Integer;
  3663. otmsCharSlopeRun: Integer;
  3664. otmItalicAngle: Integer;
  3665. otmEMSquare: UINT;
  3666. otmAscent: Integer;
  3667. otmDescent: Integer;
  3668. otmLineGap: UINT;
  3669. otmsCapEmHeight: UINT;
  3670. otmsXHeight: UINT;
  3671. otmrcFontBox: RECT;
  3672. otmMacAscent: Integer;
  3673. otmMacDescent: Integer;
  3674. otmMacLineGap: UINT;
  3675. otmusMinimumPPEM: UINT;
  3676. otmptSubscriptSize: POINT;
  3677. otmptSubscriptOffset: POINT;
  3678. otmptSuperscriptSize: POINT;
  3679. otmptSuperscriptOffset: POINT;
  3680. otmsStrikeoutSize: UINT;
  3681. otmsStrikeoutPosition: Integer;
  3682. otmsUnderscoreSize: Integer;
  3683. otmsUnderscorePosition: Integer;
  3684. otmpFamilyName: PSTR;
  3685. otmpFaceName: PSTR;
  3686. otmpStyleName: PSTR;
  3687. otmpFullName: PSTR;
  3688. end;
  3689. {$EXTERNALSYM _OUTLINETEXTMETRICW}
  3690. OUTLINETEXTMETRICW = _OUTLINETEXTMETRICW;
  3691. {$EXTERNALSYM OUTLINETEXTMETRICW}
  3692. LPOUTLINETEXTMETRICW = ^OUTLINETEXTMETRICW;
  3693. {$EXTERNALSYM LPOUTLINETEXTMETRICW}
  3694. NPOUTLINETEXTMETRICW = ^OUTLINETEXTMETRICW;
  3695. {$EXTERNALSYM NPOUTLINETEXTMETRICW}
  3696. TOutlineTextMetricW = _OUTLINETEXTMETRICW;
  3697. {$IFDEF UNICODE}
  3698. OUTLINETEXTMETRIC = OUTLINETEXTMETRICW;
  3699. {$EXTERNALSYM OUTLINETEXTMETRIC}
  3700. POUTLINETEXTMETRIC = POUTLINETEXTMETRICW;
  3701. {$EXTERNALSYM POUTLINETEXTMETRIC}
  3702. NPOUTLINETEXTMETRIC = NPOUTLINETEXTMETRICW;
  3703. {$EXTERNALSYM NPOUTLINETEXTMETRIC}
  3704. LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICW;
  3705. {$EXTERNALSYM LPOUTLINETEXTMETRIC}
  3706. TOutlineTextMetric = TOutlineTextMetricW;
  3707. {$ELSE}
  3708. OUTLINETEXTMETRIC = OUTLINETEXTMETRICA;
  3709. {$EXTERNALSYM OUTLINETEXTMETRIC}
  3710. POUTLINETEXTMETRIC = POUTLINETEXTMETRICA;
  3711. {$EXTERNALSYM POUTLINETEXTMETRIC}
  3712. NPOUTLINETEXTMETRIC = NPOUTLINETEXTMETRICA;
  3713. {$EXTERNALSYM NPOUTLINETEXTMETRIC}
  3714. LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICA;
  3715. {$EXTERNALSYM LPOUTLINETEXTMETRIC}
  3716. TOutlineTextMetric = TOutlineTextMetricA;
  3717. {$ENDIF UNICODE}
  3718. PPolytextA = ^TPolytextA;
  3719. tagPOLYTEXTA = record
  3720. x: Integer;
  3721. y: Integer;
  3722. n: UINT;
  3723. lpstr: LPCSTR;
  3724. uiFlags: UINT;
  3725. rcl: RECT;
  3726. pdx: PINT;
  3727. end;
  3728. {$EXTERNALSYM tagPOLYTEXTA}
  3729. POLYTEXTA = tagPOLYTEXTA;
  3730. {$EXTERNALSYM POLYTEXTA}
  3731. LPPOLYTEXTA = ^POLYTEXTA;
  3732. {$EXTERNALSYM LPPOLYTEXTA}
  3733. NPPOLYTEXTA = ^POLYTEXTA;
  3734. {$EXTERNALSYM NPPOLYTEXTA}
  3735. TPolytextA = POLYTEXTA;
  3736. PPolytextW = ^TPolytextW;
  3737. tagPOLYTEXTW = record
  3738. x: Integer;
  3739. y: Integer;
  3740. n: UINT;
  3741. lpstr: LPCWSTR;
  3742. uiFlags: UINT;
  3743. rcl: RECT;
  3744. pdx: PINT;
  3745. end;
  3746. {$EXTERNALSYM tagPOLYTEXTW}
  3747. POLYTEXTW = tagPOLYTEXTW;
  3748. {$EXTERNALSYM POLYTEXTW}
  3749. LPPOLYTEXTW = ^POLYTEXTW;
  3750. {$EXTERNALSYM LPPOLYTEXTW}
  3751. NPPOLYTEXTW = ^POLYTEXTW;
  3752. {$EXTERNALSYM NPPOLYTEXTW}
  3753. TPolytextW = POLYTEXTW;
  3754. {$IFDEF UNICODE}
  3755. POLYTEXT = POLYTEXTW;
  3756. {$EXTERNALSYM POLYTEXT}
  3757. PPOLYTEXT = PPOLYTEXTW;
  3758. {$EXTERNALSYM PPOLYTEXT}
  3759. NPPOLYTEXT = NPPOLYTEXTW;
  3760. {$EXTERNALSYM NPPOLYTEXT}
  3761. LPPOLYTEXT = LPPOLYTEXTW;
  3762. {$EXTERNALSYM LPPOLYTEXT}
  3763. TPolyText = TPolyTextW;
  3764. {$ELSE}
  3765. POLYTEXT = POLYTEXTA;
  3766. {$EXTERNALSYM POLYTEXT}
  3767. PPOLYTEXT = PPOLYTEXTA;
  3768. {$EXTERNALSYM PPOLYTEXT}
  3769. NPPOLYTEXT = NPPOLYTEXTA;
  3770. {$EXTERNALSYM NPPOLYTEXT}
  3771. LPPOLYTEXT = LPPOLYTEXTA;
  3772. {$EXTERNALSYM LPPOLYTEXT}
  3773. TPolyText = TPolyTextA;
  3774. {$ENDIF UNICODE}
  3775. PFixed = ^TFixed;
  3776. _FIXED = record
  3777. fract: WORD;
  3778. value: short;
  3779. end;
  3780. {$EXTERNALSYM _FIXED}
  3781. FIXED = _FIXED;
  3782. {$EXTERNALSYM FIXED}
  3783. TFixed = _FIXED;
  3784. PMat2 = ^TMat2;
  3785. _MAT2 = record
  3786. eM11: FIXED;
  3787. eM12: FIXED;
  3788. eM21: FIXED;
  3789. eM22: FIXED;
  3790. end;
  3791. {$EXTERNALSYM _MAT2}
  3792. MAT2 = _MAT2;
  3793. {$EXTERNALSYM MAT2}
  3794. LPMAT2 = ^MAT2;
  3795. {$EXTERNALSYM LPMAT2}
  3796. TMat2 = _MAT2;
  3797. PGlyphMetrics = ^TGlyphMetrics;
  3798. _GLYPHMETRICS = record
  3799. gmBlackBoxX: UINT;
  3800. gmBlackBoxY: UINT;
  3801. gmptGlyphOrigin: POINT;
  3802. gmCellIncX: short;
  3803. gmCellIncY: short;
  3804. end;
  3805. {$EXTERNALSYM _GLYPHMETRICS}
  3806. GLYPHMETRICS = _GLYPHMETRICS;
  3807. {$EXTERNALSYM GLYPHMETRICS}
  3808. LPGLYPHMETRICS = ^GLYPHMETRICS;
  3809. {$EXTERNALSYM LPGLYPHMETRICS}
  3810. TGlyphMetrics = _GLYPHMETRICS;
  3811. // GetGlyphOutline constants
  3812. const
  3813. GGO_METRICS = 0;
  3814. {$EXTERNALSYM GGO_METRICS}
  3815. GGO_BITMAP = 1;
  3816. {$EXTERNALSYM GGO_BITMAP}
  3817. GGO_NATIVE = 2;
  3818. {$EXTERNALSYM GGO_NATIVE}
  3819. GGO_BEZIER = 3;
  3820. {$EXTERNALSYM GGO_BEZIER}
  3821. GGO_GRAY2_BITMAP = 4;
  3822. {$EXTERNALSYM GGO_GRAY2_BITMAP}
  3823. GGO_GRAY4_BITMAP = 5;
  3824. {$EXTERNALSYM GGO_GRAY4_BITMAP}
  3825. GGO_GRAY8_BITMAP = 6;
  3826. {$EXTERNALSYM GGO_GRAY8_BITMAP}
  3827. GGO_GLYPH_INDEX = $0080;
  3828. {$EXTERNALSYM GGO_GLYPH_INDEX}
  3829. GGO_UNHINTED = $0100;
  3830. {$EXTERNALSYM GGO_UNHINTED}
  3831. TT_POLYGON_TYPE = 24;
  3832. {$EXTERNALSYM TT_POLYGON_TYPE}
  3833. TT_PRIM_LINE = 1;
  3834. {$EXTERNALSYM TT_PRIM_LINE}
  3835. TT_PRIM_QSPLINE = 2;
  3836. {$EXTERNALSYM TT_PRIM_QSPLINE}
  3837. TT_PRIM_CSPLINE = 3;
  3838. {$EXTERNALSYM TT_PRIM_CSPLINE}
  3839. type
  3840. PPointFx = ^TPointFx;
  3841. tagPOINTFX = record
  3842. x: FIXED;
  3843. y: FIXED;
  3844. end;
  3845. {$EXTERNALSYM tagPOINTFX}
  3846. POINTFX = tagPOINTFX;
  3847. {$EXTERNALSYM POINTFX}
  3848. LPPOINTFX = ^POINTFX;
  3849. {$EXTERNALSYM LPPOINTFX}
  3850. TPointFx = POINTFX;
  3851. PTtPolyCurve = ^TTtPolyCurve;
  3852. tagTTPOLYCURVE = record
  3853. wType: WORD;
  3854. cpfx: WORD;
  3855. apfx: array [0..0] of POINTFX;
  3856. end;
  3857. {$EXTERNALSYM tagTTPOLYCURVE}
  3858. TTPOLYCURVE = tagTTPOLYCURVE;
  3859. {$EXTERNALSYM TTPOLYCURVE}
  3860. LPTTPOLYCURVE = ^TTPOLYCURVE;
  3861. {$EXTERNALSYM LPTTPOLYCURVE}
  3862. TTtPolyCurve = TTPOLYCURVE;
  3863. PTtPolygonHeader = ^TTtPolygonHeader;
  3864. tagTTPOLYGONHEADER = record
  3865. cb: DWORD;
  3866. dwType: DWORD;
  3867. pfxStart: POINTFX;
  3868. end;
  3869. {$EXTERNALSYM tagTTPOLYGONHEADER}
  3870. TTPOLYGONHEADER = tagTTPOLYGONHEADER;
  3871. {$EXTERNALSYM TTPOLYGONHEADER}
  3872. LPTTPOLYGONHEADER = ^TTPOLYGONHEADER;
  3873. {$EXTERNALSYM LPTTPOLYGONHEADER}
  3874. TTtPolygonHeader = TTPOLYGONHEADER;
  3875. const
  3876. GCP_DBCS = $0001;
  3877. {$EXTERNALSYM GCP_DBCS}
  3878. GCP_REORDER = $0002;
  3879. {$EXTERNALSYM GCP_REORDER}
  3880. GCP_USEKERNING = $0008;
  3881. {$EXTERNALSYM GCP_USEKERNING}
  3882. GCP_GLYPHSHAPE = $0010;
  3883. {$EXTERNALSYM GCP_GLYPHSHAPE}
  3884. GCP_LIGATE = $0020;
  3885. {$EXTERNALSYM GCP_LIGATE}
  3886. ////#define GCP_GLYPHINDEXING 0x0080
  3887. GCP_DIACRITIC = $0100;
  3888. {$EXTERNALSYM GCP_DIACRITIC}
  3889. GCP_KASHIDA = $0400;
  3890. {$EXTERNALSYM GCP_KASHIDA}
  3891. GCP_ERROR = $8000;
  3892. {$EXTERNALSYM GCP_ERROR}
  3893. FLI_MASK = $103B;
  3894. {$EXTERNALSYM FLI_MASK}
  3895. GCP_JUSTIFY = $00010000;
  3896. {$EXTERNALSYM GCP_JUSTIFY}
  3897. ////#define GCP_NODIACRITICS 0x00020000L
  3898. FLI_GLYPHS = $00040000;
  3899. {$EXTERNALSYM FLI_GLYPHS}
  3900. GCP_CLASSIN = $00080000;
  3901. {$EXTERNALSYM GCP_CLASSIN}
  3902. GCP_MAXEXTENT = $00100000;
  3903. {$EXTERNALSYM GCP_MAXEXTENT}
  3904. GCP_JUSTIFYIN = $00200000;
  3905. {$EXTERNALSYM GCP_JUSTIFYIN}
  3906. GCP_DISPLAYZWG = $00400000;
  3907. {$EXTERNALSYM GCP_DISPLAYZWG}
  3908. GCP_SYMSWAPOFF = $00800000;
  3909. {$EXTERNALSYM GCP_SYMSWAPOFF}
  3910. GCP_NUMERICOVERRIDE = $01000000;
  3911. {$EXTERNALSYM GCP_NUMERICOVERRIDE}
  3912. GCP_NEUTRALOVERRIDE = $02000000;
  3913. {$EXTERNALSYM GCP_NEUTRALOVERRIDE}
  3914. GCP_NUMERICSLATIN = $04000000;
  3915. {$EXTERNALSYM GCP_NUMERICSLATIN}
  3916. GCP_NUMERICSLOCAL = $08000000;
  3917. {$EXTERNALSYM GCP_NUMERICSLOCAL}
  3918. GCPCLASS_LATIN = 1;
  3919. {$EXTERNALSYM GCPCLASS_LATIN}
  3920. GCPCLASS_HEBREW = 2;
  3921. {$EXTERNALSYM GCPCLASS_HEBREW}
  3922. GCPCLASS_ARABIC = 2;
  3923. {$EXTERNALSYM GCPCLASS_ARABIC}
  3924. GCPCLASS_NEUTRAL = 3;
  3925. {$EXTERNALSYM GCPCLASS_NEUTRAL}
  3926. GCPCLASS_LOCALNUMBER = 4;
  3927. {$EXTERNALSYM GCPCLASS_LOCALNUMBER}
  3928. GCPCLASS_LATINNUMBER = 5;
  3929. {$EXTERNALSYM GCPCLASS_LATINNUMBER}
  3930. GCPCLASS_LATINNUMERICTERMINATOR = 6;
  3931. {$EXTERNALSYM GCPCLASS_LATINNUMERICTERMINATOR}
  3932. GCPCLASS_LATINNUMERICSEPARATOR = 7;
  3933. {$EXTERNALSYM GCPCLASS_LATINNUMERICSEPARATOR}
  3934. GCPCLASS_NUMERICSEPARATOR = 8;
  3935. {$EXTERNALSYM GCPCLASS_NUMERICSEPARATOR}
  3936. GCPCLASS_PREBOUNDLTR = $80;
  3937. {$EXTERNALSYM GCPCLASS_PREBOUNDLTR}
  3938. GCPCLASS_PREBOUNDRTL = $40;
  3939. {$EXTERNALSYM GCPCLASS_PREBOUNDRTL}
  3940. GCPCLASS_POSTBOUNDLTR = $20;
  3941. {$EXTERNALSYM GCPCLASS_POSTBOUNDLTR}
  3942. GCPCLASS_POSTBOUNDRTL = $10;
  3943. {$EXTERNALSYM GCPCLASS_POSTBOUNDRTL}
  3944. GCPGLYPH_LINKBEFORE = $8000;
  3945. {$EXTERNALSYM GCPGLYPH_LINKBEFORE}
  3946. GCPGLYPH_LINKAFTER = $4000;
  3947. {$EXTERNALSYM GCPGLYPH_LINKAFTER}
  3948. type
  3949. PGcpResultsA = ^TGcpResultsA;
  3950. tagGCP_RESULTSA = record
  3951. lStructSize: DWORD;
  3952. lpOutString: LPSTR;
  3953. lpOrder: LPUINT;
  3954. lpDx: PINT;
  3955. lpCaretPos: PINT;
  3956. lpClass: LPSTR;
  3957. lpGlyphs: LPWSTR;
  3958. nGlyphs: UINT;
  3959. nMaxFit: Integer;
  3960. end;
  3961. {$EXTERNALSYM tagGCP_RESULTSA}
  3962. GCP_RESULTSA = tagGCP_RESULTSA;
  3963. {$EXTERNALSYM GCP_RESULTSA}
  3964. LPGCP_RESULTSA = ^GCP_RESULTSA;
  3965. {$EXTERNALSYM LPGCP_RESULTSA}
  3966. TGcpResultsA = GCP_RESULTSA;
  3967. PGcpResultsW = ^TGcpResultsW;
  3968. tagGCP_RESULTSW = record
  3969. lStructSize: DWORD;
  3970. lpOutString: LPWSTR;
  3971. lpOrder: LPUINT;
  3972. lpDx: PINT;
  3973. lpCaretPos: PINT;
  3974. lpClass: LPSTR;
  3975. lpGlyphs: LPWSTR;
  3976. nGlyphs: UINT;
  3977. nMaxFit: Integer;
  3978. end;
  3979. {$EXTERNALSYM tagGCP_RESULTSW}
  3980. GCP_RESULTSW = tagGCP_RESULTSW;
  3981. {$EXTERNALSYM GCP_RESULTSW}
  3982. LPGCP_RESULTSW = ^GCP_RESULTSW;
  3983. {$EXTERNALSYM LPGCP_RESULTSW}
  3984. TGcpResultsW = GCP_RESULTSW;
  3985. {$IFDEF UNICODE}
  3986. GCP_RESULTS = GCP_RESULTSW;
  3987. {$EXTERNALSYM GCP_RESULTS}
  3988. LPGCP_RESULTS = LPGCP_RESULTSW;
  3989. {$EXTERNALSYM LPGCP_RESULTS}
  3990. TGcpResults = TGcpResultsW;
  3991. PGcpResults = PGcpResultsW;
  3992. {$ELSE}
  3993. GCP_RESULTS = GCP_RESULTSA;
  3994. {$EXTERNALSYM GCP_RESULTS}
  3995. LPGCP_RESULTS = LPGCP_RESULTSA;
  3996. {$EXTERNALSYM LPGCP_RESULTS}
  3997. TGcpResults = TGcpResultsA;
  3998. PGcpResults = PGcpResultsA;
  3999. {$ENDIF UNICODE}
  4000. PRasterizerStatus = ^TRasterizerStatus;
  4001. _RASTERIZER_STATUS = record
  4002. nSize: short;
  4003. wFlags: short;
  4004. nLanguageID: short;
  4005. end;
  4006. {$EXTERNALSYM _RASTERIZER_STATUS}
  4007. RASTERIZER_STATUS = _RASTERIZER_STATUS;
  4008. {$EXTERNALSYM RASTERIZER_STATUS}
  4009. LPRASTERIZER_STATUS = ^RASTERIZER_STATUS;
  4010. {$EXTERNALSYM LPRASTERIZER_STATUS}
  4011. TRasterizerStatus = _RASTERIZER_STATUS;
  4012. // bits defined in wFlags of RASTERIZER_STATUS
  4013. const
  4014. TT_AVAILABLE = $0001;
  4015. {$EXTERNALSYM TT_AVAILABLE}
  4016. TT_ENABLED = $0002;
  4017. {$EXTERNALSYM TT_ENABLED}
  4018. // Pixel format descriptor
  4019. type
  4020. PPixelFormatDescriptor = ^TPixelFormatDescriptor;
  4021. tagPIXELFORMATDESCRIPTOR = record
  4022. nSize: WORD;
  4023. nVersion: WORD;
  4024. dwFlags: DWORD;
  4025. iPixelType: BYTE;
  4026. cColorBits: BYTE;
  4027. cRedBits: BYTE;
  4028. cRedShift: BYTE;
  4029. cGreenBits: BYTE;
  4030. cGreenShift: BYTE;
  4031. cBlueBits: BYTE;
  4032. cBlueShift: BYTE;
  4033. cAlphaBits: BYTE;
  4034. cAlphaShift: BYTE;
  4035. cAccumBits: BYTE;
  4036. cAccumRedBits: BYTE;
  4037. cAccumGreenBits: BYTE;
  4038. cAccumBlueBits: BYTE;
  4039. cAccumAlphaBits: BYTE;
  4040. cDepthBits: BYTE;
  4041. cStencilBits: BYTE;
  4042. cAuxBuffers: BYTE;
  4043. iLayerType: BYTE;
  4044. bReserved: BYTE;
  4045. dwLayerMask: DWORD;
  4046. dwVisibleMask: DWORD;
  4047. dwDamageMask: DWORD;
  4048. end;
  4049. {$EXTERNALSYM tagPIXELFORMATDESCRIPTOR}
  4050. PIXELFORMATDESCRIPTOR = tagPIXELFORMATDESCRIPTOR;
  4051. {$EXTERNALSYM PIXELFORMATDESCRIPTOR}
  4052. LPPIXELFORMATDESCRIPTOR = ^PIXELFORMATDESCRIPTOR;
  4053. {$EXTERNALSYM LPPIXELFORMATDESCRIPTOR}
  4054. TPixelFormatDescriptor = PIXELFORMATDESCRIPTOR;
  4055. // pixel types
  4056. const
  4057. PFD_TYPE_RGBA = 0;
  4058. {$EXTERNALSYM PFD_TYPE_RGBA}
  4059. PFD_TYPE_COLORINDEX = 1;
  4060. {$EXTERNALSYM PFD_TYPE_COLORINDEX}
  4061. // layer types
  4062. PFD_MAIN_PLANE = 0;
  4063. {$EXTERNALSYM PFD_MAIN_PLANE}
  4064. PFD_OVERLAY_PLANE = 1;
  4065. {$EXTERNALSYM PFD_OVERLAY_PLANE}
  4066. PFD_UNDERLAY_PLANE = DWORD(-1);
  4067. {$EXTERNALSYM PFD_UNDERLAY_PLANE}
  4068. // PIXELFORMATDESCRIPTOR flags
  4069. PFD_DOUBLEBUFFER = $00000001;
  4070. {$EXTERNALSYM PFD_DOUBLEBUFFER}
  4071. PFD_STEREO = $00000002;
  4072. {$EXTERNALSYM PFD_STEREO}
  4073. PFD_DRAW_TO_WINDOW = $00000004;
  4074. {$EXTERNALSYM PFD_DRAW_TO_WINDOW}
  4075. PFD_DRAW_TO_BITMAP = $00000008;
  4076. {$EXTERNALSYM PFD_DRAW_TO_BITMAP}
  4077. PFD_SUPPORT_GDI = $00000010;
  4078. {$EXTERNALSYM PFD_SUPPORT_GDI}
  4079. PFD_SUPPORT_OPENGL = $00000020;
  4080. {$EXTERNALSYM PFD_SUPPORT_OPENGL}
  4081. PFD_GENERIC_FORMAT = $00000040;
  4082. {$EXTERNALSYM PFD_GENERIC_FORMAT}
  4083. PFD_NEED_PALETTE = $00000080;
  4084. {$EXTERNALSYM PFD_NEED_PALETTE}
  4085. PFD_NEED_SYSTEM_PALETTE = $00000100;
  4086. {$EXTERNALSYM PFD_NEED_SYSTEM_PALETTE}
  4087. PFD_SWAP_EXCHANGE = $00000200;
  4088. {$EXTERNALSYM PFD_SWAP_EXCHANGE}
  4089. PFD_SWAP_COPY = $00000400;
  4090. {$EXTERNALSYM PFD_SWAP_COPY}
  4091. PFD_SWAP_LAYER_BUFFERS = $00000800;
  4092. {$EXTERNALSYM PFD_SWAP_LAYER_BUFFERS}
  4093. PFD_GENERIC_ACCELERATED = $00001000;
  4094. {$EXTERNALSYM PFD_GENERIC_ACCELERATED}
  4095. PFD_SUPPORT_DIRECTDRAW = $00002000;
  4096. {$EXTERNALSYM PFD_SUPPORT_DIRECTDRAW}
  4097. // PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
  4098. PFD_DEPTH_DONTCARE = DWORD($20000000);
  4099. {$EXTERNALSYM PFD_DEPTH_DONTCARE}
  4100. PFD_DOUBLEBUFFER_DONTCARE = DWORD($40000000);
  4101. {$EXTERNALSYM PFD_DOUBLEBUFFER_DONTCARE}
  4102. PFD_STEREO_DONTCARE = DWORD($80000000);
  4103. {$EXTERNALSYM PFD_STEREO_DONTCARE}
  4104. type
  4105. OLDFONTENUMPROCA = function(lpelf: LPLOGFONTA; lpntm: LPTEXTMETRICA; FontType: DWORD; lParam: LPARAM): Integer; stdcall;
  4106. {$EXTERNALSYM OLDFONTENUMPROCA}
  4107. OLDFONTENUMPROCW = function(lpelf: LPLOGFONTW; lpntm: LPTEXTMETRICW; FontType: DWORD; lParam: LPARAM): Integer; stdcall;
  4108. {$EXTERNALSYM OLDFONTENUMPROCW}
  4109. OLDFONTENUMPROC = function(lpelf: LPLOGFONT; lpntm: LPTEXTMETRIC; FontType: DWORD; lParam: LPARAM): Integer; stdcall;
  4110. {$EXTERNALSYM OLDFONTENUMPROC}
  4111. FONTENUMPROCA = OLDFONTENUMPROCA;
  4112. {$EXTERNALSYM FONTENUMPROCA}
  4113. FONTENUMPROCW = OLDFONTENUMPROCW;
  4114. {$EXTERNALSYM FONTENUMPROCW}
  4115. FONTENUMPROC = OLDFONTENUMPROC;
  4116. {$EXTERNALSYM FONTENUMPROC}
  4117. GOBJENUMPROC = function(lpLogObject: LPVOID; lpData: LPARAM): Integer; stdcall;
  4118. {$EXTERNALSYM GOBJENUMPROC}
  4119. LINEDDAPROC = procedure(X, Y: Integer; lpData: LPARAM); stdcall;
  4120. {$EXTERNALSYM LINEDDAPROC}
  4121. function AddFontResourceA(lpszFileName: LPCSTR): Integer; stdcall;
  4122. {$EXTERNALSYM AddFontResourceA}
  4123. function AddFontResourceW(lpszFileName: LPCWSTR): Integer; stdcall;
  4124. {$EXTERNALSYM AddFontResourceW}
  4125. function AddFontResource(lpszFileName: LPCTSTR): Integer; stdcall;
  4126. {$EXTERNALSYM AddFontResource}
  4127. function AnimatePalette(hPal: HPALETTE; iStartIndex: UINT; cEntries: UINT; ppe: PPALETTEENTRY): BOOL; stdcall;
  4128. {$EXTERNALSYM AnimatePalette}
  4129. function Arc(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nxStartArc, nyStartArc, nXEndArc, nYEndArc: Integer): BOOL; stdcall;
  4130. {$EXTERNALSYM Arc}
  4131. function BitBlt(hdcDEst: HDC; nXDest, nYDest, nWidth, nHeight: Integer; hdcSrc: HDC; nXSrc, nYSrc: Integer; dwRop: DWORD): BOOL; stdcall;
  4132. {$EXTERNALSYM BitBlt}
  4133. function CancelDC(hdc: HDC): BOOL; stdcall;
  4134. {$EXTERNALSYM CancelDC}
  4135. function Chord(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nXRadial1, nYRadial1, nXRadial2, nYRadial2: Integer): BOOL; stdcall;
  4136. {$EXTERNALSYM Chord}
  4137. function ChoosePixelFormat(hdc: HDC; const ppfd: PIXELFORMATDESCRIPTOR): Integer; stdcall;
  4138. {$EXTERNALSYM ChoosePixelFormat}
  4139. function CloseMetaFile(hdc: HDC): HMETAFILE; stdcall;
  4140. {$EXTERNALSYM CloseMetaFile}
  4141. function CombineRgn(hrgnDest, hrgnSrc1, hrgnSrc2: HRGN; fnCombineMode: Integer): Integer; stdcall;
  4142. {$EXTERNALSYM CombineRgn}
  4143. function CopyMetaFileA(hmfSrc: HMETAFILE; lpszFile: LPCSTR): HMETAFILE; stdcall;
  4144. {$EXTERNALSYM CopyMetaFileA}
  4145. function CopyMetaFileW(hmfSrc: HMETAFILE; lpszFile: LPCWSTR): HMETAFILE; stdcall;
  4146. {$EXTERNALSYM CopyMetaFileW}
  4147. function CopyMetaFile(hmfSrc: HMETAFILE; lpszFile: LPCTSTR): HMETAFILE; stdcall;
  4148. {$EXTERNALSYM CopyMetaFile}
  4149. function CreateBitmap(nWidth, nHeight: Integer; Cplanes, cBitsPerPel: UINT; lpvBits: PVOID): HBITMAP; stdcall;
  4150. {$EXTERNALSYM CreateBitmap}
  4151. function CreateBitmapIndirect(const lpbm: BITMAP): HBITMAP; stdcall;
  4152. {$EXTERNALSYM CreateBitmapIndirect}
  4153. function CreateBrushIndirect(const lplb: LOGBRUSH): HBRUSH; stdcall;
  4154. {$EXTERNALSYM CreateBrushIndirect}
  4155. function CreateCompatibleBitmap(hdc: HDC; nWidth, nHeight: Integer): HBITMAP; stdcall;
  4156. {$EXTERNALSYM CreateCompatibleBitmap}
  4157. function CreateDiscardableBitmap(hdc: HDC; nWidth, nHeight: Integer): HBITMAP; stdcall;
  4158. {$EXTERNALSYM CreateDiscardableBitmap}
  4159. function CreateCompatibleDC(hdc: HDC): HDC; stdcall;
  4160. {$EXTERNALSYM CreateCompatibleDC}
  4161. function CreateDCA(lpszDriver, lpszDevice, lpszOutput: LPCSTR; lpInitData: LPDEVMODEA): HDC; stdcall;
  4162. {$EXTERNALSYM CreateDCA}
  4163. function CreateDCW(lpszDriver, lpszDevice, lpszOutput: LPCWSTR; lpInitData: LPDEVMODEW): HDC; stdcall;
  4164. {$EXTERNALSYM CreateDCW}
  4165. function CreateDC(lpszDriver, lpszDevice, lpszOutput: LPCTSTR; lpInitData: LPDEVMODE): HDC; stdcall;
  4166. {$EXTERNALSYM CreateDC}
  4167. function CreateDIBitmap(hdc: HDC; const lpbmih: BITMAPINFOHEADER; fdwInit: DWORD; lpbInit: PVOID; const lpbmi: BITMAPINFO; fuUsage: UINT): HBITMAP; stdcall;
  4168. {$EXTERNALSYM CreateDIBitmap}
  4169. function CreateDIBPatternBrush(hglbDIBPacked: HGLOBAL; fuColorSpec: UINT): HBRUSH; stdcall;
  4170. {$EXTERNALSYM CreateDIBPatternBrush}
  4171. function CreateDIBPatternBrushPt(lpPackedDIB: PVOID; iUsage: UINT): HBRUSH; stdcall;
  4172. {$EXTERNALSYM CreateDIBPatternBrushPt}
  4173. function CreateEllipticRgn(nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): HRGN; stdcall;
  4174. {$EXTERNALSYM CreateEllipticRgn}
  4175. function CreateEllipticRgnIndirect(const lprc: RECT): HRGN; stdcall;
  4176. {$EXTERNALSYM CreateEllipticRgnIndirect}
  4177. function CreateFontIndirectA(const lplf: LOGFONTA): HFONT; stdcall;
  4178. {$EXTERNALSYM CreateFontIndirectA}
  4179. function CreateFontIndirectW(const lplf: LOGFONTW): HFONT; stdcall;
  4180. {$EXTERNALSYM CreateFontIndirectW}
  4181. function CreateFontIndirect(const lplf: LOGFONT): HFONT; stdcall;
  4182. {$EXTERNALSYM CreateFontIndirect}
  4183. function CreateFontA(nHeight, nWidth, nEscapement, nOrientation, fnWeight: Integer; fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision, fdwClipPrecision, fdwQuality, fdwPitchAndFamily: DWORD; lpszFace: LPCSTR): HFONT; stdcall;
  4184. {$EXTERNALSYM CreateFontA}
  4185. function CreateFontW(nHeight, nWidth, nEscapement, nOrientation, fnWeight: Integer; fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision, fdwClipPrecision, fdwQuality, fdwPitchAndFamily: DWORD; lpszFace: LPCWSTR): HFONT; stdcall;
  4186. {$EXTERNALSYM CreateFontW}
  4187. function CreateFont(nHeight, nWidth, nEscapement, nOrientation, fnWeight: Integer; fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision, fdwClipPrecision, fdwQuality, fdwPitchAndFamily: DWORD; lpszFace: LPCTSTR): HFONT; stdcall;
  4188. {$EXTERNALSYM CreateFont}
  4189. function CreateHatchBrush(fnStyle: Integer; clrref: COLORREF): HBRUSH; stdcall;
  4190. {$EXTERNALSYM CreateHatchBrush}
  4191. function CreateICA(lpszDriver, lpszDevice, lpszOutput: LPCSTR; lpdvmInit: LPDEVMODEA): HDC; stdcall;
  4192. {$EXTERNALSYM CreateICA}
  4193. function CreateICW(lpszDriver, lpszDevice, lpszOutput: LPCWSTR; lpdvmInit: LPDEVMODEW): HDC; stdcall;
  4194. {$EXTERNALSYM CreateICW}
  4195. function CreateIC(lpszDriver, lpszDevice, lpszOutput: LPCWSTR; lpdvmInit: LPDEVMODE): HDC; stdcall;
  4196. {$EXTERNALSYM CreateIC}
  4197. function CreateMetaFileA(lpszFile: LPCSTR): HDC; stdcall;
  4198. {$EXTERNALSYM CreateMetaFileA}
  4199. function CreateMetaFileW(lpszFile: LPCWSTR): HDC; stdcall;
  4200. {$EXTERNALSYM CreateMetaFileW}
  4201. function CreateMetaFile(lpszFile: LPCTSTR): HDC; stdcall;
  4202. {$EXTERNALSYM CreateMetaFile}
  4203. function CreatePalette(const lplgpl: LOGPALETTE): HPALETTE; stdcall;
  4204. {$EXTERNALSYM CreatePalette}
  4205. function CreatePen(fnPenStyle, nWidth: Integer; crColor: COLORREF): HPEN; stdcall;
  4206. {$EXTERNALSYM CreatePen}
  4207. function CreatePenIndirect(const lplgpn: LOGPEN): HPEN; stdcall;
  4208. {$EXTERNALSYM CreatePenIndirect}
  4209. function CreatePolyPolygonRgn(lppt: LPPOINT; lpPolyCounts: LPINT; nCount, fnPolyFillMode: Integer): HRGN; stdcall;
  4210. {$EXTERNALSYM CreatePolyPolygonRgn}
  4211. function CreatePatternBrush(hbmp: HBITMAP): HBRUSH; stdcall;
  4212. {$EXTERNALSYM CreatePatternBrush}
  4213. function CreateRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): HRGN; stdcall;
  4214. {$EXTERNALSYM CreateRectRgn}
  4215. function CreateRectRgnIndirect(const lprc: RECT): HRGN; stdcall;
  4216. {$EXTERNALSYM CreateRectRgnIndirect}
  4217. function CreateRoundRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect, nWidthEllipse, nHeightEllipse: Integer): HRGN; stdcall;
  4218. {$EXTERNALSYM CreateRoundRectRgn}
  4219. function CreateScalableFontResourceA(fdwHidden: DWORD; lpszFontRes, lpszFontFile, lpszCurrentPath: LPCSTR): BOOL; stdcall;
  4220. {$EXTERNALSYM CreateScalableFontResourceA}
  4221. function CreateScalableFontResourceW(fdwHidden: DWORD; lpszFontRes, lpszFontFile, lpszCurrentPath: LPCWSTR): BOOL; stdcall;
  4222. {$EXTERNALSYM CreateScalableFontResourceW}
  4223. function CreateScalableFontResource(fdwHidden: DWORD; lpszFontRes, lpszFontFile, lpszCurrentPath: LPCTSTR): BOOL; stdcall;
  4224. {$EXTERNALSYM CreateScalableFontResource}
  4225. function CreateSolidBrush(crColor: COLORREF): HBRUSH; stdcall;
  4226. {$EXTERNALSYM CreateSolidBrush}
  4227. function DeleteDC(hdc: HDC): BOOL; stdcall;
  4228. {$EXTERNALSYM DeleteDC}
  4229. function DeleteMetaFile(hmf: HMETAFILE): BOOL; stdcall;
  4230. {$EXTERNALSYM DeleteMetaFile}
  4231. function DeleteObject(hObject: HGDIOBJ): BOOL; stdcall;
  4232. {$EXTERNALSYM DeleteObject}
  4233. function DescribePixelFormat(hdc: HDC; iPixelFormat: Integer; nBytes: UINT; ppfd: LPPIXELFORMATDESCRIPTOR): Integer; stdcall;
  4234. {$EXTERNALSYM DescribePixelFormat}
  4235. // mode selections for the device mode function
  4236. const
  4237. DM_UPDATE = 1;
  4238. {$EXTERNALSYM DM_UPDATE}
  4239. DM_COPY = 2;
  4240. {$EXTERNALSYM DM_COPY}
  4241. DM_PROMPT = 4;
  4242. {$EXTERNALSYM DM_PROMPT}
  4243. DM_MODIFY = 8;
  4244. {$EXTERNALSYM DM_MODIFY}
  4245. DM_IN_BUFFER = DM_MODIFY;
  4246. {$EXTERNALSYM DM_IN_BUFFER}
  4247. DM_IN_PROMPT = DM_PROMPT;
  4248. {$EXTERNALSYM DM_IN_PROMPT}
  4249. DM_OUT_BUFFER = DM_COPY;
  4250. {$EXTERNALSYM DM_OUT_BUFFER}
  4251. DM_OUT_DEFAULT = DM_UPDATE;
  4252. {$EXTERNALSYM DM_OUT_DEFAULT}
  4253. // device capabilities indices
  4254. DC_FIELDS = 1;
  4255. {$EXTERNALSYM DC_FIELDS}
  4256. DC_PAPERS = 2;
  4257. {$EXTERNALSYM DC_PAPERS}
  4258. DC_PAPERSIZE = 3;
  4259. {$EXTERNALSYM DC_PAPERSIZE}
  4260. DC_MINEXTENT = 4;
  4261. {$EXTERNALSYM DC_MINEXTENT}
  4262. DC_MAXEXTENT = 5;
  4263. {$EXTERNALSYM DC_MAXEXTENT}
  4264. DC_BINS = 6;
  4265. {$EXTERNALSYM DC_BINS}
  4266. DC_DUPLEX = 7;
  4267. {$EXTERNALSYM DC_DUPLEX}
  4268. DC_SIZE = 8;
  4269. {$EXTERNALSYM DC_SIZE}
  4270. DC_EXTRA = 9;
  4271. {$EXTERNALSYM DC_EXTRA}
  4272. DC_VERSION = 10;
  4273. {$EXTERNALSYM DC_VERSION}
  4274. DC_DRIVER = 11;
  4275. {$EXTERNALSYM DC_DRIVER}
  4276. DC_BINNAMES = 12;
  4277. {$EXTERNALSYM DC_BINNAMES}
  4278. DC_ENUMRESOLUTIONS = 13;
  4279. {$EXTERNALSYM DC_ENUMRESOLUTIONS}
  4280. DC_FILEDEPENDENCIES = 14;
  4281. {$EXTERNALSYM DC_FILEDEPENDENCIES}
  4282. DC_TRUETYPE = 15;
  4283. {$EXTERNALSYM DC_TRUETYPE}
  4284. DC_PAPERNAMES = 16;
  4285. {$EXTERNALSYM DC_PAPERNAMES}
  4286. DC_ORIENTATION = 17;
  4287. {$EXTERNALSYM DC_ORIENTATION}
  4288. DC_COPIES = 18;
  4289. {$EXTERNALSYM DC_COPIES}
  4290. DC_BINADJUST = 19;
  4291. {$EXTERNALSYM DC_BINADJUST}
  4292. DC_EMF_COMPLIANT = 20;
  4293. {$EXTERNALSYM DC_EMF_COMPLIANT}
  4294. DC_DATATYPE_PRODUCED = 21;
  4295. {$EXTERNALSYM DC_DATATYPE_PRODUCED}
  4296. DC_COLLATE = 22;
  4297. {$EXTERNALSYM DC_COLLATE}
  4298. DC_MANUFACTURER = 23;
  4299. {$EXTERNALSYM DC_MANUFACTURER}
  4300. DC_MODEL = 24;
  4301. {$EXTERNALSYM DC_MODEL}
  4302. DC_PERSONALITY = 25;
  4303. {$EXTERNALSYM DC_PERSONALITY}
  4304. DC_PRINTRATE = 26;
  4305. {$EXTERNALSYM DC_PRINTRATE}
  4306. DC_PRINTRATEUNIT = 27;
  4307. {$EXTERNALSYM DC_PRINTRATEUNIT}
  4308. PRINTRATEUNIT_PPM = 1;
  4309. {$EXTERNALSYM PRINTRATEUNIT_PPM}
  4310. PRINTRATEUNIT_CPS = 2;
  4311. {$EXTERNALSYM PRINTRATEUNIT_CPS}
  4312. PRINTRATEUNIT_LPM = 3;
  4313. {$EXTERNALSYM PRINTRATEUNIT_LPM}
  4314. PRINTRATEUNIT_IPM = 4;
  4315. {$EXTERNALSYM PRINTRATEUNIT_IPM}
  4316. DC_PRINTERMEM = 28;
  4317. {$EXTERNALSYM DC_PRINTERMEM}
  4318. DC_MEDIAREADY = 29;
  4319. {$EXTERNALSYM DC_MEDIAREADY}
  4320. DC_STAPLE = 30;
  4321. {$EXTERNALSYM DC_STAPLE}
  4322. DC_PRINTRATEPPM = 31;
  4323. {$EXTERNALSYM DC_PRINTRATEPPM}
  4324. DC_COLORDEVICE = 32;
  4325. {$EXTERNALSYM DC_COLORDEVICE}
  4326. DC_NUP = 33;
  4327. {$EXTERNALSYM DC_NUP}
  4328. DC_MEDIATYPENAMES = 34;
  4329. {$EXTERNALSYM DC_MEDIATYPENAMES}
  4330. DC_MEDIATYPES = 35;
  4331. {$EXTERNALSYM DC_MEDIATYPES}
  4332. // bit fields of the return value (DWORD) for DC_TRUETYPE
  4333. DCTT_BITMAP = $0000001;
  4334. {$EXTERNALSYM DCTT_BITMAP}
  4335. DCTT_DOWNLOAD = $0000002;
  4336. {$EXTERNALSYM DCTT_DOWNLOAD}
  4337. DCTT_SUBDEV = $0000004;
  4338. {$EXTERNALSYM DCTT_SUBDEV}
  4339. DCTT_DOWNLOAD_OUTLINE = $0000008;
  4340. {$EXTERNALSYM DCTT_DOWNLOAD_OUTLINE}
  4341. // return values for DC_BINADJUST
  4342. DCBA_FACEUPNONE = $0000;
  4343. {$EXTERNALSYM DCBA_FACEUPNONE}
  4344. DCBA_FACEUPCENTER = $0001;
  4345. {$EXTERNALSYM DCBA_FACEUPCENTER}
  4346. DCBA_FACEUPLEFT = $0002;
  4347. {$EXTERNALSYM DCBA_FACEUPLEFT}
  4348. DCBA_FACEUPRIGHT = $0003;
  4349. {$EXTERNALSYM DCBA_FACEUPRIGHT}
  4350. DCBA_FACEDOWNNONE = $0100;
  4351. {$EXTERNALSYM DCBA_FACEDOWNNONE}
  4352. DCBA_FACEDOWNCENTER = $0101;
  4353. {$EXTERNALSYM DCBA_FACEDOWNCENTER}
  4354. DCBA_FACEDOWNLEFT = $0102;
  4355. {$EXTERNALSYM DCBA_FACEDOWNLEFT}
  4356. DCBA_FACEDOWNRIGHT = $0103;
  4357. {$EXTERNALSYM DCBA_FACEDOWNRIGHT}
  4358. function DeviceCapabilitiesA(pDevice, pPort: LPCSTR; fwCapability: WORD; pOutput: LPSTR; pDevMode: LPDEVMODEA): Integer; stdcall;
  4359. {$EXTERNALSYM DeviceCapabilitiesA}
  4360. function DeviceCapabilitiesW(pDevice, pPort: LPCWSTR; fwCapability: WORD; pOutput: LPWSTR; pDevMode: LPDEVMODEW): Integer; stdcall;
  4361. {$EXTERNALSYM DeviceCapabilitiesW}
  4362. function DeviceCapabilities(pDevice, pPort: LPCTSTR; fwCapability: WORD; pOutput: LPTSTR; pDevMode: LPDEVMODE): Integer; stdcall;
  4363. {$EXTERNALSYM DeviceCapabilities}
  4364. function DrawEscape(hdc: HDC; nEscape, cbInput: Integer; lpszInData: LPCSTR): Integer; stdcall;
  4365. {$EXTERNALSYM DrawEscape}
  4366. function Ellipse(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): BOOL; stdcall;
  4367. {$EXTERNALSYM Ellipse}
  4368. function EnumFontFamiliesExA(hdc: HDC; lpLogFont: LPLOGFONTA; lpEnumFontFamExProc: FONTENUMPROCA; lParam: LPARAM; dwFlags: DWORD): Integer; stdcall;
  4369. {$EXTERNALSYM EnumFontFamiliesExA}
  4370. function EnumFontFamiliesExW(hdc: HDC; lpLogFont: LPLOGFONTW; lpEnumFontFamExProc: FONTENUMPROCW; lParam: LPARAM; dwFlags: DWORD): Integer; stdcall;
  4371. {$EXTERNALSYM EnumFontFamiliesExW}
  4372. function EnumFontFamiliesEx(hdc: HDC; lpLogFont: LPLOGFONT; lpEnumFontFamExProc: FONTENUMPROC; lParam: LPARAM; dwFlags: DWORD): Integer; stdcall;
  4373. {$EXTERNALSYM EnumFontFamiliesEx}
  4374. function EnumFontFamiliesA(hdc: HDC; lpszFamily: LPCSTR; lpEnumFontFamProc: FONTENUMPROCA; lParam: LPARAM): Integer; stdcall;
  4375. {$EXTERNALSYM EnumFontFamiliesA}
  4376. function EnumFontFamiliesW(hdc: HDC; lpszFamily: LPCWSTR; lpEnumFontFamProc: FONTENUMPROCW; lParam: LPARAM): Integer; stdcall;
  4377. {$EXTERNALSYM EnumFontFamiliesW}
  4378. function EnumFontFamilies(hdc: HDC; lpszFamily: LPCTSTR; lpEnumFontFamProc: FONTENUMPROC; lParam: LPARAM): Integer; stdcall;
  4379. {$EXTERNALSYM EnumFontFamilies}
  4380. function EnumFontsA(hdc: HDC; lpFaceName: LPCSTR; lpFontFunc: FONTENUMPROCA; lParam: LPARAM): Integer; stdcall;
  4381. {$EXTERNALSYM EnumFontsA}
  4382. function EnumFontsW(hdc: HDC; lpFaceName: LPCWSTR; lpFontFunc: FONTENUMPROCW; lParam: LPARAM): Integer; stdcall;
  4383. {$EXTERNALSYM EnumFontsW}
  4384. function EnumFonts(hdc: HDC; lpFaceName: LPCTSTR; lpFontFunc: FONTENUMPROC; lParam: LPARAM): Integer; stdcall;
  4385. {$EXTERNALSYM EnumFonts}
  4386. function EnumObjects(hdc: HDC; mObjectType: Integer; lpObjectFunc: GOBJENUMPROC; lParam: LPARAM): Integer; stdcall;
  4387. {$EXTERNALSYM EnumObjects}
  4388. function EqualRgn(hSrcRgn1, hSrcRgn2: HRGN): BOOL; stdcall;
  4389. {$EXTERNALSYM EqualRgn}
  4390. function Escape(hdc: HDC; nEscape, cbInput: Integer; lpvInData: LPCSTR; lpvOutData: LPVOID): Integer; stdcall;
  4391. {$EXTERNALSYM Escape}
  4392. function ExtEscape(hdc: HDC; nEscape, cbInput: Integer; lpszInData: LPCSTR; cbOutput: Integer; lpszOutData: LPSTR): Integer; stdcall;
  4393. {$EXTERNALSYM ExtEscape}
  4394. function ExcludeClipRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): Integer; stdcall;
  4395. {$EXTERNALSYM ExcludeClipRect}
  4396. function ExtCreateRegion(lpXForm: LPXFORM; nCount: DWORD; lpRgnData: LPRGNDATA): HRGN; stdcall;
  4397. {$EXTERNALSYM ExtCreateRegion}
  4398. function ExtFloodFill(hdc: HDC; nXStart, nYStart: Integer; crColor: COLORREF; fuFillType: UINT): BOOL; stdcall;
  4399. {$EXTERNALSYM ExtFloodFill}
  4400. function FillRgn(hdc: HDC; hrgn: HRGN; hbr: HBRUSH): BOOL; stdcall;
  4401. {$EXTERNALSYM FillRgn}
  4402. function FloodFill(hdc: HDC; nXStart, nYStart: Integer; crFill: COLORREF): BOOL; stdcall;
  4403. {$EXTERNALSYM FloodFill}
  4404. function FrameRgn(hdc: HDC; hrgn: HRGN; hbr: HBRUSH; nWidth, nHeight: Integer): BOOL; stdcall;
  4405. {$EXTERNALSYM FrameRgn}
  4406. function GetROP2(hdc: HDC): Integer; stdcall;
  4407. {$EXTERNALSYM GetROP2}
  4408. function GetAspectRatioFilterEx(hdc: HDC; var lpAspectRatio: TSize): BOOL; stdcall;
  4409. {$EXTERNALSYM GetAspectRatioFilterEx}
  4410. function GetBkColor(hdc: HDC): COLORREF; stdcall;
  4411. {$EXTERNALSYM GetBkColor}
  4412. function GetDCBrushColor(hdc: HDC): COLORREF; stdcall;
  4413. {$EXTERNALSYM GetDCBrushColor}
  4414. function GetDCPenColor(hdc: HDC): COLORREF; stdcall;
  4415. {$EXTERNALSYM GetDCPenColor}
  4416. function GetBkMode(hdc: HDC): Integer; stdcall;
  4417. {$EXTERNALSYM GetBkMode}
  4418. function GetBitmapBits(hbmp: HBITMAP; cbBuffer: LONG; lpvBits: LPVOID): LONG; stdcall;
  4419. {$EXTERNALSYM GetBitmapBits}
  4420. function GetBitmapDimensionEx(hBitmap: HBITMAP; var lpDimension: TSize): BOOL; stdcall;
  4421. {$EXTERNALSYM GetBitmapDimensionEx}
  4422. function GetBoundsRect(hdc: HDC; var lprcBounds: RECT; flags: UINT): UINT; stdcall;
  4423. {$EXTERNALSYM GetBoundsRect}
  4424. function GetBrushOrgEx(hdc: HDC; var lppt: POINT): BOOL; stdcall;
  4425. {$EXTERNALSYM GetBrushOrgEx}
  4426. function GetCharWidthA(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4427. {$EXTERNALSYM GetCharWidthA}
  4428. function GetCharWidthW(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4429. {$EXTERNALSYM GetCharWidthW}
  4430. function GetCharWidth(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4431. {$EXTERNALSYM GetCharWidth}
  4432. function GetCharWidth32A(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4433. {$EXTERNALSYM GetCharWidth32A}
  4434. function GetCharWidth32W(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4435. {$EXTERNALSYM GetCharWidth32W}
  4436. function GetCharWidth32(hdc: HDC; iFirstChar, iLastChar: UINT; lpBuffer: LPINT): BOOL; stdcall;
  4437. {$EXTERNALSYM GetCharWidth32}
  4438. function GetCharWidthFloatA(hdc: HDC; iFirstChar, iLastChar: UINT; pxBuffer: PFLOAT): BOOL; stdcall;
  4439. {$EXTERNALSYM GetCharWidthFloatA}
  4440. function GetCharWidthFloatW(hdc: HDC; iFirstChar, iLastChar: UINT; pxBuffer: PFLOAT): BOOL; stdcall;
  4441. {$EXTERNALSYM GetCharWidthFloatW}
  4442. function GetCharWidthFloat(hdc: HDC; iFirstChar, iLastChar: UINT; pxBuffer: PFLOAT): BOOL; stdcall;
  4443. {$EXTERNALSYM GetCharWidthFloat}
  4444. function GetCharABCWidthsA(hdc: HDC; uFirstChar, uLastChar: UINT; lpAbc: LPABC): BOOL; stdcall;
  4445. {$EXTERNALSYM GetCharABCWidthsA}
  4446. function GetCharABCWidthsW(hdc: HDC; uFirstChar, uLastChar: UINT; lpAbc: LPABC): BOOL; stdcall;
  4447. {$EXTERNALSYM GetCharABCWidthsW}
  4448. function GetCharABCWidths(hdc: HDC; uFirstChar, uLastChar: UINT; lpAbc: LPABC): BOOL; stdcall;
  4449. {$EXTERNALSYM GetCharABCWidths}
  4450. function GetCharABCWidthsFloatA(hdc: HDC; iFirstChar, iLastChar: UINT; lpAbcF: LPABCFLOAT): BOOL; stdcall;
  4451. {$EXTERNALSYM GetCharABCWidthsFloatA}
  4452. function GetCharABCWidthsFloatW(hdc: HDC; iFirstChar, iLastChar: UINT; lpAbcF: LPABCFLOAT): BOOL; stdcall;
  4453. {$EXTERNALSYM GetCharABCWidthsFloatW}
  4454. function GetCharABCWidthsFloat(hdc: HDC; iFirstChar, iLastChar: UINT; lpAbcF: LPABCFLOAT): BOOL; stdcall;
  4455. {$EXTERNALSYM GetCharABCWidthsFloat}
  4456. function GetClipBox(hdc: HDC; var lprc: RECT): Integer; stdcall;
  4457. {$EXTERNALSYM GetClipBox}
  4458. function GetClipRgn(hdc: HDC; hrgn: HRGN): Integer; stdcall;
  4459. {$EXTERNALSYM GetClipRgn}
  4460. function GetMetaRgn(hdc: HDC; hrgn: HRGN): Integer; stdcall;
  4461. {$EXTERNALSYM GetMetaRgn}
  4462. function GetCurrentObject(hdc: HDC; uObjectType: UINT): HGDIOBJ; stdcall;
  4463. {$EXTERNALSYM GetCurrentObject}
  4464. function GetCurrentPositionEx(hdc: HDC; var lpPoint: POINT): BOOL; stdcall;
  4465. {$EXTERNALSYM GetCurrentPositionEx}
  4466. function GetDeviceCaps(hdc: HDC; nIndex: Integer): Integer; stdcall;
  4467. {$EXTERNALSYM GetDeviceCaps}
  4468. function GetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: LPVOID; var lpbi: BITMAPINFO; uUsage: UINT): Integer; stdcall;
  4469. {$EXTERNALSYM GetDIBits}
  4470. function GetFontData(hdc: HDC; dwTable, dwOffset: DWORD; lpvBuffer: LPVOID; cbData: DWORD): DWORD; stdcall;
  4471. {$EXTERNALSYM GetFontData}
  4472. function GetGlyphOutlineA(hdc: HDC; uChar, uFormat: UINT; var lpgm: GLYPHMETRICS; cbBuffer: DWORD; lpvBuffer: LPVOID; const lpMat2: MAT2): DWORD; stdcall;
  4473. {$EXTERNALSYM GetGlyphOutlineA}
  4474. function GetGlyphOutlineW(hdc: HDC; uChar, uFormat: UINT; var lpgm: GLYPHMETRICS; cbBuffer: DWORD; lpvBuffer: LPVOID; const lpMat2: MAT2): DWORD; stdcall;
  4475. {$EXTERNALSYM GetGlyphOutlineW}
  4476. function GetGlyphOutline(hdc: HDC; uChar, uFormat: UINT; var lpgm: GLYPHMETRICS; cbBuffer: DWORD; lpvBuffer: LPVOID; const lpMat2: MAT2): DWORD; stdcall;
  4477. {$EXTERNALSYM GetGlyphOutline}
  4478. function GetGraphicsMode(hdc: HDC): Integer; stdcall;
  4479. {$EXTERNALSYM GetGraphicsMode}
  4480. function GetMapMode(hdc: HDC): Integer; stdcall;
  4481. {$EXTERNALSYM GetMapMode}
  4482. function GetMetaFileBitsEx(hmf: HMETAFILE; nSize: UINT; lpvData: LPVOID): UINT; stdcall;
  4483. {$EXTERNALSYM GetMetaFileBitsEx}
  4484. function GetMetaFileA(lpszMetaFile: LPCSTR): HMETAFILE; stdcall;
  4485. {$EXTERNALSYM GetMetaFileA}
  4486. function GetMetaFileW(lpszMetaFile: LPCWSTR): HMETAFILE; stdcall;
  4487. {$EXTERNALSYM GetMetaFileW}
  4488. function GetMetaFile(lpszMetaFile: LPCTSTR): HMETAFILE; stdcall;
  4489. {$EXTERNALSYM GetMetaFile}
  4490. function GetNearestColor(hdc: HDC; crColor: COLORREF): COLORREF; stdcall;
  4491. {$EXTERNALSYM GetNearestColor}
  4492. function GetNearestPaletteIndex(hPal: HPALETTE; crColor: COLORREF): UINT; stdcall;
  4493. {$EXTERNALSYM GetNearestPaletteIndex}
  4494. function GetObjectType(h: HGDIOBJ): DWORD; stdcall;
  4495. {$EXTERNALSYM GetObjectType}
  4496. function GetOutlineTextMetricsA(hdc: HDC; cbData: UINT; lpOTM: LPOUTLINETEXTMETRICA): UINT; stdcall;
  4497. {$EXTERNALSYM GetOutlineTextMetricsA}
  4498. function GetOutlineTextMetricsW(hdc: HDC; cbData: UINT; lpOTM: LPOUTLINETEXTMETRICW): UINT; stdcall;
  4499. {$EXTERNALSYM GetOutlineTextMetricsW}
  4500. function GetOutlineTextMetrics(hdc: HDC; cbData: UINT; lpOTM: LPOUTLINETEXTMETRIC): UINT; stdcall;
  4501. {$EXTERNALSYM GetOutlineTextMetrics}
  4502. function GetPaletteEntries(hPal: HPALETTE; iStartIndex, nEntries: UINT; lppe: LPPALETTEENTRY): UINT; stdcall;
  4503. {$EXTERNALSYM GetPaletteEntries}
  4504. function GetPixel(hdc: HDC; nXPos, nYPos: Integer): COLORREF; stdcall;
  4505. {$EXTERNALSYM GetPixel}
  4506. function GetPixelFormat(hdc: HDC): Integer; stdcall;
  4507. {$EXTERNALSYM GetPixelFormat}
  4508. function GetPolyFillMode(hdc: HDC): Integer; stdcall;
  4509. {$EXTERNALSYM GetPolyFillMode}
  4510. function GetRasterizerCaps(var lprs: RASTERIZER_STATUS; cb: UINT): BOOL; stdcall;
  4511. {$EXTERNALSYM GetRasterizerCaps}
  4512. function GetRandomRgn(hdc: HDC; hrgn: HRGN; iNum: Integer): Integer; stdcall;
  4513. {$EXTERNALSYM GetRandomRgn}
  4514. function GetRegionData(hrgn: HRGN; dwCount: DWORD; lpRgnData: LPRGNDATA): DWORD; stdcall;
  4515. {$EXTERNALSYM GetRegionData}
  4516. function GetRgnBox(hrgn: HRGN; var lprc: RECT): Integer; stdcall;
  4517. {$EXTERNALSYM GetRgnBox}
  4518. function GetStockObject(fnObject: Integer): HGDIOBJ; stdcall;
  4519. {$EXTERNALSYM GetStockObject}
  4520. function GetStretchBltMode(hdc: HDC): Integer; stdcall;
  4521. {$EXTERNALSYM GetStretchBltMode}
  4522. function GetSystemPaletteEntries(hdc: HDC; iStartIndex, nEntries: UINT; lppe: LPPALETTEENTRY): UINT; stdcall;
  4523. {$EXTERNALSYM GetSystemPaletteEntries}
  4524. function GetSystemPaletteUse(hdc: HDC): UINT; stdcall;
  4525. {$EXTERNALSYM GetSystemPaletteUse}
  4526. function GetTextCharacterExtra(hdc: HDC): Integer; stdcall;
  4527. {$EXTERNALSYM GetTextCharacterExtra}
  4528. function GetTextAlign(hdc: HDC): UINT; stdcall;
  4529. {$EXTERNALSYM GetTextAlign}
  4530. function GetTextColor(hdc: HDC): COLORREF; stdcall;
  4531. {$EXTERNALSYM GetTextColor}
  4532. function GetTextExtentPointA(hdc: HDC; lpString: LPCSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4533. {$EXTERNALSYM GetTextExtentPointA}
  4534. function GetTextExtentPointW(hdc: HDC; lpString: LPCWSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4535. {$EXTERNALSYM GetTextExtentPointW}
  4536. function GetTextExtentPoint(hdc: HDC; lpString: LPCTSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4537. {$EXTERNALSYM GetTextExtentPoint}
  4538. function GetTextExtentPoint32A(hdc: HDC; lpString: LPCSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4539. {$EXTERNALSYM GetTextExtentPoint32A}
  4540. function GetTextExtentPoint32W(hdc: HDC; lpString: LPCWSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4541. {$EXTERNALSYM GetTextExtentPoint32W}
  4542. function GetTextExtentPoint32(hdc: HDC; lpString: LPCTSTR; cbString: Integer; var Size: TSize): BOOL; stdcall;
  4543. {$EXTERNALSYM GetTextExtentPoint32}
  4544. function GetTextExtentExPointA(hdc: HDC; lpszStr: LPCSTR; cchString, nMaxExtend: Integer; lpnFit, alpDx: LPINT; var lpSize: TSize): BOOL; stdcall;
  4545. {$EXTERNALSYM GetTextExtentExPointA}
  4546. function GetTextExtentExPointW(hdc: HDC; lpszStr: LPCWSTR; cchString, nMaxExtend: Integer; lpnFit, alpDx: LPINT; var lpSize: TSize): BOOL; stdcall;
  4547. {$EXTERNALSYM GetTextExtentExPointW}
  4548. function GetTextExtentExPoint(hdc: HDC; lpszStr: LPCTSTR; cchString, nMaxExtend: Integer; lpnFit, alpDx: LPINT; var lpSize: TSize): BOOL; stdcall;
  4549. {$EXTERNALSYM GetTextExtentExPoint}
  4550. function GetTextCharset(hdc: HDC): Integer; stdcall;
  4551. {$EXTERNALSYM GetTextCharset}
  4552. function GetTextCharsetInfo(hdc: HDC; lpSig: LPFONTSIGNATURE; dwFlags: DWORD): Integer; stdcall;
  4553. {$EXTERNALSYM GetTextCharsetInfo}
  4554. function TranslateCharsetInfo(lpSrc: LPDWORD; lpCs: LPCHARSETINFO; dwFlags: DWORD): BOOL; stdcall;
  4555. {$EXTERNALSYM TranslateCharsetInfo}
  4556. function GetFontLanguageInfo(hdc: HDC): DWORD; stdcall;
  4557. {$EXTERNALSYM GetFontLanguageInfo}
  4558. function GetCharacterPlacementA(hdc: HDC; lpString: LPCSTR; nCount, nMaxExtend: Integer; var lpResults: GCP_RESULTSA; dwFlags: DWORD): DWORD; stdcall;
  4559. {$EXTERNALSYM GetCharacterPlacementA}
  4560. function GetCharacterPlacementW(hdc: HDC; lpString: LPCWSTR; nCount, nMaxExtend: Integer; var lpResults: GCP_RESULTSW; dwFlags: DWORD): DWORD; stdcall;
  4561. {$EXTERNALSYM GetCharacterPlacementW}
  4562. function GetCharacterPlacement(hdc: HDC; lpString: LPCTSTR; nCount, nMaxExtend: Integer; var lpResults: GCP_RESULTS; dwFlags: DWORD): DWORD; stdcall;
  4563. {$EXTERNALSYM GetCharacterPlacement}
  4564. type
  4565. PWcRange = ^TWcRange;
  4566. tagWCRANGE = record
  4567. wcLow: WCHAR;
  4568. cGlyphs: USHORT;
  4569. end;
  4570. {$EXTERNALSYM tagWCRANGE}
  4571. WCRANGE = tagWCRANGE;
  4572. {$EXTERNALSYM WCRANGE}
  4573. LPWCRANGE = ^WCRANGE;
  4574. {$EXTERNALSYM LPWCRANGE}
  4575. TWcRange = WCRANGE;
  4576. PGlyphSet = ^TGlyphSet;
  4577. tagGLYPHSET = record
  4578. cbThis: DWORD;
  4579. flAccel: DWORD;
  4580. cGlyphsSupported: DWORD;
  4581. cRanges: DWORD;
  4582. ranges: array [0..0] of WCRANGE;
  4583. end;
  4584. {$EXTERNALSYM tagGLYPHSET}
  4585. GLYPHSET = tagGLYPHSET;
  4586. {$EXTERNALSYM GLYPHSET}
  4587. LPGLYPHSET = ^GLYPHSET;
  4588. {$EXTERNALSYM LPGLYPHSET}
  4589. TGlyphSet = GLYPHSET;
  4590. // flAccel flags for the GLYPHSET structure above
  4591. const
  4592. GS_8BIT_INDICES = $00000001;
  4593. {$EXTERNALSYM GS_8BIT_INDICES}
  4594. // flags for GetGlyphIndices
  4595. GGI_MARK_NONEXISTING_GLYPHS = $0001;
  4596. {$EXTERNALSYM GGI_MARK_NONEXISTING_GLYPHS}
  4597. function GetFontUnicodeRanges(hdc: HDC; lpgs: LPGLYPHSET): DWORD; stdcall;
  4598. {$EXTERNALSYM GetFontUnicodeRanges}
  4599. function GetGlyphIndicesA(hdc: HDC; lpstr: LPCSTR; c: Integer; pgi: LPWORD; fl: DWORD): DWORD; stdcall;
  4600. {$EXTERNALSYM GetGlyphIndicesA}
  4601. function GetGlyphIndicesW(hdc: HDC; lpstr: LPCWSTR; c: Integer; pgi: LPWORD; fl: DWORD): DWORD; stdcall;
  4602. {$EXTERNALSYM GetGlyphIndicesW}
  4603. function GetGlyphIndices(hdc: HDC; lpstr: LPCTSTR; c: Integer; pgi: LPWORD; fl: DWORD): DWORD; stdcall;
  4604. {$EXTERNALSYM GetGlyphIndices}
  4605. function GetTextExtentPointI(hdc: HDC; pgiIn: LPWORD; cgi: Integer; lpSize: LPSIZE): BOOL; stdcall;
  4606. {$EXTERNALSYM GetTextExtentPointI}
  4607. function GetTextExtentExPointI(hdc: HDC; pgiIn: LPWORD; cgi, nMaxExtend: Integer;
  4608. lpnFit, alpDx: LPINT; lpSize: LPSIZE): BOOL; stdcall;
  4609. {$EXTERNALSYM GetTextExtentExPointI}
  4610. function GetCharWidthI(hdc: HDC; giFirst, cgi: UINT; pgi: LPWORD; lpBuffer: LPINT): BOOL; stdcall;
  4611. {$EXTERNALSYM GetCharWidthI}
  4612. function GetCharABCWidthsI(hdc: HDC; giFirst, cgi: UINT; pgi: LPWORD; lpAbc: LPABC): BOOL; stdcall;
  4613. {$EXTERNALSYM GetCharABCWidthsI}
  4614. const
  4615. STAMP_DESIGNVECTOR = $8000000 + Ord('d') + (Ord('v') shl 8);
  4616. {$EXTERNALSYM STAMP_DESIGNVECTOR}
  4617. STAMP_AXESLIST = $8000000 + Ord('a') + (Ord('l') shl 8);
  4618. {$EXTERNALSYM STAMP_AXESLIST}
  4619. MM_MAX_NUMAXES = 16;
  4620. {$EXTERNALSYM MM_MAX_NUMAXES}
  4621. type
  4622. PDesignVector = ^TDesignVector;
  4623. tagDESIGNVECTOR = record
  4624. dvReserved: DWORD;
  4625. dvNumAxes: DWORD;
  4626. dvValues: array [0..MM_MAX_NUMAXES - 1] of LONG;
  4627. end;
  4628. {$EXTERNALSYM tagDESIGNVECTOR}
  4629. DESIGNVECTOR = tagDESIGNVECTOR;
  4630. {$EXTERNALSYM DESIGNVECTOR}
  4631. LPDESIGNVECTOR = ^DESIGNVECTOR;
  4632. {$EXTERNALSYM LPDESIGNVECTOR}
  4633. TDesignVector = DESIGNVECTOR;
  4634. function AddFontResourceExA(lpszFilename: LPCSTR; fl: DWORD; pdv: PVOID): Integer; stdcall;
  4635. {$EXTERNALSYM AddFontResourceExA}
  4636. function AddFontResourceExW(lpszFilename: LPCWSTR; fl: DWORD; pdv: PVOID): Integer; stdcall;
  4637. {$EXTERNALSYM AddFontResourceExW}
  4638. function AddFontResourceEx(lpszFilename: LPCTSTR; fl: DWORD; pdv: PVOID): Integer; stdcall;
  4639. {$EXTERNALSYM AddFontResourceEx}
  4640. function RemoveFontResourceExA(lpFilename: LPCSTR; fl: DWORD; pdv: PVOID): BOOL; stdcall;
  4641. {$EXTERNALSYM RemoveFontResourceExA}
  4642. function RemoveFontResourceExW(lpFilename: LPCWSTR; fl: DWORD; pdv: PVOID): BOOL; stdcall;
  4643. {$EXTERNALSYM RemoveFontResourceExW}
  4644. function RemoveFontResourceEx(lpFilename: LPCTSTR; fl: DWORD; pdv: PVOID): BOOL; stdcall;
  4645. {$EXTERNALSYM RemoveFontResourceEx}
  4646. function AddFontMemResourceEx(pbFont: PVOID; cbFont: DWORD; pdv: PVOID; pcFonts: LPDWORD): HANDLE; stdcall;
  4647. {$EXTERNALSYM AddFontMemResourceEx}
  4648. function RemoveFontMemResourceEx(fh: HANDLE): BOOL; stdcall;
  4649. {$EXTERNALSYM RemoveFontMemResourceEx}
  4650. const
  4651. FR_PRIVATE = $10;
  4652. {$EXTERNALSYM FR_PRIVATE}
  4653. FR_NOT_ENUM = $20;
  4654. {$EXTERNALSYM FR_NOT_ENUM}
  4655. // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures
  4656. // is determined by dvNumAxes,
  4657. // MM_MAX_NUMAXES only detemines the maximal size allowed
  4658. const
  4659. MM_MAX_AXES_NAMELEN = 16;
  4660. {$EXTERNALSYM MM_MAX_AXES_NAMELEN}
  4661. type
  4662. PAxisInfoA = ^TAxisInfoA;
  4663. tagAXISINFOA = record
  4664. axMinValue: LONG;
  4665. axMaxValue: LONG;
  4666. axAxisName: array [0..MM_MAX_AXES_NAMELEN - 1] of BYTE;
  4667. end;
  4668. {$EXTERNALSYM tagAXISINFOA}
  4669. AXISINFOA = tagAXISINFOA;
  4670. {$EXTERNALSYM AXISINFOA}
  4671. LPAXISINFOA = ^AXISINFOA;
  4672. {$EXTERNALSYM LPAXISINFOA}
  4673. TAxisInfoA = AXISINFOA;
  4674. PAxisInfoW = ^TAxisInfoW;
  4675. tagAXISINFOW = record
  4676. axMinValue: LONG;
  4677. axMaxValue: LONG;
  4678. axAxisName: array [0..MM_MAX_AXES_NAMELEN - 1] of WCHAR;
  4679. end;
  4680. {$EXTERNALSYM tagAXISINFOW}
  4681. AXISINFOW = tagAXISINFOW;
  4682. {$EXTERNALSYM AXISINFOW}
  4683. LPAXISINFOW = ^AXISINFOW;
  4684. {$EXTERNALSYM LPAXISINFOW}
  4685. TAxisInfoW = AXISINFOW;
  4686. {$IFDEF UNICODE}
  4687. AXISINFO = AXISINFOW;
  4688. {$EXTERNALSYM AXISINFO}
  4689. PAXISINFO = PAXISINFOW;
  4690. {$EXTERNALSYM PAXISINFO}
  4691. LPAXISINFO = LPAXISINFOW;
  4692. {$EXTERNALSYM LPAXISINFO}
  4693. TAxisInfo = TAxisInfoW;
  4694. {$ELSE}
  4695. AXISINFO = AXISINFOA;
  4696. {$EXTERNALSYM AXISINFO}
  4697. PAXISINFO = PAXISINFOA;
  4698. {$EXTERNALSYM PAXISINFO}
  4699. LPAXISINFO = LPAXISINFOA;
  4700. {$EXTERNALSYM LPAXISINFO}
  4701. TAxisInfo = TAxisInfoA;
  4702. {$ENDIF UNICODE}
  4703. PAxesListA = ^TAxesListA;
  4704. tagAXESLISTA = record
  4705. axlReserved: DWORD;
  4706. axlNumAxes: DWORD;
  4707. axlAxisInfo: array [0..MM_MAX_NUMAXES - 1] of AXISINFOA;
  4708. end;
  4709. {$EXTERNALSYM tagAXESLISTA}
  4710. AXESLISTA = tagAXESLISTA;
  4711. {$EXTERNALSYM AXESLISTA}
  4712. LPAXESLISTA = ^AXESLISTA;
  4713. {$EXTERNALSYM LPAXESLISTA}
  4714. TAxesListA = tagAXESLISTA;
  4715. PAxesListW = ^TAxesListW;
  4716. tagAXESLISTW = record
  4717. axlReserved: DWORD;
  4718. axlNumAxes: DWORD;
  4719. axlAxisInfo: array [0..MM_MAX_NUMAXES - 1] of AXISINFOW;
  4720. end;
  4721. {$EXTERNALSYM tagAXESLISTW}
  4722. AXESLISTW = tagAXESLISTW;
  4723. {$EXTERNALSYM AXESLISTW}
  4724. LPAXESLISTW = ^AXESLISTW;
  4725. {$EXTERNALSYM LPAXESLISTW}
  4726. TAxesListW = tagAXESLISTW;
  4727. {$IFDEF UNICODE}
  4728. AXESLIST = AXESLISTW;
  4729. {$EXTERNALSYM AXESLIST}
  4730. PAXESLIST = PAXESLISTW;
  4731. {$EXTERNALSYM PAXESLIST}
  4732. LPAXESLIST = LPAXESLISTW;
  4733. {$EXTERNALSYM LPAXESLIST}
  4734. TAxesList = TAxesListW;
  4735. {$ELSE}
  4736. AXESLIST = AXESLISTA;
  4737. {$EXTERNALSYM AXESLIST}
  4738. PAXESLIST = PAXESLISTA;
  4739. {$EXTERNALSYM PAXESLIST}
  4740. LPAXESLIST = LPAXESLISTA;
  4741. {$EXTERNALSYM LPAXESLIST}
  4742. TAxesList = TAxesListA;
  4743. {$ENDIF UNICODE}
  4744. // The actual size of the AXESLIST and ENUMTEXTMETRIC structure is
  4745. // determined by axlNumAxes,
  4746. // MM_MAX_NUMAXES only detemines the maximal size allowed
  4747. PEnumLogFontExDVA = ^TEnumLogFontExDVA;
  4748. tagENUMLOGFONTEXDVA = record
  4749. elfEnumLogfontEx: ENUMLOGFONTEXA;
  4750. elfDesignVector: DESIGNVECTOR;
  4751. end;
  4752. {$EXTERNALSYM tagENUMLOGFONTEXDVA}
  4753. ENUMLOGFONTEXDVA = tagENUMLOGFONTEXDVA;
  4754. {$EXTERNALSYM ENUMLOGFONTEXDVA}
  4755. LPENUMLOGFONTEXDVA = ^ENUMLOGFONTEXDVA;
  4756. {$EXTERNALSYM LPENUMLOGFONTEXDVA}
  4757. TEnumLogFontExDVA = tagENUMLOGFONTEXDVA;
  4758. PEnumLogFontExDVW = ^TEnumLogFontExDVW;
  4759. tagENUMLOGFONTEXDVW = record
  4760. elfEnumLogfontEx: ENUMLOGFONTEXW;
  4761. elfDesignVector: DESIGNVECTOR;
  4762. end;
  4763. {$EXTERNALSYM tagENUMLOGFONTEXDVw}
  4764. ENUMLOGFONTEXDVW = tagENUMLOGFONTEXDVW;
  4765. {$EXTERNALSYM ENUMLOGFONTEXDVW}
  4766. LPENUMLOGFONTEXDVW = ^ENUMLOGFONTEXDVW;
  4767. {$EXTERNALSYM LPENUMLOGFONTEXDVW}
  4768. TEnumLogFontExDVW = tagENUMLOGFONTEXDVW;
  4769. {$IFDEF UNICODE}
  4770. ENUMLOGFONTEXDV = ENUMLOGFONTEXDVW;
  4771. {$EXTERNALSYM ENUMLOGFONTEXDV}
  4772. PENUMLOGFONTEXDV = PENUMLOGFONTEXDVW;
  4773. {$EXTERNALSYM PENUMLOGFONTEXDV}
  4774. LPENUMLOGFONTEXDV = LPENUMLOGFONTEXDVW;
  4775. {$EXTERNALSYM LPENUMLOGFONTEXDV}
  4776. TEnumLogFontExDV = TEnumLogFontExDVW;
  4777. {$ELSE}
  4778. ENUMLOGFONTEXDV = ENUMLOGFONTEXDVA;
  4779. {$EXTERNALSYM ENUMLOGFONTEXDV}
  4780. PENUMLOGFONTEXDV = PENUMLOGFONTEXDVA;
  4781. {$EXTERNALSYM PENUMLOGFONTEXDV}
  4782. LPENUMLOGFONTEXDV = LPENUMLOGFONTEXDVA;
  4783. {$EXTERNALSYM LPENUMLOGFONTEXDV}
  4784. TEnumLogFontExDV = TEnumLogFontExDVA;
  4785. {$ENDIF UNICODE}
  4786. function CreateFontIndirectExA(penumlfex: LPENUMLOGFONTEXDVA): HFONT; stdcall;
  4787. {$EXTERNALSYM CreateFontIndirectExA}
  4788. function CreateFontIndirectExW(penumlfex: LPENUMLOGFONTEXDVW): HFONT; stdcall;
  4789. {$EXTERNALSYM CreateFontIndirectExW}
  4790. function CreateFontIndirectEx(penumlfex: LPENUMLOGFONTEXDV): HFONT; stdcall;
  4791. {$EXTERNALSYM CreateFontIndirectEx}
  4792. type
  4793. PEnumTextMetricA = ^TEnumTextMetricA;
  4794. tagENUMTEXTMETRICA = record
  4795. etmNewTextMetricEx: NEWTEXTMETRICEXA;
  4796. etmAxesList: AXESLISTA;
  4797. end;
  4798. {$EXTERNALSYM tagENUMTEXTMETRICA}
  4799. ENUMTEXTMETRICA = tagENUMTEXTMETRICA;
  4800. {$EXTERNALSYM ENUMTEXTMETRICA}
  4801. LPENUMTEXTMETRICA = ^ENUMTEXTMETRICA;
  4802. {$EXTERNALSYM LPENUMTEXTMETRICA}
  4803. TEnumTextMetricA = tagENUMTEXTMETRICA;
  4804. PEnumTextMetricW = ^TEnumTextMetricW;
  4805. tagENUMTEXTMETRICW = record
  4806. etmNewTextMetricEx: NEWTEXTMETRICEXW;
  4807. etmAxesList: AXESLISTW;
  4808. end;
  4809. {$EXTERNALSYM tagENUMTEXTMETRICW}
  4810. ENUMTEXTMETRICW = tagENUMTEXTMETRICW;
  4811. {$EXTERNALSYM ENUMTEXTMETRICW}
  4812. LPENUMTEXTMETRICW = ^ENUMTEXTMETRICW;
  4813. {$EXTERNALSYM LPENUMTEXTMETRICW}
  4814. TEnumTextMetricW = tagENUMTEXTMETRICW;
  4815. {$IFDEF UNICODE}
  4816. ENUMTEXTMETRIC = ENUMTEXTMETRICW;
  4817. {$EXTERNALSYM ENUMTEXTMETRIC}
  4818. PENUMTEXTMETRIC = PENUMTEXTMETRICW;
  4819. {$EXTERNALSYM PENUMTEXTMETRIC}
  4820. LPENUMTEXTMETRIC = LPENUMTEXTMETRICW;
  4821. {$EXTERNALSYM LPENUMTEXTMETRIC}
  4822. TEnumTextMetric = TEnumTextMetricW;
  4823. {$ELSE}
  4824. ENUMTEXTMETRIC = ENUMTEXTMETRICA;
  4825. {$EXTERNALSYM ENUMTEXTMETRIC}
  4826. PENUMTEXTMETRIC = PENUMTEXTMETRICA;
  4827. {$EXTERNALSYM PENUMTEXTMETRIC}
  4828. LPENUMTEXTMETRIC = LPENUMTEXTMETRICA;
  4829. {$EXTERNALSYM LPENUMTEXTMETRIC}
  4830. TEnumTextMetric = TEnumTextMetricA;
  4831. {$ENDIF UNICODE}
  4832. function GetViewportExtEx(hdc: HDC; var lpSize: TSize): BOOL; stdcall;
  4833. {$EXTERNALSYM GetViewportExtEx}
  4834. function GetViewportOrgEx(hdc: HDC; var lpPoint: POINT): BOOL; stdcall;
  4835. {$EXTERNALSYM GetViewportOrgEx}
  4836. function GetWindowExtEx(hdc: HDC; var lpSize: TSize): BOOL; stdcall;
  4837. {$EXTERNALSYM GetWindowExtEx}
  4838. function GetWindowOrgEx(hdc: HDC; var lpPoint: POINT): BOOL; stdcall;
  4839. {$EXTERNALSYM GetWindowOrgEx}
  4840. function IntersectClipRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): Integer; stdcall;
  4841. {$EXTERNALSYM IntersectClipRect}
  4842. function InvertRgn(hdc: HDC; hrgn: HRGN): BOOL; stdcall;
  4843. {$EXTERNALSYM InvertRgn}
  4844. function LineDDA(nXStart, nYStart, nXEnd, nYEnd: Integer; lpLineFunc: LINEDDAPROC; lpData: LPARAM): BOOL; stdcall;
  4845. {$EXTERNALSYM LineDDA}
  4846. function LineTo(hdc: HDC; nXEnd, nYEnd: Integer): BOOL; stdcall;
  4847. {$EXTERNALSYM LineTo}
  4848. function MaskBlt(hdc: HDC; nXDest, nYDest, nWidth, nHeight: Integer; hdcSrc: HDC; nXSrc, nYSrc: Integer; hbmMask: HBITMAP; xMask, yMask: Integer; dwRop: DWORD): BOOL; stdcall;
  4849. {$EXTERNALSYM MaskBlt}
  4850. function PlgBlt(hdc: HDC; lpPoint: LPPOINT; hdcSrc: HDC; nXSrc, nYSrc, nWidth, nHeight: Integer; hbmMask: HBITMAP; xMask, yMask: Integer): BOOL; stdcall;
  4851. {$EXTERNALSYM PlgBlt}
  4852. function OffsetClipRgn(hdc: HDC; nXOffset, nYOffset: Integer): Integer; stdcall;
  4853. {$EXTERNALSYM OffsetClipRgn}
  4854. function OffsetRgn(hrgn: HRGN; nXOffset, nYOffset: Integer): Integer; stdcall;
  4855. {$EXTERNALSYM OffsetRgn}
  4856. function PatBlt(hdc: HDC; nXLeft, nYLeft, nWidth, nHeight: Integer; dwRop: DWORD): BOOL; stdcall;
  4857. {$EXTERNALSYM PatBlt}
  4858. function Pie(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nXRadial1, nYRadial1, nXRadial2, nYRadial2: Integer): BOOL; stdcall;
  4859. {$EXTERNALSYM Pie}
  4860. function PlayMetaFile(hdc: HDC; hmf: HMETAFILE): BOOL; stdcall;
  4861. {$EXTERNALSYM PlayMetaFile}
  4862. function PaintRgn(hdc: HDC; hrgn: HRGN): BOOL; stdcall;
  4863. {$EXTERNALSYM PaintRgn}
  4864. function PolyPolygon(hdc: HDC; lpPoints: LPPOINT; lpPolyCounts: LPINT; nCount: Integer): BOOL; stdcall;
  4865. {$EXTERNALSYM PolyPolygon}
  4866. function PtInRegion(hrgn: HRGN; X, Y: Integer): BOOL; stdcall;
  4867. {$EXTERNALSYM PtInRegion}
  4868. function PtVisible(hdc: HDC; X, Y: Integer): BOOL; stdcall;
  4869. {$EXTERNALSYM PtVisible}
  4870. function RectInRegion(hrgn: HRGN; const lprc: RECT): BOOL; stdcall;
  4871. {$EXTERNALSYM RectInRegion}
  4872. function RectVisible(hdc: HDC; const lprc: RECT): BOOL; stdcall;
  4873. {$EXTERNALSYM RectVisible}
  4874. function Rectangle(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): BOOL; stdcall;
  4875. {$EXTERNALSYM Rectangle}
  4876. function RestoreDC(hdc: HDC; nSavedDc: Integer): BOOL; stdcall;
  4877. {$EXTERNALSYM RestoreDC}
  4878. function ResetDCA(hdc: HDC; const lpInitData: DEVMODEA): HDC; stdcall;
  4879. {$EXTERNALSYM ResetDCA}
  4880. function ResetDCW(hdc: HDC; const lpInitData: DEVMODEW): HDC; stdcall;
  4881. {$EXTERNALSYM ResetDCW}
  4882. function ResetDC(hdc: HDC; const lpInitData: DEVMODE): HDC; stdcall;
  4883. {$EXTERNALSYM ResetDC}
  4884. function RealizePalette(hdc: HDC): UINT; stdcall;
  4885. {$EXTERNALSYM RealizePalette}
  4886. function RemoveFontResourceA(lpFileName: LPCSTR): BOOL; stdcall;
  4887. {$EXTERNALSYM RemoveFontResourceA}
  4888. function RemoveFontResourceW(lpFileName: LPCWSTR): BOOL; stdcall;
  4889. {$EXTERNALSYM RemoveFontResourceW}
  4890. function RemoveFontResource(lpFileName: LPCTSTR): BOOL; stdcall;
  4891. {$EXTERNALSYM RemoveFontResource}
  4892. function RoundRect(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nWidth, nHeight: Integer): BOOL; stdcall;
  4893. {$EXTERNALSYM RoundRect}
  4894. function ResizePalette(hPal: HPALETTE; nEntries: UINT): BOOL; stdcall;
  4895. {$EXTERNALSYM ResizePalette}
  4896. function SaveDC(hdc: HDC): Integer; stdcall;
  4897. {$EXTERNALSYM SaveDC}
  4898. function SelectClipRgn(hdc: HDC; hrgn: HRGN): Integer; stdcall;
  4899. {$EXTERNALSYM SelectClipRgn}
  4900. function ExtSelectClipRgn(hdc: HDC; hrgn: HRGN; fnMode: Integer): Integer; stdcall;
  4901. {$EXTERNALSYM ExtSelectClipRgn}
  4902. function SetMetaRgn(hdc: HDC): Integer; stdcall;
  4903. {$EXTERNALSYM SetMetaRgn}
  4904. function SelectObject(hdc: HDC; hgdiobj: HGDIOBJ): HGDIOBJ; stdcall;
  4905. {$EXTERNALSYM SelectObject}
  4906. function SelectPalette(hdc: HDC; hpal: HPALETTE; nForceBackground: BOOL): HPALETTE; stdcall;
  4907. {$EXTERNALSYM SelectPalette}
  4908. function SetBkColor(hdc: HDC; crColor: COLORREF): COLORREF; stdcall;
  4909. {$EXTERNALSYM SetBkColor}
  4910. function SetDCBrushColor(hdc: HDC; crColor: COLORREF): COLORREF; stdcall;
  4911. {$EXTERNALSYM SetDCBrushColor}
  4912. function SetDCPenColor(hdc: HDC; crColor: COLORREF): COLORREF; stdcall;
  4913. {$EXTERNALSYM SetDCPenColor}
  4914. function SetBkMode(hdc: HDC; iBlMode: Integer): Integer; stdcall;
  4915. {$EXTERNALSYM SetBkMode}
  4916. function SetBitmapBits(hbmp: HBITMAP; cBytes: DWORD; lpBits: LPVOID): LONG; stdcall;
  4917. {$EXTERNALSYM SetBitmapBits}
  4918. function SetBoundsRect(hdc: HDC; lprcBounds: LPRECT; flags: UINT): UINT; stdcall;
  4919. {$EXTERNALSYM SetBoundsRect}
  4920. function SetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: LPVOID; const lpbmi: BITMAPINFO; fuColorUse: UINT): Integer; stdcall;
  4921. {$EXTERNALSYM SetDIBits}
  4922. function SetDIBitsToDevice(hdc: HDC; xDest, yDest: Integer; dwWidth, dwHeight: DWORD; XSrc, YSrc: Integer; uStartScan, cScanLines: UINT; lpvBits: LPVOID; const lpbmi: BITMAPINFO; fuColorUse: UINT): Integer; stdcall;
  4923. {$EXTERNALSYM SetDIBitsToDevice}
  4924. function SetMapperFlags(hdc: HDC; dwFlag: DWORD): DWORD; stdcall;
  4925. {$EXTERNALSYM SetMapperFlags}
  4926. function SetGraphicsMode(hdc: HDC; iMode: Integer): Integer; stdcall;
  4927. {$EXTERNALSYM SetGraphicsMode}
  4928. function SetMapMode(hdc: HDC; fnMapMode: Integer): Integer; stdcall;
  4929. {$EXTERNALSYM SetMapMode}
  4930. function SetLayout(hdc: HDC; dwLayOut: DWORD): DWORD; stdcall;
  4931. {$EXTERNALSYM SetLayout}
  4932. function GetLayout(hdc: HDC): DWORD; stdcall;
  4933. {$EXTERNALSYM GetLayout}
  4934. function SetMetaFileBitsEx(nSize: UINT; lpData: LPBYTE): HMETAFILE; stdcall;
  4935. {$EXTERNALSYM SetMetaFileBitsEx}
  4936. function SetPaletteEntries(hPal: HPALETTE; cStart, nEntries: UINT; lppe: LPPALETTEENTRY): UINT; stdcall;
  4937. {$EXTERNALSYM SetPaletteEntries}
  4938. function SetPixel(hdc: HDC; X, Y: Integer; crColor: COLORREF): COLORREF; stdcall;
  4939. {$EXTERNALSYM SetPixel}
  4940. function SetPixelV(hdc: HDC; X, Y: Integer; crColor: COLORREF): BOOL; stdcall;
  4941. {$EXTERNALSYM SetPixelV}
  4942. function SetPixelFormat(hdc: HDC; iPixelFormat: Integer; const ppfd: PIXELFORMATDESCRIPTOR): BOOL; stdcall;
  4943. {$EXTERNALSYM SetPixelFormat}
  4944. function SetPolyFillMode(hdc: HDC; iPolyFillMode: Integer): Integer; stdcall;
  4945. {$EXTERNALSYM SetPolyFillMode}
  4946. function StretchBlt(hdc: HDC; nXOriginDest, nYOriginDest, nWidthDest, nHeightDest: Integer; hdcSrc: HDC; nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc: Integer; dwRop: DWORD): BOOL; stdcall;
  4947. {$EXTERNALSYM StretchBlt}
  4948. function SetRectRgn(hrgn: HRGN; nLeftRect, nTopRect, nRightRect, nBottomRect: Integer): BOOL; stdcall;
  4949. {$EXTERNALSYM SetRectRgn}
  4950. function StretchDIBits(hdc: HDC; XDest, YDest, nDestWidth, nYDestHeight, XSrc, YSrc, nSrcWidth, nSrcHeight: Integer; lpBits: LPVOID; const lpBitsInfo: BITMAPINFO; iUsage: UINT; dwRop: DWORD): Integer; stdcall;
  4951. {$EXTERNALSYM StretchDIBits}
  4952. function SetROP2(hdc: HDC; fnDrawMode: Integer): Integer; stdcall;
  4953. {$EXTERNALSYM SetROP2}
  4954. function SetStretchBltMode(hdc: HDC; iStretchMode: Integer): Integer; stdcall;
  4955. {$EXTERNALSYM SetStretchBltMode}
  4956. function SetSystemPaletteUse(hdc: HDC; uUsage: UINT): UINT; stdcall;
  4957. {$EXTERNALSYM SetSystemPaletteUse}
  4958. function SetTextCharacterExtra(hdc: HDC; nCharExtra: Integer): Integer; stdcall;
  4959. {$EXTERNALSYM SetTextCharacterExtra}
  4960. function SetTextColor(hdc: HDC; crColor: COLORREF): COLORREF; stdcall;
  4961. {$EXTERNALSYM SetTextColor}
  4962. function SetTextAlign(hdc: HDC; fMode: UINT): UINT; stdcall;
  4963. {$EXTERNALSYM SetTextAlign}
  4964. function SetTextJustification(hdc: HDC; nBreakExtra, nBreakCount: Integer): BOOL; stdcall;
  4965. {$EXTERNALSYM SetTextJustification}
  4966. function UpdateColors(hdc: HDC): BOOL; stdcall;
  4967. {$EXTERNALSYM UpdateColors}
  4968. //
  4969. // image blt
  4970. //
  4971. type
  4972. COLOR16 = USHORT;
  4973. {$EXTERNALSYM COLOR16}
  4974. PTriVertex = ^TTriVertex;
  4975. _TRIVERTEX = record
  4976. x: LONG;
  4977. y: LONG;
  4978. Red: COLOR16;
  4979. Green: COLOR16;
  4980. Blue: COLOR16;
  4981. Alpha: COLOR16;
  4982. end;
  4983. {$EXTERNALSYM _TRIVERTEX}
  4984. TRIVERTEX = _TRIVERTEX;
  4985. {$EXTERNALSYM TRIVERTEX}
  4986. LPTRIVERTEX = ^TRIVERTEX;
  4987. {$EXTERNALSYM LPTRIVERTEX}
  4988. TTriVertex = _TRIVERTEX;
  4989. PGradientTriangle = ^TGradientTriangle;
  4990. _GRADIENT_TRIANGLE = record
  4991. Vertex1: ULONG;
  4992. Vertex2: ULONG;
  4993. Vertex3: ULONG;
  4994. end;
  4995. {$EXTERNALSYM _GRADIENT_TRIANGLE}
  4996. GRADIENT_TRIANGLE = _GRADIENT_TRIANGLE;
  4997. {$EXTERNALSYM GRADIENT_TRIANGLE}
  4998. LPGRADIENT_TRIANGLE = ^GRADIENT_TRIANGLE;
  4999. {$EXTERNALSYM LPGRADIENT_TRIANGLE}
  5000. PGRADIENT_TRIANGLE = ^GRADIENT_TRIANGLE;
  5001. {$EXTERNALSYM PGRADIENT_TRIANGLE}
  5002. TGradientTriangle = _GRADIENT_TRIANGLE;
  5003. PGradientRect = ^TGradientRect;
  5004. _GRADIENT_RECT = record
  5005. UpperLeft: ULONG;
  5006. LowerRight: ULONG;
  5007. end;
  5008. {$EXTERNALSYM _GRADIENT_RECT}
  5009. GRADIENT_RECT = _GRADIENT_RECT;
  5010. {$EXTERNALSYM GRADIENT_RECT}
  5011. LPGRADIENT_RECT = ^GRADIENT_RECT;
  5012. {$EXTERNALSYM LPGRADIENT_RECT}
  5013. PGRADIENT_RECT = ^GRADIENT_RECT;
  5014. {$EXTERNALSYM PGRADIENT_RECT}
  5015. TGradientRect = _GRADIENT_RECT;
  5016. PBlendFunction = ^TBlendFunction;
  5017. _BLENDFUNCTION = record
  5018. BlendOp: BYTE;
  5019. BlendFlags: BYTE;
  5020. SourceConstantAlpha: BYTE;
  5021. AlphaFormat: BYTE;
  5022. end;
  5023. {$EXTERNALSYM _BLENDFUNCTION}
  5024. BLENDFUNCTION = _BLENDFUNCTION;
  5025. {$EXTERNALSYM BLENDFUNCTION}
  5026. LPBLENDFUNCTION = ^BLENDFUNCTION;
  5027. {$EXTERNALSYM LPBLENDFUNCTION}
  5028. TBlendFunction = _BLENDFUNCTION;
  5029. //
  5030. // currentlly defined blend function
  5031. //
  5032. const
  5033. AC_SRC_OVER = $00;
  5034. {$EXTERNALSYM AC_SRC_OVER}
  5035. //
  5036. // alpha format flags
  5037. //
  5038. AC_SRC_ALPHA = $01;
  5039. {$EXTERNALSYM AC_SRC_ALPHA}
  5040. function AlphaBlend(hdcDest: HDC; nXOriginDest, nYOriginDest, nWidthDest,
  5041. nHeightDest: Integer; hdcSrc: HDC; nXOriginSrc, nYOriginSrc, nWidthSrc,
  5042. nHeightSrc: Integer; blendFunction: BLENDFUNCTION): BOOL; stdcall;
  5043. {$EXTERNALSYM AlphaBlend}
  5044. function TransparentBlt(hdcSrc: HDC; nXOriginSrc, nYOriginSrc, nWidthSrc,
  5045. nHeightSrc: Integer; hdcDest: HDC; nXOriginDest, nYOriginDest, nWidthDest,
  5046. nHeightDest: Integer; blendFunction: BLENDFUNCTION): BOOL; stdcall;
  5047. {$EXTERNALSYM TransparentBlt}
  5048. //
  5049. // gradient drawing modes
  5050. //
  5051. const
  5052. GRADIENT_FILL_RECT_H = $00000000;
  5053. {$EXTERNALSYM GRADIENT_FILL_RECT_H}
  5054. GRADIENT_FILL_RECT_V = $00000001;
  5055. {$EXTERNALSYM GRADIENT_FILL_RECT_V}
  5056. GRADIENT_FILL_TRIANGLE = $00000002;
  5057. {$EXTERNALSYM GRADIENT_FILL_TRIANGLE}
  5058. GRADIENT_FILL_OP_FLAG = $000000ff;
  5059. {$EXTERNALSYM GRADIENT_FILL_OP_FLAG}
  5060. function GradientFill(hdc: HDC; pVertex: PTRIVERTEX; dwNumVertex: ULONG; pMesh: PVOID; dwNumMesh, dwMode: ULONG): BOOL; stdcall;
  5061. {$EXTERNALSYM GradientFill}
  5062. function PlayMetaFileRecord(hdc: HDC; lpHandleTable: LPHANDLETABLE; lpMetaRecord: LPMETARECORD; nHandles: UINT): BOOL; stdcall;
  5063. {$EXTERNALSYM PlayMetaFileRecord}
  5064. type
  5065. MFENUMPROC = function(hdc: HDC; lpHTable: LPHANDLETABLE; lpMFR: LPMETARECORD; nObj: Integer; lpClientData: LPARAM): Integer; stdcall;
  5066. {$EXTERNALSYM MFENUMPROC}
  5067. function EnumMetaFile(hdc: HDC; hemf: HMETAFILE; lpMetaFunc: MFENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5068. {$EXTERNALSYM EnumMetaFile}
  5069. type
  5070. ENHMFENUMPROC = function(hdc: HDC; lpHTable: LPHANDLETABLE; lpEMFR: LPENHMETARECORD; nObj: Integer; lpData: LPARAM): Integer; stdcall;
  5071. {$EXTERNALSYM ENHMFENUMPROC}
  5072. // Enhanced Metafile Function Declarations
  5073. function CloseEnhMetaFile(hdc: HDC): HENHMETAFILE; stdcall;
  5074. {$EXTERNALSYM CloseEnhMetaFile}
  5075. function CopyEnhMetaFileA(hemfSrc: HENHMETAFILE; lpszFile: LPCSTR): HENHMETAFILE; stdcall;
  5076. {$EXTERNALSYM CopyEnhMetaFileA}
  5077. function CopyEnhMetaFileW(hemfSrc: HENHMETAFILE; lpszFile: LPCWSTR): HENHMETAFILE; stdcall;
  5078. {$EXTERNALSYM CopyEnhMetaFileW}
  5079. function CopyEnhMetaFile(hemfSrc: HENHMETAFILE; lpszFile: LPCTSTR): HENHMETAFILE; stdcall;
  5080. {$EXTERNALSYM CopyEnhMetaFile}
  5081. function CreateEnhMetaFileA(hdcRef: HDC; lpFileName: LPCSTR; const lpRect: RECT; lpDescription: LPCSTR): HDC; stdcall;
  5082. {$EXTERNALSYM CreateEnhMetaFileA}
  5083. function CreateEnhMetaFileW(hdcRef: HDC; lpFileName: LPCWSTR; const lpRect: RECT; lpDescription: LPCWSTR): HDC; stdcall;
  5084. {$EXTERNALSYM CreateEnhMetaFileW}
  5085. function CreateEnhMetaFile(hdcRef: HDC; lpFileName: LPCTSTR; const lpRect: RECT; lpDescription: LPCTSTR): HDC; stdcall;
  5086. {$EXTERNALSYM CreateEnhMetaFile}
  5087. function DeleteEnhMetaFile(hemf: HENHMETAFILE): BOOL; stdcall;
  5088. {$EXTERNALSYM DeleteEnhMetaFile}
  5089. function EnumEnhMetaFile(hdc: HDC; hemf: HENHMETAFILE; lpEnhMetaFunc: ENHMFENUMPROC; lpData: LPVOID; const lpRect: RECT): BOOL; stdcall;
  5090. {$EXTERNALSYM EnumEnhMetaFile}
  5091. function GetEnhMetaFileA(lpszMetaFile: LPCSTR): HENHMETAFILE; stdcall;
  5092. {$EXTERNALSYM GetEnhMetaFileA}
  5093. function GetEnhMetaFileW(lpszMetaFile: LPCWSTR): HENHMETAFILE; stdcall;
  5094. {$EXTERNALSYM GetEnhMetaFileW}
  5095. function GetEnhMetaFile(lpszMetaFile: LPCTSTR): HENHMETAFILE; stdcall;
  5096. {$EXTERNALSYM GetEnhMetaFile}
  5097. function GetEnhMetaFileBits(hemf: HENHMETAFILE; cbBuffer: UINT; lpBuffer: LPBYTE): UINT; stdcall;
  5098. {$EXTERNALSYM GetEnhMetaFileBits}
  5099. function GetEnhMetaFileDescriptionA(hemf: HENHMETAFILE; cchBuffer: UINT; lpszDescription: LPSTR): UINT; stdcall;
  5100. {$EXTERNALSYM GetEnhMetaFileDescriptionA}
  5101. function GetEnhMetaFileDescriptionW(hemf: HENHMETAFILE; cchBuffer: UINT; lpszDescription: LPWSTR): UINT; stdcall;
  5102. {$EXTERNALSYM GetEnhMetaFileDescriptionW}
  5103. function GetEnhMetaFileDescription(hemf: HENHMETAFILE; cchBuffer: UINT; lpszDescription: LPTSTR): UINT; stdcall;
  5104. {$EXTERNALSYM GetEnhMetaFileDescription}
  5105. function GetEnhMetaFileHeader(hemf: HENHMETAFILE; cbBuffer: UINT; lpemh: LPENHMETAHEADER ): UINT; stdcall;
  5106. {$EXTERNALSYM GetEnhMetaFileHeader}
  5107. function GetEnhMetaFilePaletteEntries(hemf: HENHMETAFILE; cEntries: UINT; lppe: LPPALETTEENTRY ): UINT; stdcall;
  5108. {$EXTERNALSYM GetEnhMetaFilePaletteEntries}
  5109. function GetEnhMetaFilePixelFormat(hemf: HENHMETAFILE; cbBuffer: UINT; var ppfd: PIXELFORMATDESCRIPTOR): UINT; stdcall;
  5110. {$EXTERNALSYM GetEnhMetaFilePixelFormat}
  5111. function GetWinMetaFileBits(hemf: HENHMETAFILE; cbBuffer: UINT; lpbBuffer: LPBYTE; fnMapMode: Integer; hdcRef: HDC): UINT; stdcall;
  5112. {$EXTERNALSYM GetWinMetaFileBits}
  5113. function PlayEnhMetaFile(hdc: HDC; hemf: HENHMETAFILE; const lpRect: RECT): BOOL; stdcall;
  5114. {$EXTERNALSYM PlayEnhMetaFile}
  5115. function PlayEnhMetaFileRecord(hdc: HDC; lpHandleTable: LPHANDLETABLE; lpEnhMetaRecord: LPENHMETARECORD; nHandles: UINT): BOOL; stdcall;
  5116. {$EXTERNALSYM PlayEnhMetaFileRecord}
  5117. function SetEnhMetaFileBits(cbBuffer: UINT; lpData: LPBYTE): HENHMETAFILE; stdcall;
  5118. {$EXTERNALSYM SetEnhMetaFileBits}
  5119. function SetWinMetaFileBits(cbBuffer: UINT; lpbBuffer: LPBYTE; hdcRef: HDC; const lpmfp: METAFILEPICT): HENHMETAFILE; stdcall;
  5120. {$EXTERNALSYM SetWinMetaFileBits}
  5121. function GdiComment(hdc: HDC; cbSize: UINT; lpData: LPBYTE): BOOL; stdcall;
  5122. {$EXTERNALSYM GdiComment}
  5123. function GetTextMetricsA(hdc: HDC; var lptm: TEXTMETRICA): BOOL; stdcall;
  5124. {$EXTERNALSYM GetTextMetricsA}
  5125. function GetTextMetricsW(hdc: HDC; var lptm: TEXTMETRICW): BOOL; stdcall;
  5126. {$EXTERNALSYM GetTextMetricsW}
  5127. function GetTextMetrics(hdc: HDC; var lptm: TEXTMETRIC): BOOL; stdcall;
  5128. {$EXTERNALSYM GetTextMetrics}
  5129. // new GDI
  5130. type
  5131. PDibSection = ^TDibSection;
  5132. tagDIBSECTION = record
  5133. dsBm: BITMAP;
  5134. dsBmih: BITMAPINFOHEADER;
  5135. dsBitfields: array [0..2] of DWORD;
  5136. dshSection: HANDLE;
  5137. dsOffset: DWORD;
  5138. end;
  5139. {$EXTERNALSYM tagDIBSECTION}
  5140. DIBSECTION = tagDIBSECTION;
  5141. {$EXTERNALSYM DIBSECTION}
  5142. LPDIBSECTION = ^DIBSECTION;
  5143. {$EXTERNALSYM LPDIBSECTION}
  5144. TDibSection = DIBSECTION;
  5145. function AngleArc(hdc: HDC; X, Y: Integer; dwRadius: DWORD; eStartAngle, eSweepAngle: FLOAT): BOOL; stdcall;
  5146. {$EXTERNALSYM AngleArc}
  5147. function PolyPolyline(hdc: HDC; lppt: LPPOINT; lpdwPolyPoints: LPDWORD; cCount: DWORD): BOOL; stdcall;
  5148. {$EXTERNALSYM PolyPolyline}
  5149. function GetWorldTransform(hdc: HDC; lpXform: LPXFORM): BOOL; stdcall;
  5150. {$EXTERNALSYM GetWorldTransform}
  5151. function SetWorldTransform(hdc: HDC; lpXform: LPXFORM): BOOL; stdcall;
  5152. {$EXTERNALSYM SetWorldTransform}
  5153. function ModifyWorldTransform(hdc: HDC; lpXform: LPXFORM; iMode: DWORD): BOOL; stdcall;
  5154. {$EXTERNALSYM ModifyWorldTransform}
  5155. function CombineTransform(lpxformResult, lpXform1, lpXform2: LPXFORM): BOOL; stdcall;
  5156. {$EXTERNALSYM CombineTransform}
  5157. function CreateDIBSection(hdc: HDC; pbmi: LPBITMAPINFO; iUsage: UINT;
  5158. ppvBits: PPVOID; hSection: HANDLE; dwOffset: DWORD): HBITMAP; stdcall;
  5159. {$EXTERNALSYM CreateDIBSection}
  5160. function GetDIBColorTable(hdc: HDC; uStartIndex, cEntries: UINT; pColors: PRGBQUAD): UINT; stdcall;
  5161. {$EXTERNALSYM GetDIBColorTable}
  5162. function SetDIBColorTable(hdc: HDC; uStartIndex, cEntries: UINT; pColors: PRGBQUAD): UINT; stdcall;
  5163. {$EXTERNALSYM SetDIBColorTable}
  5164. // Flags value for COLORADJUSTMENT
  5165. const
  5166. CA_NEGATIVE = $0001;
  5167. {$EXTERNALSYM CA_NEGATIVE}
  5168. CA_LOG_FILTER = $0002;
  5169. {$EXTERNALSYM CA_LOG_FILTER}
  5170. // IlluminantIndex values
  5171. ILLUMINANT_DEVICE_DEFAULT = 0;
  5172. {$EXTERNALSYM ILLUMINANT_DEVICE_DEFAULT}
  5173. ILLUMINANT_A = 1;
  5174. {$EXTERNALSYM ILLUMINANT_A}
  5175. ILLUMINANT_B = 2;
  5176. {$EXTERNALSYM ILLUMINANT_B}
  5177. ILLUMINANT_C = 3;
  5178. {$EXTERNALSYM ILLUMINANT_C}
  5179. ILLUMINANT_D50 = 4;
  5180. {$EXTERNALSYM ILLUMINANT_D50}
  5181. ILLUMINANT_D55 = 5;
  5182. {$EXTERNALSYM ILLUMINANT_D55}
  5183. ILLUMINANT_D65 = 6;
  5184. {$EXTERNALSYM ILLUMINANT_D65}
  5185. ILLUMINANT_D75 = 7;
  5186. {$EXTERNALSYM ILLUMINANT_D75}
  5187. ILLUMINANT_F2 = 8;
  5188. {$EXTERNALSYM ILLUMINANT_F2}
  5189. ILLUMINANT_MAX_INDEX = ILLUMINANT_F2;
  5190. {$EXTERNALSYM ILLUMINANT_MAX_INDEX}
  5191. ILLUMINANT_TUNGSTEN = ILLUMINANT_A;
  5192. {$EXTERNALSYM ILLUMINANT_TUNGSTEN}
  5193. ILLUMINANT_DAYLIGHT = ILLUMINANT_C;
  5194. {$EXTERNALSYM ILLUMINANT_DAYLIGHT}
  5195. ILLUMINANT_FLUORESCENT = ILLUMINANT_F2;
  5196. {$EXTERNALSYM ILLUMINANT_FLUORESCENT}
  5197. ILLUMINANT_NTSC = ILLUMINANT_C;
  5198. {$EXTERNALSYM ILLUMINANT_NTSC}
  5199. // Min and max for RedGamma, GreenGamma, BlueGamma
  5200. RGB_GAMMA_MIN = WORD(02500);
  5201. {$EXTERNALSYM RGB_GAMMA_MIN}
  5202. RGB_GAMMA_MAX = WORD(65000);
  5203. {$EXTERNALSYM RGB_GAMMA_MAX}
  5204. // Min and max for ReferenceBlack and ReferenceWhite
  5205. REFERENCE_WHITE_MIN = WORD(6000);
  5206. {$EXTERNALSYM REFERENCE_WHITE_MIN}
  5207. REFERENCE_WHITE_MAX = WORD(10000);
  5208. {$EXTERNALSYM REFERENCE_WHITE_MAX}
  5209. REFERENCE_BLACK_MIN = WORD(0);
  5210. {$EXTERNALSYM REFERENCE_BLACK_MIN}
  5211. REFERENCE_BLACK_MAX = WORD(4000);
  5212. {$EXTERNALSYM REFERENCE_BLACK_MAX}
  5213. // Min and max for Contrast, Brightness, Colorfulness, RedGreenTint
  5214. COLOR_ADJ_MIN = SHORT(-100);
  5215. {$EXTERNALSYM COLOR_ADJ_MIN}
  5216. COLOR_ADJ_MAX = SHORT(100);
  5217. {$EXTERNALSYM COLOR_ADJ_MAX}
  5218. type
  5219. PColorAdjustment = ^TColorAdjustment;
  5220. tagCOLORADJUSTMENT = record
  5221. caSize: WORD;
  5222. caFlags: WORD;
  5223. caIlluminantIndex: WORD;
  5224. caRedGamma: WORD;
  5225. caGreenGamma: WORD;
  5226. caBlueGamma: WORD;
  5227. caReferenceBlack: WORD;
  5228. caReferenceWhite: WORD;
  5229. caContrast: SHORT;
  5230. caBrightness: SHORT;
  5231. caColorfulness: SHORT;
  5232. caRedGreenTint: SHORT;
  5233. end;
  5234. {$EXTERNALSYM tagCOLORADJUSTMENT}
  5235. COLORADJUSTMENT = tagCOLORADJUSTMENT;
  5236. {$EXTERNALSYM COLORADJUSTMENT}
  5237. LPCOLORADJUSTMENT = ^COLORADJUSTMENT;
  5238. {$EXTERNALSYM LPCOLORADJUSTMENT}
  5239. TColorAdjustment = COLORADJUSTMENT;
  5240. function SetColorAdjustment(hdc: HDC; lpca: LPCOLORADJUSTMENT): BOOL; stdcall;
  5241. {$EXTERNALSYM SetColorAdjustment}
  5242. function GetColorAdjustment(hdc: HDC; lpca: LPCOLORADJUSTMENT): BOOL; stdcall;
  5243. {$EXTERNALSYM GetColorAdjustment}
  5244. function CreateHalftonePalette(hdc: HDC): HPALETTE; stdcall;
  5245. {$EXTERNALSYM CreateHalftonePalette}
  5246. type
  5247. ABORTPROC = function(hdc: HDC; iError: Integer): BOOL; stdcall;
  5248. {$EXTERNALSYM ABORTPROC}
  5249. PDocInfoA = ^TDocInfoA;
  5250. _DOCINFOA = record
  5251. cbSize: Integer;
  5252. lpszDocName: LPCSTR;
  5253. lpszOutput: LPCSTR;
  5254. lpszDatatype: LPCSTR;
  5255. fwType: DWORD;
  5256. end;
  5257. {$EXTERNALSYM _DOCINFOA}
  5258. DOCINFOA = _DOCINFOA;
  5259. {$EXTERNALSYM DOCINFOA}
  5260. LPDOCINFOA = ^DOCINFOA;
  5261. {$EXTERNALSYM LPDOCINFOA}
  5262. TDocInfoA = _DOCINFOA;
  5263. PDocInfoW = ^TDocInfoW;
  5264. _DOCINFOW = record
  5265. cbSize: Integer;
  5266. lpszDocName: LPCWSTR;
  5267. lpszOutput: LPCWSTR;
  5268. lpszDatatype: LPCWSTR;
  5269. fwType: DWORD;
  5270. end;
  5271. {$EXTERNALSYM _DOCINFOW}
  5272. DOCINFOW = _DOCINFOW;
  5273. {$EXTERNALSYM DOCINFOW}
  5274. LPDOCINFOW = ^DOCINFOW;
  5275. {$EXTERNALSYM LPDOCINFOW}
  5276. TDocInfoW = _DOCINFOW;
  5277. {$IFDEF UNICODE}
  5278. DOCINFO = DOCINFOW;
  5279. {$EXTERNALSYM DOCINFO}
  5280. LPDOCINFO = LPDOCINFOW;
  5281. {$EXTERNALSYM LPDOCINFO}
  5282. TDocInfo = TDocInfoW;
  5283. PDocInfo = PDocInfoW;
  5284. {$ELSE}
  5285. DOCINFO = DOCINFOA;
  5286. {$EXTERNALSYM DOCINFO}
  5287. LPDOCINFO = LPDOCINFOA;
  5288. {$EXTERNALSYM LPDOCINFO}
  5289. TDocInfo = TDocInfoA;
  5290. PDocInfo = PDocInfoA;
  5291. {$ENDIF UNICODE}
  5292. const
  5293. DI_APPBANDING = $00000001;
  5294. {$EXTERNALSYM DI_APPBANDING}
  5295. DI_ROPS_READ_DESTINATION = $00000002;
  5296. {$EXTERNALSYM DI_ROPS_READ_DESTINATION}
  5297. function StartDocA(hdc: HDC; const lpdi: DOCINFOA): Integer; stdcall;
  5298. {$EXTERNALSYM StartDocA}
  5299. function StartDocW(hdc: HDC; const lpdi: DOCINFOW): Integer; stdcall;
  5300. {$EXTERNALSYM StartDocW}
  5301. function StartDoc(hdc: HDC; const lpdi: DOCINFO): Integer; stdcall;
  5302. {$EXTERNALSYM StartDoc}
  5303. function EndDoc(dc: HDC): Integer; stdcall;
  5304. {$EXTERNALSYM EndDoc}
  5305. function StartPage(dc: HDC): Integer; stdcall;
  5306. {$EXTERNALSYM StartPage}
  5307. function EndPage(dc: HDC): Integer; stdcall;
  5308. {$EXTERNALSYM EndPage}
  5309. function AbortDoc(dc: HDC): Integer; stdcall;
  5310. {$EXTERNALSYM AbortDoc}
  5311. function SetAbortProc(dc: HDC; lpAbortProc: ABORTPROC): Integer; stdcall;
  5312. {$EXTERNALSYM SetAbortProc}
  5313. function AbortPath(hdc: HDC): BOOL; stdcall;
  5314. {$EXTERNALSYM AbortPath}
  5315. function ArcTo(hdc: HDC; nLeftRect, nTopRect, nRightRect, nBottomRect, nXRadial1, nYRadial1, nXRadial2, nYRadial2: Integer): BOOL; stdcall;
  5316. {$EXTERNALSYM ArcTo}
  5317. function BeginPath(hdc: HDC): BOOL; stdcall;
  5318. {$EXTERNALSYM BeginPath}
  5319. function CloseFigure(hdc: HDC): BOOL; stdcall;
  5320. {$EXTERNALSYM CloseFigure}
  5321. function EndPath(hdc: HDC): BOOL; stdcall;
  5322. {$EXTERNALSYM EndPath}
  5323. function FillPath(hdc: HDC): BOOL; stdcall;
  5324. {$EXTERNALSYM FillPath}
  5325. function FlattenPath(hdc: HDC): BOOL; stdcall;
  5326. {$EXTERNALSYM FlattenPath}
  5327. function GetPath(hdc: HDC; lpPoints: LPPOINT; lpTypes: LPBYTE; nSize: Integer): Integer; stdcall;
  5328. {$EXTERNALSYM GetPath}
  5329. function PathToRegion(hdc: HDC): HRGN; stdcall;
  5330. {$EXTERNALSYM PathToRegion}
  5331. function PolyDraw(hdc: HDC; lppt: LPPOINT; lpbTypes: LPBYTE; cCount: Integer): BOOL; stdcall;
  5332. {$EXTERNALSYM PolyDraw}
  5333. function SelectClipPath(hdc: HDC; iMode: Integer): BOOL; stdcall;
  5334. {$EXTERNALSYM SelectClipPath}
  5335. function SetArcDirection(hdc: HDC; ArcDirection: Integer): Integer; stdcall;
  5336. {$EXTERNALSYM SetArcDirection}
  5337. function SetMiterLimit(hdc: HDC; eNewLimit: FLOAT; peOldLimit: PFLOAT): BOOL; stdcall;
  5338. {$EXTERNALSYM SetMiterLimit}
  5339. function StrokeAndFillPath(hdc: HDC): BOOL; stdcall;
  5340. {$EXTERNALSYM StrokeAndFillPath}
  5341. function StrokePath(hdc: HDC): BOOL; stdcall;
  5342. {$EXTERNALSYM StrokePath}
  5343. function WidenPath(hdc: HDC): BOOL; stdcall;
  5344. {$EXTERNALSYM WidenPath}
  5345. function ExtCreatePen(dwPenStyle, dwWidth: DWORD; const lplb: LOGBRUSH; dwStyleCount: DWORD; lpStyle: DWORD): HPEN; stdcall;
  5346. {$EXTERNALSYM ExtCreatePen}
  5347. function GetMiterLimit(hdc: HDC; var peLimit: FLOAT): BOOL; stdcall;
  5348. {$EXTERNALSYM GetMiterLimit}
  5349. function GetArcDirection(hdc: HDC): Integer; stdcall;
  5350. {$EXTERNALSYM GetArcDirection}
  5351. function GetObjectA(hgdiobj: HGDIOBJ; cbBuffer: Integer; lpvObject: LPVOID): Integer; stdcall;
  5352. {$EXTERNALSYM GetObjectA}
  5353. function GetObjectW(hgdiobj: HGDIOBJ; cbBuffer: Integer; lpvObject: LPVOID): Integer; stdcall;
  5354. {$EXTERNALSYM GetObjectW}
  5355. function GetObject(hgdiobj: HGDIOBJ; cbBuffer: Integer; lpvObject: LPVOID): Integer; stdcall;
  5356. {$EXTERNALSYM GetObject}
  5357. function MoveToEx(hdc: HDC; X, Y: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5358. {$EXTERNALSYM MoveToEx}
  5359. function TextOutA(hdc: HDC; nXStart, nYStart: Integer; lpString: LPCSTR; cbString: Integer): BOOL; stdcall;
  5360. {$EXTERNALSYM TextOutA}
  5361. function TextOutW(hdc: HDC; nXStart, nYStart: Integer; lpString: LPCWSTR; cbString: Integer): BOOL; stdcall;
  5362. {$EXTERNALSYM TextOutW}
  5363. function TextOut(hdc: HDC; nXStart, nYStart: Integer; lpString: LPCTSTR; cbString: Integer): BOOL; stdcall;
  5364. {$EXTERNALSYM TextOut}
  5365. function ExtTextOutA(hdc: HDC; X, Y: Integer; fuOptions: UINT; lprc: LPRECT; lpString: LPCSTR; cbCount: UINT; lpDx: LPINT): BOOL; stdcall;
  5366. {$EXTERNALSYM ExtTextOutA}
  5367. function ExtTextOutW(hdc: HDC; X, Y: Integer; fuOptions: UINT; lprc: LPRECT; lpString: LPCWSTR; cbCount: UINT; lpDx: LPINT): BOOL; stdcall;
  5368. {$EXTERNALSYM ExtTextOutW}
  5369. function ExtTextOut(hdc: HDC; X, Y: Integer; fuOptions: UINT; lprc: LPRECT; lpString: LPCTSTR; cbCount: UINT; lpDx: LPINT): BOOL; stdcall;
  5370. {$EXTERNALSYM ExtTextOut}
  5371. function PolyTextOutA(hdc: HDC; pptxt: LPPOLYTEXTA; cStrings: Integer): BOOL; stdcall;
  5372. {$EXTERNALSYM PolyTextOutA}
  5373. function PolyTextOutW(hdc: HDC; pptxt: LPPOLYTEXTW; cStrings: Integer): BOOL; stdcall;
  5374. {$EXTERNALSYM PolyTextOutW}
  5375. function PolyTextOut(hdc: HDC; pptxt: LPPOLYTEXT; cStrings: Integer): BOOL; stdcall;
  5376. {$EXTERNALSYM PolyTextOut}
  5377. function CreatePolygonRgn(lppt: LPPOINT; cPoints, fnPolyFillMode: Integer): HRGN; stdcall;
  5378. {$EXTERNALSYM CreatePolygonRgn}
  5379. function DPtoLP(hdc: HDC; lpPoints: LPPOINT; nCount: Integer): BOOL; stdcall;
  5380. {$EXTERNALSYM DPtoLP}
  5381. function LPtoDP(hdc: HDC; lpPoints: LPPOINT; nCount: Integer): BOOL; stdcall;
  5382. {$EXTERNALSYM LPtoDP}
  5383. function Polygon(hdc: HDC; lpPoints: LPPOINT; nCount: Integer): BOOL; stdcall;
  5384. {$EXTERNALSYM Polygon}
  5385. function Polyline(hdc: HDC; lppt: LPPOINT; nCount: Integer): BOOL; stdcall;
  5386. {$EXTERNALSYM Polyline}
  5387. function PolyBezier(hdc: HDC; lppt: LPPOINT; cPoints: DWORD): BOOL; stdcall;
  5388. {$EXTERNALSYM PolyBezier}
  5389. function PolyBezierTo(hdc: HDC; lppt: LPPOINT; cCount: DWORD): BOOL; stdcall;
  5390. {$EXTERNALSYM PolyBezierTo}
  5391. function PolylineTo(hdc: HDC; lppt: LPPOINT; cCount: DWORD): BOOL; stdcall;
  5392. {$EXTERNALSYM PolylineTo}
  5393. function SetViewportExtEx(hdc: HDC; nXExtend, nYExtend: Integer; lpSize: LPSIZE): BOOL; stdcall;
  5394. {$EXTERNALSYM SetViewportExtEx}
  5395. function SetViewportOrgEx(hdc: HDC; X, Y: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5396. {$EXTERNALSYM SetViewportOrgEx}
  5397. function SetWindowExtEx(hdc: HDC; nXExtend, nYExtend: Integer; lpSize: LPSIZE): BOOL; stdcall;
  5398. {$EXTERNALSYM SetWindowExtEx}
  5399. function SetWindowOrgEx(hdc: HDC; X, Y: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5400. {$EXTERNALSYM SetWindowOrgEx}
  5401. function OffsetViewportOrgEx(hdc: HDC; nXOffset, nYOffset: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5402. {$EXTERNALSYM OffsetViewportOrgEx}
  5403. function OffsetWindowOrgEx(hdc: HDC; nXOffset, nYOffset: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5404. {$EXTERNALSYM OffsetWindowOrgEx}
  5405. function ScaleViewportExtEx(hdc: HDC; Xnum, Xdenom, Ynum, Ydenom: Integer; lpSize: LPSIZE): BOOL; stdcall;
  5406. {$EXTERNALSYM ScaleViewportExtEx}
  5407. function ScaleWindowExtEx(hdc: HDC; Xnum, Xdenom, Ynum, Ydenom: Integer; lpSize: LPSIZE): BOOL; stdcall;
  5408. {$EXTERNALSYM ScaleWindowExtEx}
  5409. function SetBitmapDimensionEx(hBitmap: HBITMAP; nWidth, nHeight: Integer; lpSize: LPSIZE): BOOL; stdcall;
  5410. {$EXTERNALSYM SetBitmapDimensionEx}
  5411. function SetBrushOrgEx(hdc: HDC; nXOrg, nYOrg: Integer; lppt: LPPOINT): BOOL; stdcall;
  5412. {$EXTERNALSYM SetBrushOrgEx}
  5413. function GetTextFaceA(hdc: HDC; nCount: Integer; lpFaceName: LPSTR): Integer; stdcall;
  5414. {$EXTERNALSYM GetTextFaceA}
  5415. function GetTextFaceW(hdc: HDC; nCount: Integer; lpFaceName: LPWSTR): Integer; stdcall;
  5416. {$EXTERNALSYM GetTextFaceW}
  5417. function GetTextFace(hdc: HDC; nCount: Integer; lpFaceName: LPTSTR): Integer; stdcall;
  5418. {$EXTERNALSYM GetTextFace}
  5419. const
  5420. FONTMAPPER_MAX = 10;
  5421. {$EXTERNALSYM FONTMAPPER_MAX}
  5422. type
  5423. PKerningPair = ^TKerningPair;
  5424. tagKERNINGPAIR = record
  5425. wFirst: WORD;
  5426. wSecond: WORD;
  5427. iKernAmount: Integer;
  5428. end;
  5429. {$EXTERNALSYM tagKERNINGPAIR}
  5430. KERNINGPAIR = tagKERNINGPAIR;
  5431. {$EXTERNALSYM KERNINGPAIR}
  5432. LPKERNINGPAIR = ^KERNINGPAIR;
  5433. {$EXTERNALSYM LPKERNINGPAIR}
  5434. TKerningPair = KERNINGPAIR;
  5435. function GetKerningPairsA(hDc: HDC; nNumPairs: DWORD; lpkrnpair: LPKERNINGPAIR): DWORD; stdcall;
  5436. {$EXTERNALSYM GetKerningPairsA}
  5437. function GetKerningPairsW(hDc: HDC; nNumPairs: DWORD; lpkrnpair: LPKERNINGPAIR): DWORD; stdcall;
  5438. {$EXTERNALSYM GetKerningPairsW}
  5439. function GetKerningPairs(hDc: HDC; nNumPairs: DWORD; lpkrnpair: LPKERNINGPAIR): DWORD; stdcall;
  5440. {$EXTERNALSYM GetKerningPairs}
  5441. function GetDCOrgEx(hdc: HDC; lpPoint: LPPOINT): BOOL; stdcall;
  5442. {$EXTERNALSYM GetDCOrgEx}
  5443. function FixBrushOrgEx(hDc: HDC; I1, I2: Integer; lpPoint: LPPOINT): BOOL; stdcall;
  5444. {$EXTERNALSYM FixBrushOrgEx}
  5445. function UnrealizeObject(hgdiobj: HGDIOBJ): BOOL; stdcall;
  5446. {$EXTERNALSYM UnrealizeObject}
  5447. function GdiFlush: BOOL; stdcall;
  5448. {$EXTERNALSYM GdiFlush}
  5449. function GdiSetBatchLimit(dwLimit: DWORD): DWORD; stdcall;
  5450. {$EXTERNALSYM GdiSetBatchLimit}
  5451. function GdiGetBatchLimit: DWORD; stdcall;
  5452. {$EXTERNALSYM GdiGetBatchLimit}
  5453. const
  5454. ICM_OFF = 1;
  5455. {$EXTERNALSYM ICM_OFF}
  5456. ICM_ON = 2;
  5457. {$EXTERNALSYM ICM_ON}
  5458. ICM_QUERY = 3;
  5459. {$EXTERNALSYM ICM_QUERY}
  5460. ICM_DONE_OUTSIDEDC = 4;
  5461. {$EXTERNALSYM ICM_DONE_OUTSIDEDC}
  5462. type
  5463. ICMENUMPROCA = function(lpszFileName: LPSTR; lParam: LPARAM): Integer; stdcall;
  5464. {$EXTERNALSYM ICMENUMPROCA}
  5465. ICMENUMPROCW = function(lpszFileName: LPWSTR; lParam: LPARAM): Integer; stdcall;
  5466. {$EXTERNALSYM ICMENUMPROCW}
  5467. ICMENUMPROC = function(lpszFileName: LPTSTR; lParam: LPARAM): Integer; stdcall;
  5468. {$EXTERNALSYM ICMENUMPROC}
  5469. function SetICMMode(hDc: HDC; iEnableICM: Integer): Integer; stdcall;
  5470. {$EXTERNALSYM SetICMMode}
  5471. function CheckColorsInGamut(hDc: HDC; lpRGBTriples, lpBuffer: LPVOID; nCount: DWORD): BOOL; stdcall;
  5472. {$EXTERNALSYM CheckColorsInGamut}
  5473. function GetColorSpace(hDc: HDC): HCOLORSPACE; stdcall;
  5474. {$EXTERNALSYM GetColorSpace}
  5475. function GetLogColorSpaceA(hColorSpace: HCOLORSPACE; lpBuffer: LPLOGCOLORSPACEA; nSize: DWORD): BOOL; stdcall;
  5476. {$EXTERNALSYM GetLogColorSpaceA}
  5477. function GetLogColorSpaceW(hColorSpace: HCOLORSPACE; lpBuffer: LPLOGCOLORSPACEW; nSize: DWORD): BOOL; stdcall;
  5478. {$EXTERNALSYM GetLogColorSpaceW}
  5479. function GetLogColorSpace(hColorSpace: HCOLORSPACE; lpBuffer: LPLOGCOLORSPACE; nSize: DWORD): BOOL; stdcall;
  5480. {$EXTERNALSYM GetLogColorSpace}
  5481. function CreateColorSpaceA(lpLogColorSpace: LPLOGCOLORSPACEA): HCOLORSPACE; stdcall;
  5482. {$EXTERNALSYM CreateColorSpaceA}
  5483. function CreateColorSpaceW(lpLogColorSpace: LPLOGCOLORSPACEW): HCOLORSPACE; stdcall;
  5484. {$EXTERNALSYM CreateColorSpaceW}
  5485. function CreateColorSpace(lpLogColorSpace: LPLOGCOLORSPACE): HCOLORSPACE; stdcall;
  5486. {$EXTERNALSYM CreateColorSpace}
  5487. function SetColorSpace(hDc: HDC; hColorSpace: HCOLORSPACE): HCOLORSPACE; stdcall;
  5488. {$EXTERNALSYM SetColorSpace}
  5489. function DeleteColorSpace(hColorSpace: HCOLORSPACE): BOOL; stdcall;
  5490. {$EXTERNALSYM DeleteColorSpace}
  5491. function GetICMProfileA(hDc: HDC; lpcbName: LPDWORD; lpszFilename: LPSTR): BOOL; stdcall;
  5492. {$EXTERNALSYM GetICMProfileA}
  5493. function GetICMProfileW(hDc: HDC; lpcbName: LPDWORD; lpszFilename: LPWSTR): BOOL; stdcall;
  5494. {$EXTERNALSYM GetICMProfileW}
  5495. function GetICMProfile(hDc: HDC; lpcbName: LPDWORD; lpszFilename: LPTSTR): BOOL; stdcall;
  5496. {$EXTERNALSYM GetICMProfile}
  5497. function SetICMProfileA(hDc: HDC; lpFileName: LPSTR): BOOL; stdcall;
  5498. {$EXTERNALSYM SetICMProfileA}
  5499. function SetICMProfileW(hDc: HDC; lpFileName: LPWSTR): BOOL; stdcall;
  5500. {$EXTERNALSYM SetICMProfileW}
  5501. function SetICMProfile(hDc: HDC; lpFileName: LPTSTR): BOOL; stdcall;
  5502. {$EXTERNALSYM SetICMProfile}
  5503. function GetDeviceGammaRamp(hDc: HDC; lpRamp: LPVOID): BOOL; stdcall;
  5504. {$EXTERNALSYM GetDeviceGammaRamp}
  5505. function SetDeviceGammaRamp(hDc: HDC; lpRamp: LPVOID): BOOL; stdcall;
  5506. {$EXTERNALSYM SetDeviceGammaRamp}
  5507. function ColorMatchToTarget(hDc, hdcTarget: HDC; uiAction: DWORD): BOOL; stdcall;
  5508. {$EXTERNALSYM ColorMatchToTarget}
  5509. function EnumICMProfilesA(hDc: HDC; lpEnumProc: ICMENUMPROCA; lParam: LPARAM): Integer; stdcall;
  5510. {$EXTERNALSYM EnumICMProfilesA}
  5511. function EnumICMProfilesW(hDc: HDC; lpEnumProc: ICMENUMPROCW; lParam: LPARAM): Integer; stdcall;
  5512. {$EXTERNALSYM EnumICMProfilesW}
  5513. function EnumICMProfiles(hDc: HDC; lpEnumProc: ICMENUMPROC; lParam: LPARAM): Integer; stdcall;
  5514. {$EXTERNALSYM EnumICMProfiles}
  5515. function UpdateICMRegKeyA(dwReserved: DWORD; lpszCMID, lpszFileName: LPSTR; nCommand: UINT): BOOL; stdcall;
  5516. {$EXTERNALSYM UpdateICMRegKeyA}
  5517. function UpdateICMRegKeyW(dwReserved: DWORD; lpszCMID, lpszFileName: LPWSTR; nCommand: UINT): BOOL; stdcall;
  5518. {$EXTERNALSYM UpdateICMRegKeyW}
  5519. function UpdateICMRegKey(dwReserved: DWORD; lpszCMID, lpszFileName: LPTSTR; nCommand: UINT): BOOL; stdcall;
  5520. {$EXTERNALSYM UpdateICMRegKey}
  5521. function ColorCorrectPalette(hDc: HDC; hColorPalette: HPALETTE; dwFirstEntry, dwNumOfEntries: DWORD): BOOL; stdcall;
  5522. {$EXTERNALSYM ColorCorrectPalette}
  5523. // Enhanced metafile constants.
  5524. const
  5525. ENHMETA_SIGNATURE = $464D4520;
  5526. {$EXTERNALSYM ENHMETA_SIGNATURE}
  5527. // Stock object flag used in the object handle index in the enhanced
  5528. // metafile records.
  5529. // E.g. The object handle index (META_STOCK_OBJECT | BLACK_BRUSH)
  5530. // represents the stock object BLACK_BRUSH.
  5531. ENHMETA_STOCK_OBJECT = DWORD($80000000);
  5532. {$EXTERNALSYM ENHMETA_STOCK_OBJECT}
  5533. // Enhanced metafile record types.
  5534. EMR_HEADER = 1;
  5535. {$EXTERNALSYM EMR_HEADER}
  5536. EMR_POLYBEZIER = 2;
  5537. {$EXTERNALSYM EMR_POLYBEZIER}
  5538. EMR_POLYGON = 3;
  5539. {$EXTERNALSYM EMR_POLYGON}
  5540. EMR_POLYLINE = 4;
  5541. {$EXTERNALSYM EMR_POLYLINE}
  5542. EMR_POLYBEZIERTO = 5;
  5543. {$EXTERNALSYM EMR_POLYBEZIERTO}
  5544. EMR_POLYLINETO = 6;
  5545. {$EXTERNALSYM EMR_POLYLINETO}
  5546. EMR_POLYPOLYLINE = 7;
  5547. {$EXTERNALSYM EMR_POLYPOLYLINE}
  5548. EMR_POLYPOLYGON = 8;
  5549. {$EXTERNALSYM EMR_POLYPOLYGON}
  5550. EMR_SETWINDOWEXTEX = 9;
  5551. {$EXTERNALSYM EMR_SETWINDOWEXTEX}
  5552. EMR_SETWINDOWORGEX = 10;
  5553. {$EXTERNALSYM EMR_SETWINDOWORGEX}
  5554. EMR_SETVIEWPORTEXTEX = 11;
  5555. {$EXTERNALSYM EMR_SETVIEWPORTEXTEX}
  5556. EMR_SETVIEWPORTORGEX = 12;
  5557. {$EXTERNALSYM EMR_SETVIEWPORTORGEX}
  5558. EMR_SETBRUSHORGEX = 13;
  5559. {$EXTERNALSYM EMR_SETBRUSHORGEX}
  5560. EMR_EOF = 14;
  5561. {$EXTERNALSYM EMR_EOF}
  5562. EMR_SETPIXELV = 15;
  5563. {$EXTERNALSYM EMR_SETPIXELV}
  5564. EMR_SETMAPPERFLAGS = 16;
  5565. {$EXTERNALSYM EMR_SETMAPPERFLAGS}
  5566. EMR_SETMAPMODE = 17;
  5567. {$EXTERNALSYM EMR_SETMAPMODE}
  5568. EMR_SETBKMODE = 18;
  5569. {$EXTERNALSYM EMR_SETBKMODE}
  5570. EMR_SETPOLYFILLMODE = 19;
  5571. {$EXTERNALSYM EMR_SETPOLYFILLMODE}
  5572. EMR_SETROP2 = 20;
  5573. {$EXTERNALSYM EMR_SETROP2}
  5574. EMR_SETSTRETCHBLTMODE = 21;
  5575. {$EXTERNALSYM EMR_SETSTRETCHBLTMODE}
  5576. EMR_SETTEXTALIGN = 22;
  5577. {$EXTERNALSYM EMR_SETTEXTALIGN}
  5578. EMR_SETCOLORADJUSTMENT = 23;
  5579. {$EXTERNALSYM EMR_SETCOLORADJUSTMENT}
  5580. EMR_SETTEXTCOLOR = 24;
  5581. {$EXTERNALSYM EMR_SETTEXTCOLOR}
  5582. EMR_SETBKCOLOR = 25;
  5583. {$EXTERNALSYM EMR_SETBKCOLOR}
  5584. EMR_OFFSETCLIPRGN = 26;
  5585. {$EXTERNALSYM EMR_OFFSETCLIPRGN}
  5586. EMR_MOVETOEX = 27;
  5587. {$EXTERNALSYM EMR_MOVETOEX}
  5588. EMR_SETMETARGN = 28;
  5589. {$EXTERNALSYM EMR_SETMETARGN}
  5590. EMR_EXCLUDECLIPRECT = 29;
  5591. {$EXTERNALSYM EMR_EXCLUDECLIPRECT}
  5592. EMR_INTERSECTCLIPRECT = 30;
  5593. {$EXTERNALSYM EMR_INTERSECTCLIPRECT}
  5594. EMR_SCALEVIEWPORTEXTEX = 31;
  5595. {$EXTERNALSYM EMR_SCALEVIEWPORTEXTEX}
  5596. EMR_SCALEWINDOWEXTEX = 32;
  5597. {$EXTERNALSYM EMR_SCALEWINDOWEXTEX}
  5598. EMR_SAVEDC = 33;
  5599. {$EXTERNALSYM EMR_SAVEDC}
  5600. EMR_RESTOREDC = 34;
  5601. {$EXTERNALSYM EMR_RESTOREDC}
  5602. EMR_SETWORLDTRANSFORM = 35;
  5603. {$EXTERNALSYM EMR_SETWORLDTRANSFORM}
  5604. EMR_MODIFYWORLDTRANSFORM = 36;
  5605. {$EXTERNALSYM EMR_MODIFYWORLDTRANSFORM}
  5606. EMR_SELECTOBJECT = 37;
  5607. {$EXTERNALSYM EMR_SELECTOBJECT}
  5608. EMR_CREATEPEN = 38;
  5609. {$EXTERNALSYM EMR_CREATEPEN}
  5610. EMR_CREATEBRUSHINDIRECT = 39;
  5611. {$EXTERNALSYM EMR_CREATEBRUSHINDIRECT}
  5612. EMR_DELETEOBJECT = 40;
  5613. {$EXTERNALSYM EMR_DELETEOBJECT}
  5614. EMR_ANGLEARC = 41;
  5615. {$EXTERNALSYM EMR_ANGLEARC}
  5616. EMR_ELLIPSE = 42;
  5617. {$EXTERNALSYM EMR_ELLIPSE}
  5618. EMR_RECTANGLE = 43;
  5619. {$EXTERNALSYM EMR_RECTANGLE}
  5620. EMR_ROUNDRECT = 44;
  5621. {$EXTERNALSYM EMR_ROUNDRECT}
  5622. EMR_ARC = 45;
  5623. {$EXTERNALSYM EMR_ARC}
  5624. EMR_CHORD = 46;
  5625. {$EXTERNALSYM EMR_CHORD}
  5626. EMR_PIE = 47;
  5627. {$EXTERNALSYM EMR_PIE}
  5628. EMR_SELECTPALETTE = 48;
  5629. {$EXTERNALSYM EMR_SELECTPALETTE}
  5630. EMR_CREATEPALETTE = 49;
  5631. {$EXTERNALSYM EMR_CREATEPALETTE}
  5632. EMR_SETPALETTEENTRIES = 50;
  5633. {$EXTERNALSYM EMR_SETPALETTEENTRIES}
  5634. EMR_RESIZEPALETTE = 51;
  5635. {$EXTERNALSYM EMR_RESIZEPALETTE}
  5636. EMR_REALIZEPALETTE = 52;
  5637. {$EXTERNALSYM EMR_REALIZEPALETTE}
  5638. EMR_EXTFLOODFILL = 53;
  5639. {$EXTERNALSYM EMR_EXTFLOODFILL}
  5640. EMR_LINETO = 54;
  5641. {$EXTERNALSYM EMR_LINETO}
  5642. EMR_ARCTO = 55;
  5643. {$EXTERNALSYM EMR_ARCTO}
  5644. EMR_POLYDRAW = 56;
  5645. {$EXTERNALSYM EMR_POLYDRAW}
  5646. EMR_SETARCDIRECTION = 57;
  5647. {$EXTERNALSYM EMR_SETARCDIRECTION}
  5648. EMR_SETMITERLIMIT = 58;
  5649. {$EXTERNALSYM EMR_SETMITERLIMIT}
  5650. EMR_BEGINPATH = 59;
  5651. {$EXTERNALSYM EMR_BEGINPATH}
  5652. EMR_ENDPATH = 60;
  5653. {$EXTERNALSYM EMR_ENDPATH}
  5654. EMR_CLOSEFIGURE = 61;
  5655. {$EXTERNALSYM EMR_CLOSEFIGURE}
  5656. EMR_FILLPATH = 62;
  5657. {$EXTERNALSYM EMR_FILLPATH}
  5658. EMR_STROKEANDFILLPATH = 63;
  5659. {$EXTERNALSYM EMR_STROKEANDFILLPATH}
  5660. EMR_STROKEPATH = 64;
  5661. {$EXTERNALSYM EMR_STROKEPATH}
  5662. EMR_FLATTENPATH = 65;
  5663. {$EXTERNALSYM EMR_FLATTENPATH}
  5664. EMR_WIDENPATH = 66;
  5665. {$EXTERNALSYM EMR_WIDENPATH}
  5666. EMR_SELECTCLIPPATH = 67;
  5667. {$EXTERNALSYM EMR_SELECTCLIPPATH}
  5668. EMR_ABORTPATH = 68;
  5669. {$EXTERNALSYM EMR_ABORTPATH}
  5670. EMR_GDICOMMENT = 70;
  5671. {$EXTERNALSYM EMR_GDICOMMENT}
  5672. EMR_FILLRGN = 71;
  5673. {$EXTERNALSYM EMR_FILLRGN}
  5674. EMR_FRAMERGN = 72;
  5675. {$EXTERNALSYM EMR_FRAMERGN}
  5676. EMR_INVERTRGN = 73;
  5677. {$EXTERNALSYM EMR_INVERTRGN}
  5678. EMR_PAINTRGN = 74;
  5679. {$EXTERNALSYM EMR_PAINTRGN}
  5680. EMR_EXTSELECTCLIPRGN = 75;
  5681. {$EXTERNALSYM EMR_EXTSELECTCLIPRGN}
  5682. EMR_BITBLT = 76;
  5683. {$EXTERNALSYM EMR_BITBLT}
  5684. EMR_STRETCHBLT = 77;
  5685. {$EXTERNALSYM EMR_STRETCHBLT}
  5686. EMR_MASKBLT = 78;
  5687. {$EXTERNALSYM EMR_MASKBLT}
  5688. EMR_PLGBLT = 79;
  5689. {$EXTERNALSYM EMR_PLGBLT}
  5690. EMR_SETDIBITSTODEVICE = 80;
  5691. {$EXTERNALSYM EMR_SETDIBITSTODEVICE}
  5692. EMR_STRETCHDIBITS = 81;
  5693. {$EXTERNALSYM EMR_STRETCHDIBITS}
  5694. EMR_EXTCREATEFONTINDIRECTW = 82;
  5695. {$EXTERNALSYM EMR_EXTCREATEFONTINDIRECTW}
  5696. EMR_EXTTEXTOUTA = 83;
  5697. {$EXTERNALSYM EMR_EXTTEXTOUTA}
  5698. EMR_EXTTEXTOUTW = 84;
  5699. {$EXTERNALSYM EMR_EXTTEXTOUTW}
  5700. EMR_POLYBEZIER16 = 85;
  5701. {$EXTERNALSYM EMR_POLYBEZIER16}
  5702. EMR_POLYGON16 = 86;
  5703. {$EXTERNALSYM EMR_POLYGON16}
  5704. EMR_POLYLINE16 = 87;
  5705. {$EXTERNALSYM EMR_POLYLINE16}
  5706. EMR_POLYBEZIERTO16 = 88;
  5707. {$EXTERNALSYM EMR_POLYBEZIERTO16}
  5708. EMR_POLYLINETO16 = 89;
  5709. {$EXTERNALSYM EMR_POLYLINETO16}
  5710. EMR_POLYPOLYLINE16 = 90;
  5711. {$EXTERNALSYM EMR_POLYPOLYLINE16}
  5712. EMR_POLYPOLYGON16 = 91;
  5713. {$EXTERNALSYM EMR_POLYPOLYGON16}
  5714. EMR_POLYDRAW16 = 92;
  5715. {$EXTERNALSYM EMR_POLYDRAW16}
  5716. EMR_CREATEMONOBRUSH = 93;
  5717. {$EXTERNALSYM EMR_CREATEMONOBRUSH}
  5718. EMR_CREATEDIBPATTERNBRUSHPT = 94;
  5719. {$EXTERNALSYM EMR_CREATEDIBPATTERNBRUSHPT}
  5720. EMR_EXTCREATEPEN = 95;
  5721. {$EXTERNALSYM EMR_EXTCREATEPEN}
  5722. EMR_POLYTEXTOUTA = 96;
  5723. {$EXTERNALSYM EMR_POLYTEXTOUTA}
  5724. EMR_POLYTEXTOUTW = 97;
  5725. {$EXTERNALSYM EMR_POLYTEXTOUTW}
  5726. EMR_SETICMMODE = 98;
  5727. {$EXTERNALSYM EMR_SETICMMODE}
  5728. EMR_CREATECOLORSPACE = 99;
  5729. {$EXTERNALSYM EMR_CREATECOLORSPACE}
  5730. EMR_SETCOLORSPACE = 100;
  5731. {$EXTERNALSYM EMR_SETCOLORSPACE}
  5732. EMR_DELETECOLORSPACE = 101;
  5733. {$EXTERNALSYM EMR_DELETECOLORSPACE}
  5734. EMR_GLSRECORD = 102;
  5735. {$EXTERNALSYM EMR_GLSRECORD}
  5736. EMR_GLSBOUNDEDRECORD = 103;
  5737. {$EXTERNALSYM EMR_GLSBOUNDEDRECORD}
  5738. EMR_PIXELFORMAT = 104;
  5739. {$EXTERNALSYM EMR_PIXELFORMAT}
  5740. EMR_RESERVED_105 = 105;
  5741. {$EXTERNALSYM EMR_RESERVED_105}
  5742. EMR_RESERVED_106 = 106;
  5743. {$EXTERNALSYM EMR_RESERVED_106}
  5744. EMR_RESERVED_107 = 107;
  5745. {$EXTERNALSYM EMR_RESERVED_107}
  5746. EMR_RESERVED_108 = 108;
  5747. {$EXTERNALSYM EMR_RESERVED_108}
  5748. EMR_RESERVED_109 = 109;
  5749. {$EXTERNALSYM EMR_RESERVED_109}
  5750. EMR_RESERVED_110 = 110;
  5751. {$EXTERNALSYM EMR_RESERVED_110}
  5752. EMR_COLORCORRECTPALETTE = 111;
  5753. {$EXTERNALSYM EMR_COLORCORRECTPALETTE}
  5754. EMR_SETICMPROFILEA = 112;
  5755. {$EXTERNALSYM EMR_SETICMPROFILEA}
  5756. EMR_SETICMPROFILEW = 113;
  5757. {$EXTERNALSYM EMR_SETICMPROFILEW}
  5758. EMR_ALPHABLEND = 114;
  5759. {$EXTERNALSYM EMR_ALPHABLEND}
  5760. EMR_SETLAYOUT = 115;
  5761. {$EXTERNALSYM EMR_SETLAYOUT}
  5762. EMR_TRANSPARENTBLT = 116;
  5763. {$EXTERNALSYM EMR_TRANSPARENTBLT}
  5764. EMR_RESERVED_117 = 117;
  5765. {$EXTERNALSYM EMR_RESERVED_117}
  5766. EMR_GRADIENTFILL = 118;
  5767. {$EXTERNALSYM EMR_GRADIENTFILL}
  5768. EMR_RESERVED_119 = 119;
  5769. {$EXTERNALSYM EMR_RESERVED_119}
  5770. EMR_RESERVED_120 = 120;
  5771. {$EXTERNALSYM EMR_RESERVED_120}
  5772. EMR_COLORMATCHTOTARGETW = 121;
  5773. {$EXTERNALSYM EMR_COLORMATCHTOTARGETW}
  5774. EMR_CREATECOLORSPACEW = 122;
  5775. {$EXTERNALSYM EMR_CREATECOLORSPACEW}
  5776. EMR_MIN = 1;
  5777. {$EXTERNALSYM EMR_MIN}
  5778. {$IFDEF WIN98ME_UP}
  5779. EMR_MAX = 122;
  5780. {$EXTERNALSYM EMR_MAX}
  5781. {$ELSE}
  5782. EMR_MAX = 104;
  5783. {$EXTERNALSYM EMR_MAX}
  5784. {$ENDIF WIN98ME_UP}
  5785. // Base record type for the enhanced metafile.
  5786. type
  5787. PEmr = ^TEmr;
  5788. tagEMR = record
  5789. iType: DWORD; // Enhanced metafile record type
  5790. nSize: DWORD; // Length of the record in bytes.
  5791. // This must be a multiple of 4.
  5792. end;
  5793. {$EXTERNALSYM tagEMR}
  5794. EMR = tagEMR;
  5795. {$EXTERNALSYM EMR}
  5796. TEmr = EMR;
  5797. // Base text record type for the enhanced metafile.
  5798. PEmrText = ^TEmrText;
  5799. tagEMRTEXT = record
  5800. ptlReference: POINTL;
  5801. nChars: DWORD;
  5802. offString: DWORD; // Offset to the string
  5803. fOptions: DWORD;
  5804. rcl: RECTL;
  5805. offDx: DWORD; // Offset to the inter-character spacing array.
  5806. // This is always given.
  5807. end;
  5808. {$EXTERNALSYM tagEMRTEXT}
  5809. EMRTEXT = tagEMRTEXT;
  5810. {$EXTERNALSYM EMRTEXT}
  5811. TEmrText = EMRTEXT;
  5812. // Record structures for the enhanced metafile.
  5813. PAbortPath = ^TAbortPath;
  5814. tagABORTPATH = record
  5815. emr: EMR;
  5816. end;
  5817. {$EXTERNALSYM tagABORTPATH}
  5818. TAbortPath = tagABORTPATH;
  5819. EMRABORTPATH = tagABORTPATH;
  5820. {$EXTERNALSYM EMRABORTPATH}
  5821. PEMRABORTPATH = ^EMRABORTPATH;
  5822. {$EXTERNALSYM PEMRABORTPATH}
  5823. EMRBEGINPATH = tagABORTPATH;
  5824. {$EXTERNALSYM EMRBEGINPATH}
  5825. PEMRBEGINPATH = ^EMRBEGINPATH;
  5826. {$EXTERNALSYM PEMRBEGINPATH}
  5827. EMRENDPATH = tagABORTPATH;
  5828. {$EXTERNALSYM EMRENDPATH}
  5829. PEMRENDPATH = ^EMRENDPATH;
  5830. {$EXTERNALSYM PEMRENDPATH}
  5831. EMRCLOSEFIGURE = tagABORTPATH;
  5832. {$EXTERNALSYM EMRCLOSEFIGURE}
  5833. PEMRCLOSEFIGURE = ^EMRCLOSEFIGURE;
  5834. {$EXTERNALSYM PEMRCLOSEFIGURE}
  5835. EMRFLATTENPATH = tagABORTPATH;
  5836. {$EXTERNALSYM EMRFLATTENPATH}
  5837. PEMRFLATTENPATH = ^EMRFLATTENPATH;
  5838. {$EXTERNALSYM PEMRFLATTENPATH}
  5839. EMRWIDENPATH = tagABORTPATH;
  5840. {$EXTERNALSYM EMRWIDENPATH}
  5841. PEMRWIDENPATH = ^EMRWIDENPATH;
  5842. {$EXTERNALSYM PEMRWIDENPATH}
  5843. EMRSETMETARGN = tagABORTPATH;
  5844. {$EXTERNALSYM EMRSETMETARGN}
  5845. PEMRSETMETARGN = ^EMRSETMETARGN;
  5846. {$EXTERNALSYM PEMRSETMETARGN}
  5847. EMRSAVEDC = tagABORTPATH;
  5848. {$EXTERNALSYM EMRSAVEDC}
  5849. PEMRSAVEDC = ^EMRSAVEDC;
  5850. {$EXTERNALSYM PEMRSAVEDC}
  5851. EMRREALIZEPALETTE = tagABORTPATH;
  5852. {$EXTERNALSYM EMRREALIZEPALETTE}
  5853. PEMRREALIZEPALETTE = ^EMRREALIZEPALETTE;
  5854. {$EXTERNALSYM PEMRREALIZEPALETTE}
  5855. PEmrSelectClipPath = ^TEmrSelectClipPath;
  5856. tagEMRSELECTCLIPPATH = record
  5857. emr: EMR;
  5858. iMode: DWORD;
  5859. end;
  5860. {$EXTERNALSYM tagEMRSELECTCLIPPATH}
  5861. EMRSELECTCLIPPATH = tagEMRSELECTCLIPPATH;
  5862. {$EXTERNALSYM EMRSELECTCLIPPATH}
  5863. LPEMRSELECTCLIPPATH = ^EMRSELECTCLIPPATH;
  5864. {$EXTERNALSYM LPEMRSELECTCLIPPATH}
  5865. TEmrSelectClipPath = EMRSELECTCLIPPATH;
  5866. EMRSETBKMODE = tagEMRSELECTCLIPPATH;
  5867. {$EXTERNALSYM EMRSETBKMODE}
  5868. PEMRSETBKMODE = ^EMRSETBKMODE;
  5869. {$EXTERNALSYM PEMRSETBKMODE}
  5870. EMRSETMAPMODE = tagEMRSELECTCLIPPATH;
  5871. {$EXTERNALSYM EMRSETMAPMODE}
  5872. PEMRSETMAPMODE = ^EMRSETMAPMODE;
  5873. {$EXTERNALSYM PEMRSETMAPMODE}
  5874. EMRSETLAYOUT = tagEMRSELECTCLIPPATH;
  5875. {$EXTERNALSYM EMRSETLAYOUT}
  5876. PEMRSETLAYOUT = ^EMRSETLAYOUT;
  5877. {$EXTERNALSYM PEMRSETLAYOUT}
  5878. EMRSETPOLYFILLMODE = tagEMRSELECTCLIPPATH;
  5879. {$EXTERNALSYM EMRSETPOLYFILLMODE}
  5880. PEMRSETPOLYFILLMODE = EMRSETPOLYFILLMODE;
  5881. {$EXTERNALSYM PEMRSETPOLYFILLMODE}
  5882. EMRSETROP2 = tagEMRSELECTCLIPPATH;
  5883. {$EXTERNALSYM EMRSETROP2}
  5884. PEMRSETROP2 = ^EMRSETROP2;
  5885. {$EXTERNALSYM PEMRSETROP2}
  5886. EMRSETSTRETCHBLTMODE = tagEMRSELECTCLIPPATH;
  5887. {$EXTERNALSYM EMRSETSTRETCHBLTMODE}
  5888. PEMRSETSTRETCHBLTMODE = ^EMRSETSTRETCHBLTMODE;
  5889. {$EXTERNALSYM PEMRSETSTRETCHBLTMODE}
  5890. EMRSETICMMODE = tagEMRSELECTCLIPPATH;
  5891. {$EXTERNALSYM EMRSETICMMODE}
  5892. PEMRSETICMMODE = ^EMRSETICMMODE;
  5893. {$EXTERNALSYM PEMRSETICMMODE}
  5894. EMRSETTEXTALIGN = tagEMRSELECTCLIPPATH;
  5895. {$EXTERNALSYM EMRSETTEXTALIGN}
  5896. PEMRSETTEXTALIGN = ^EMRSETTEXTALIGN;
  5897. {$EXTERNALSYM PEMRSETTEXTALIGN}
  5898. PEmrSetMiterLimit = ^TEmrSetMiterLimit;
  5899. tagEMRSETMITERLIMIT = record
  5900. emr: EMR;
  5901. eMiterLimit: FLOAT;
  5902. end;
  5903. {$EXTERNALSYM tagEMRSETMITERLIMIT}
  5904. EMRSETMITERLIMIT = tagEMRSETMITERLIMIT;
  5905. {$EXTERNALSYM EMRSETMITERLIMIT}
  5906. TEmrSetMiterLimit = EMRSETMITERLIMIT;
  5907. PEmrRestoreDc = ^TEmrRestoreDc;
  5908. tagEMRRESTOREDC = record
  5909. emr: EMR;
  5910. iRelative: LONG; // Specifies a relative instance
  5911. end;
  5912. {$EXTERNALSYM tagEMRRESTOREDC}
  5913. EMRRESTOREDC = tagEMRRESTOREDC;
  5914. {$EXTERNALSYM EMRRESTOREDC}
  5915. TEmrRestoreDc = EMRRESTOREDC;
  5916. PEmrSetArcDirection = ^TEmrSetArcDirection;
  5917. tagEMRSETARCDIRECTION = record
  5918. emr: EMR;
  5919. iArcDirection: DWORD; // Specifies the arc direction in the
  5920. // advanced graphics mode.
  5921. end;
  5922. {$EXTERNALSYM tagEMRSETARCDIRECTION}
  5923. EMRSETARCDIRECTION = tagEMRSETARCDIRECTION;
  5924. {$EXTERNALSYM EMRSETARCDIRECTION}
  5925. TEmrSetArcDirection = EMRSETARCDIRECTION;
  5926. PEmrSetMapperFlags = ^TEmrSetMapperFlags;
  5927. tagEMRSETMAPPERFLAGS = record
  5928. emr: EMR;
  5929. dwFlags: DWORD;
  5930. end;
  5931. {$EXTERNALSYM tagEMRSETMAPPERFLAGS}
  5932. EMRSETMAPPERFLAGS = tagEMRSETMAPPERFLAGS;
  5933. {$EXTERNALSYM EMRSETMAPPERFLAGS}
  5934. TEmrSetMapperFlags = EMRSETMAPPERFLAGS;
  5935. PEmrSetTextColor = ^TEmrSetTextColor;
  5936. tagEMRSETTEXTCOLOR = record
  5937. emr: EMR;
  5938. crColor: COLORREF;
  5939. end;
  5940. {$EXTERNALSYM tagEMRSETTEXTCOLOR}
  5941. EMRSETTEXTCOLOR = tagEMRSETTEXTCOLOR;
  5942. {$EXTERNALSYM EMRSETTEXTCOLOR}
  5943. EMRSETBKCOLOR = tagEMRSETTEXTCOLOR;
  5944. {$EXTERNALSYM EMRSETBKCOLOR}
  5945. PEMRSETBKCOLOR = ^EMRSETTEXTCOLOR;
  5946. {$EXTERNALSYM PEMRSETBKCOLOR}
  5947. TEmrSetTextColor = EMRSETTEXTCOLOR;
  5948. PEmrSelectObject = ^TEmrSelectObject;
  5949. tagEMRSELECTOBJECT = record
  5950. emr: EMR;
  5951. ihObject: DWORD; // Object handle index
  5952. end;
  5953. {$EXTERNALSYM tagEMRSELECTOBJECT}
  5954. EMRSELECTOBJECT = tagEMRSELECTOBJECT;
  5955. {$EXTERNALSYM EMRSELECTOBJECT}
  5956. EMRDELETEOBJECT = tagEMRSELECTOBJECT;
  5957. {$EXTERNALSYM EMRDELETEOBJECT}
  5958. PEMRDELETEOBJECT = ^EMRDELETEOBJECT;
  5959. {$EXTERNALSYM PEMRDELETEOBJECT}
  5960. TEmrSelectObject = EMRSELECTOBJECT;
  5961. PEmrSelectPalette = ^TEmrSelectPalette;
  5962. tagEMRSELECTPALETTE = record
  5963. emr: EMR;
  5964. ihPal: DWORD; // Palette handle index, background mode only
  5965. end;
  5966. {$EXTERNALSYM tagEMRSELECTPALETTE}
  5967. EMRSELECTPALETTE = tagEMRSELECTPALETTE;
  5968. {$EXTERNALSYM EMRSELECTPALETTE}
  5969. TEmrSelectPalette = EMRSELECTPALETTE;
  5970. PEmrResizePalette = ^TEmrResizePalette;
  5971. tagEMRRESIZEPALETTE = record
  5972. emr: EMR;
  5973. ihPal: DWORD; // Palette handle index
  5974. cEntries: DWORD;
  5975. end;
  5976. {$EXTERNALSYM tagEMRRESIZEPALETTE}
  5977. EMRRESIZEPALETTE = tagEMRRESIZEPALETTE;
  5978. {$EXTERNALSYM EMRRESIZEPALETTE}
  5979. TEmrResizePalette = EMRRESIZEPALETTE;
  5980. PEmrSetPaletteEntries = ^TEmrSetPaletteEntries;
  5981. tagEMRSETPALETTEENTRIES = record
  5982. emr: EMR;
  5983. ihPal: DWORD; // Palette handle index
  5984. iStart: DWORD;
  5985. cEntries: DWORD;
  5986. aPalEntries: array [0..0] of PALETTEENTRY; // The peFlags fields do not contain any flags
  5987. end;
  5988. {$EXTERNALSYM tagEMRSETPALETTEENTRIES}
  5989. EMRSETPALETTEENTRIES = tagEMRSETPALETTEENTRIES;
  5990. {$EXTERNALSYM EMRSETPALETTEENTRIES}
  5991. TEmrSetPaletteEntries = EMRSETPALETTEENTRIES;
  5992. PEmrSetColorAdjustment = ^TEmrSetColorAdjustment;
  5993. tagEMRSETCOLORADJUSTMENT = record
  5994. emr: EMR;
  5995. ColorAdjustment: COLORADJUSTMENT;
  5996. end;
  5997. {$EXTERNALSYM tagEMRSETCOLORADJUSTMENT}
  5998. EMRSETCOLORADJUSTMENT = tagEMRSETCOLORADJUSTMENT;
  5999. {$EXTERNALSYM EMRSETCOLORADJUSTMENT}
  6000. TEmrSetColorAdjustment = EMRSETCOLORADJUSTMENT;
  6001. PEmrGdiComment = ^TEmrGdiComment;
  6002. tagEMRGDICOMMENT = record
  6003. emr: EMR;
  6004. cbData: DWORD; // Size of data in bytes
  6005. Data: array [0..0] of BYTE;
  6006. end;
  6007. {$EXTERNALSYM tagEMRGDICOMMENT}
  6008. EMRGDICOMMENT = tagEMRGDICOMMENT;
  6009. {$EXTERNALSYM EMRGDICOMMENT}
  6010. TEmrGdiComment = EMRGDICOMMENT;
  6011. PEmrEof = ^TEmrEof;
  6012. tagEMREOF = record
  6013. emr: EMR;
  6014. nPalEntries: DWORD; // Number of palette entries
  6015. offPalEntries: DWORD; // Offset to the palette entries
  6016. nSizeLast: DWORD; // Same as nSize and must be the last DWORD
  6017. // of the record. The palette entries,
  6018. // if exist, precede this field.
  6019. end;
  6020. {$EXTERNALSYM tagEMREOF}
  6021. EMREOF = tagEMREOF;
  6022. {$EXTERNALSYM EMREOF}
  6023. TEmrEof = EMREOF;
  6024. PEmrLineTo = ^TEmrLineTo;
  6025. tagEMRLINETO = record
  6026. emr: EMR;
  6027. ptl: POINTL;
  6028. end;
  6029. {$EXTERNALSYM tagEMRLINETO}
  6030. EMRLINETO = tagEMRLINETO;
  6031. {$EXTERNALSYM EMRLINETO}
  6032. EMRMOVETOEX = tagEMRLINETO;
  6033. {$EXTERNALSYM EMRMOVETOEX}
  6034. PEMRMOVETOEX = ^EMRMOVETOEX;
  6035. {$EXTERNALSYM PEMRMOVETOEX}
  6036. TEmrLineTo = EMRLINETO;
  6037. PEmrOffsetClipRgn = ^TEmrOffsetClipRgn;
  6038. tagEMROFFSETCLIPRGN = record
  6039. emr: EMR;
  6040. ptlOffset: POINTL;
  6041. end;
  6042. {$EXTERNALSYM tagEMROFFSETCLIPRGN}
  6043. EMROFFSETCLIPRGN = tagEMROFFSETCLIPRGN;
  6044. {$EXTERNALSYM EMROFFSETCLIPRGN}
  6045. TEmrOffsetClipRgn = EMROFFSETCLIPRGN;
  6046. PEmrFillPath = ^TEmrFillPath;
  6047. tagEMRFILLPATH = record
  6048. emr: EMR;
  6049. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6050. end;
  6051. {$EXTERNALSYM tagEMRFILLPATH}
  6052. EMRFILLPATH = tagEMRFILLPATH;
  6053. {$EXTERNALSYM EMRFILLPATH}
  6054. EMRSTROKEANDFILLPATH = tagEMRFILLPATH;
  6055. {$EXTERNALSYM EMRSTROKEANDFILLPATH}
  6056. PEMRSTROKEANDFILLPATH = ^EMRSTROKEANDFILLPATH;
  6057. {$EXTERNALSYM PEMRSTROKEANDFILLPATH}
  6058. EMRSTROKEPATH = tagEMRFILLPATH;
  6059. {$EXTERNALSYM EMRSTROKEPATH}
  6060. PEMRSTROKEPATH = ^EMRSTROKEPATH;
  6061. {$EXTERNALSYM PEMRSTROKEPATH}
  6062. TEmrFillPath = EMRFILLPATH;
  6063. PEmrExcludeClipRect = ^TEmrExcludeClipRect;
  6064. tagEMREXCLUDECLIPRECT = record
  6065. emr: EMR;
  6066. rclClip: RECTL;
  6067. end;
  6068. {$EXTERNALSYM tagEMREXCLUDECLIPRECT}
  6069. EMREXCLUDECLIPRECT = tagEMREXCLUDECLIPRECT;
  6070. {$EXTERNALSYM EMREXCLUDECLIPRECT}
  6071. EMRINTERSECTCLIPRECT = tagEMREXCLUDECLIPRECT;
  6072. {$EXTERNALSYM EMRINTERSECTCLIPRECT}
  6073. PEMRINTERSECTCLIPRECT = ^EMRINTERSECTCLIPRECT;
  6074. {$EXTERNALSYM PEMRINTERSECTCLIPRECT}
  6075. TEmrExcludeClipRect = EMREXCLUDECLIPRECT;
  6076. PEmrSetViewPortOrgEx = ^TEmrSetViewPortOrgEx;
  6077. tagEMRSETVIEWPORTORGEX = record
  6078. emr: EMR;
  6079. ptlOrigin: POINTL;
  6080. end;
  6081. {$EXTERNALSYM tagEMRSETVIEWPORTORGEX}
  6082. EMRSETVIEWPORTORGEX = tagEMRSETVIEWPORTORGEX;
  6083. {$EXTERNALSYM EMRSETVIEWPORTORGEX}
  6084. EMRSETWINDOWORGEX = tagEMRSETVIEWPORTORGEX;
  6085. {$EXTERNALSYM EMRSETWINDOWORGEX}
  6086. PEMRSETWINDOWORGEX = ^EMRSETWINDOWORGEX;
  6087. {$EXTERNALSYM PEMRSETWINDOWORGEX}
  6088. EMRSETBRUSHORGEX = tagEMRSETVIEWPORTORGEX;
  6089. {$EXTERNALSYM EMRSETBRUSHORGEX}
  6090. PEMRSETBRUSHORGEX = ^EMRSETBRUSHORGEX;
  6091. {$EXTERNALSYM PEMRSETBRUSHORGEX}
  6092. TEmrSetViewPortOrgEx = EMRSETVIEWPORTORGEX;
  6093. PEmrSetViewPortExtEx = ^TEmrSetViewPortExtEx;
  6094. tagEMRSETVIEWPORTEXTEX = record
  6095. emr: EMR;
  6096. szlExtent: SIZEL;
  6097. end;
  6098. {$EXTERNALSYM tagEMRSETVIEWPORTEXTEX}
  6099. EMRSETVIEWPORTEXTEX = tagEMRSETVIEWPORTEXTEX;
  6100. {$EXTERNALSYM EMRSETVIEWPORTEXTEX}
  6101. EMRSETWINDOWEXTEX = tagEMRSETVIEWPORTEXTEX;
  6102. {$EXTERNALSYM EMRSETWINDOWEXTEX}
  6103. TEmrSetViewPortExtEx = EMRSETVIEWPORTEXTEX;
  6104. PEmrScaleViewPortExtEx = ^TEmrScaleViewPortExtEx;
  6105. tagEMRSCALEVIEWPORTEXTEX = record
  6106. emr: EMR;
  6107. xNum: LONG;
  6108. xDenom: LONG;
  6109. yNum: LONG;
  6110. yDenom: LONG;
  6111. end;
  6112. {$EXTERNALSYM tagEMRSCALEVIEWPORTEXTEX}
  6113. EMRSCALEVIEWPORTEXTEX = tagEMRSCALEVIEWPORTEXTEX;
  6114. {$EXTERNALSYM EMRSCALEVIEWPORTEXTEX}
  6115. EMRSCALEWINDOWEXTEX = tagEMRSCALEVIEWPORTEXTEX;
  6116. {$EXTERNALSYM EMRSCALEWINDOWEXTEX}
  6117. PEMRSCALEWINDOWEXTEX = ^EMRSCALEWINDOWEXTEX;
  6118. {$EXTERNALSYM PEMRSCALEWINDOWEXTEX}
  6119. TEmrScaleViewPortExtEx = EMRSCALEVIEWPORTEXTEX;
  6120. PEmrSetWorldTransform = ^TEmrSetWorldTransform;
  6121. tagEMRSETWORLDTRANSFORM = record
  6122. emr: EMR;
  6123. xform: XFORM;
  6124. end;
  6125. {$EXTERNALSYM tagEMRSETWORLDTRANSFORM}
  6126. EMRSETWORLDTRANSFORM = tagEMRSETWORLDTRANSFORM;
  6127. {$EXTERNALSYM EMRSETWORLDTRANSFORM}
  6128. TEmrSetWorldTransform = EMRSETWORLDTRANSFORM;
  6129. PEmrModifyWorldTransform = ^TEmrModifyWorldTransform;
  6130. tagEMRMODIFYWORLDTRANSFORM = record
  6131. emr: EMR;
  6132. xform: XFORM;
  6133. iMode: DWORD;
  6134. end;
  6135. {$EXTERNALSYM tagEMRMODIFYWORLDTRANSFORM}
  6136. EMRMODIFYWORLDTRANSFORM = tagEMRMODIFYWORLDTRANSFORM;
  6137. {$EXTERNALSYM EMRMODIFYWORLDTRANSFORM}
  6138. TEmrModifyWorldTransform = EMRMODIFYWORLDTRANSFORM;
  6139. PEmrSetPixelV = ^TEmrSetPixelV;
  6140. tagEMRSETPIXELV = record
  6141. emr: EMR;
  6142. ptlPixel: POINTL;
  6143. crColor: COLORREF;
  6144. end;
  6145. {$EXTERNALSYM tagEMRSETPIXELV}
  6146. EMRSETPIXELV = tagEMRSETPIXELV;
  6147. {$EXTERNALSYM EMRSETPIXELV}
  6148. TEmrSetPixelV = EMRSETPIXELV;
  6149. PEmrExtFloodFill = ^TEmrExtFloodFill;
  6150. tagEMREXTFLOODFILL = record
  6151. emr: EMR;
  6152. ptlStart: POINTL;
  6153. crColor: COLORREF;
  6154. iMode: DWORD;
  6155. end;
  6156. {$EXTERNALSYM tagEMREXTFLOODFILL}
  6157. EMREXTFLOODFILL = tagEMREXTFLOODFILL;
  6158. {$EXTERNALSYM EMREXTFLOODFILL}
  6159. TEmrExtFloodFill = EMREXTFLOODFILL;
  6160. PEmrEllipse = ^TEmrEllipse;
  6161. tagEMRELLIPSE = record
  6162. emr: EMR;
  6163. rclBox: RECTL; // Inclusive-inclusive bounding rectangle
  6164. end;
  6165. {$EXTERNALSYM tagEMRELLIPSE}
  6166. EMRELLIPSE = tagEMRELLIPSE;
  6167. {$EXTERNALSYM EMRELLIPSE}
  6168. EMRRECTANGLE = tagEMRELLIPSE;
  6169. {$EXTERNALSYM EMRRECTANGLE}
  6170. PEMRRECTANGLE = ^EMRRECTANGLE;
  6171. {$EXTERNALSYM PEMRRECTANGLE}
  6172. TEmrEllipse = EMRELLIPSE;
  6173. PEmrRoundRect = ^TEmrRoundRect;
  6174. tagEMRROUNDRECT = record
  6175. emr: EMR;
  6176. rclBox: RECTL; // Inclusive-inclusive bounding rectangle
  6177. szlCorner: SIZEL;
  6178. end;
  6179. {$EXTERNALSYM tagEMRROUNDRECT}
  6180. EMRROUNDRECT = tagEMRROUNDRECT;
  6181. {$EXTERNALSYM EMRROUNDRECT}
  6182. TEmrRoundRect = EMRROUNDRECT;
  6183. PEmrArc = ^TEmrArc;
  6184. tagEMRARC = record
  6185. emr: EMR;
  6186. rclBox: RECTL; // Inclusive-inclusive bounding rectangle
  6187. ptlStart: POINTL;
  6188. ptlEnd: POINTL;
  6189. end;
  6190. {$EXTERNALSYM tagEMRARC}
  6191. EMRARC = tagEMRARC;
  6192. {$EXTERNALSYM EMRARC}
  6193. EMRARCTO = tagEMRARC;
  6194. {$EXTERNALSYM EMRARCTO}
  6195. PEMRARCTO = ^EMRARCTO;
  6196. {$EXTERNALSYM PEMRARCTO}
  6197. EMRCHORD = tagEMRARC;
  6198. {$EXTERNALSYM EMRCHORD}
  6199. PEMRCHORD = ^EMRCHORD;
  6200. {$EXTERNALSYM PEMRCHORD}
  6201. EMRPIE = tagEMRARC;
  6202. {$EXTERNALSYM EMRPIE}
  6203. PEMRPIE = ^EMRPIE;
  6204. {$EXTERNALSYM PEMRPIE}
  6205. TEmrArc = EMRARC;
  6206. PEmrAngleArc = ^TEmrAngleArc;
  6207. tagEMRANGLEARC = record
  6208. emr: EMR;
  6209. ptlCenter: POINTL;
  6210. nRadius: DWORD;
  6211. eStartAngle: FLOAT;
  6212. eSweepAngle: FLOAT;
  6213. end;
  6214. {$EXTERNALSYM tagEMRANGLEARC}
  6215. EMRANGLEARC = tagEMRANGLEARC;
  6216. {$EXTERNALSYM EMRANGLEARC}
  6217. TEmrAngleArc = EMRANGLEARC;
  6218. PEmrPolyline = ^TEmrPolyline;
  6219. tagEMRPOLYLINE = record
  6220. emr: EMR;
  6221. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6222. cptl: DWORD;
  6223. aptl: array [0..0] of POINTL;
  6224. end;
  6225. {$EXTERNALSYM tagEMRPOLYLINE}
  6226. EMRPOLYLINE = tagEMRPOLYLINE;
  6227. {$EXTERNALSYM EMRPOLYLINE}
  6228. EMRPOLYBEZIER = tagEMRPOLYLINE;
  6229. {$EXTERNALSYM EMRPOLYBEZIER}
  6230. PEMRPOLYBEZIER = ^EMRPOLYBEZIER;
  6231. {$EXTERNALSYM PEMRPOLYBEZIER}
  6232. EMRPOLYGON = tagEMRPOLYLINE;
  6233. {$EXTERNALSYM EMRPOLYGON}
  6234. PEMRPOLYGON = ^EMRPOLYGON;
  6235. {$EXTERNALSYM PEMRPOLYGON}
  6236. EMRPOLYBEZIERTO = tagEMRPOLYLINE;
  6237. {$EXTERNALSYM EMRPOLYBEZIERTO}
  6238. PEMRPOLYBEZIERTO = ^EMRPOLYBEZIERTO;
  6239. {$EXTERNALSYM PEMRPOLYBEZIERTO}
  6240. EMRPOLYLINETO = tagEMRPOLYLINE;
  6241. {$EXTERNALSYM EMRPOLYLINETO}
  6242. PEMRPOLYLINETO = ^EMRPOLYLINETO;
  6243. {$EXTERNALSYM PEMRPOLYLINETO}
  6244. TEmrPolyline = EMRPOLYLINE;
  6245. PEmrPolyline16 = ^TEmrPolyline16;
  6246. tagEMRPOLYLINE16 = record
  6247. emr: EMR;
  6248. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6249. cpts: DWORD;
  6250. apts: array [0..0] of POINTS;
  6251. end;
  6252. {$EXTERNALSYM tagEMRPOLYLINE16}
  6253. EMRPOLYLINE16 = tagEMRPOLYLINE16;
  6254. {$EXTERNALSYM EMRPOLYLINE16}
  6255. EMRPOLYBEZIER16 = tagEMRPOLYLINE16;
  6256. {$EXTERNALSYM EMRPOLYBEZIER16}
  6257. PEMRPOLYBEZIER16 = ^EMRPOLYBEZIER16;
  6258. {$EXTERNALSYM PEMRPOLYBEZIER16}
  6259. EMRPOLYGON16 = tagEMRPOLYLINE16;
  6260. {$EXTERNALSYM EMRPOLYGON16}
  6261. PEMRPOLYGON16 = ^EMRPOLYGON16;
  6262. {$EXTERNALSYM PEMRPOLYGON16}
  6263. EMRPOLYBEZIERTO16 = tagEMRPOLYLINE16;
  6264. {$EXTERNALSYM EMRPOLYBEZIERTO16}
  6265. PEMRPOLYBEZIERTO16 = ^EMRPOLYBEZIERTO16;
  6266. {$EXTERNALSYM PEMRPOLYBEZIERTO16}
  6267. EMRPOLYLINETO16 = tagEMRPOLYLINE16;
  6268. {$EXTERNALSYM EMRPOLYLINETO16}
  6269. PEMRPOLYLINETO16 = ^EMRPOLYLINETO16;
  6270. {$EXTERNALSYM PEMRPOLYLINETO16}
  6271. TEmrPolyline16 = EMRPOLYLINE16;
  6272. PEmrPolyDraw = ^TEmrPolyDraw;
  6273. tagEMRPOLYDRAW = record
  6274. emr: EMR;
  6275. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6276. cptl: DWORD; // Number of points
  6277. aptl: array [0..0] of POINTL; // Array of points
  6278. abTypes: array [0..0] of BYTE; // Array of point types
  6279. end;
  6280. {$EXTERNALSYM tagEMRPOLYDRAW}
  6281. EMRPOLYDRAW = tagEMRPOLYDRAW;
  6282. {$EXTERNALSYM EMRPOLYDRAW}
  6283. TEmrPolyDraw = EMRPOLYDRAW;
  6284. PEmrPolyDraw16 = ^TEmrPolyDraw16;
  6285. tagEMRPOLYDRAW16 = record
  6286. emr: EMR;
  6287. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6288. cpts: DWORD; // Number of points
  6289. apts: array [0..0] of POINTS; // Array of points
  6290. abTypes: array [0..0] of BYTE; // Array of point types
  6291. end;
  6292. {$EXTERNALSYM tagEMRPOLYDRAW16}
  6293. EMRPOLYDRAW16 = tagEMRPOLYDRAW16;
  6294. {$EXTERNALSYM EMRPOLYDRAW16}
  6295. TEmrPolyDraw16 = EMRPOLYDRAW16;
  6296. PEmrPolyPolyline = ^TEmrPolyPolyline;
  6297. tagEMRPOLYPOLYLINE = record
  6298. emr: EMR;
  6299. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6300. nPolys: DWORD; // Number of polys
  6301. cptl: DWORD; // Total number of points in all polys
  6302. aPolyCounts: array [0..0] of DWORD; // Array of point counts for each poly
  6303. aptl: array [0..0] of POINTL; // Array of points
  6304. end;
  6305. {$EXTERNALSYM tagEMRPOLYPOLYLINE}
  6306. EMRPOLYPOLYLINE = tagEMRPOLYPOLYLINE;
  6307. {$EXTERNALSYM EMRPOLYPOLYLINE}
  6308. EMRPOLYPOLYGON = tagEMRPOLYPOLYLINE;
  6309. {$EXTERNALSYM EMRPOLYPOLYGON}
  6310. TEmrPolyPolyline = EMRPOLYPOLYLINE;
  6311. PEmrPolyPolyline16 = ^TEmrPolyPolyline16;
  6312. tagEMRPOLYPOLYLINE16 = record
  6313. emr: EMR;
  6314. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6315. nPolys: DWORD; // Number of polys
  6316. cpts: DWORD; // Total number of points in all polys
  6317. aPolyCounts: array [0..0] of DWORD; // Array of point counts for each poly
  6318. apts: array [0..0] of POINTS; // Array of points
  6319. end;
  6320. {$EXTERNALSYM tagEMRPOLYPOLYLINE16}
  6321. EMRPOLYPOLYLINE16 = tagEMRPOLYPOLYLINE16;
  6322. {$EXTERNALSYM EMRPOLYPOLYLINE16}
  6323. EMRPOLYPOLYGON16 = tagEMRPOLYPOLYLINE16;
  6324. {$EXTERNALSYM EMRPOLYPOLYGON16}
  6325. PEMRPOLYPOLYGON16 = ^EMRPOLYPOLYGON16;
  6326. {$EXTERNALSYM PEMRPOLYPOLYGON16}
  6327. TEmrPolyPolyline16 = EMRPOLYPOLYLINE16;
  6328. PEmrInvertRgn = ^TEmrInvertRgn;
  6329. tagEMRINVERTRGN = record
  6330. emr: EMR;
  6331. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6332. cbRgnData: DWORD; // Size of region data in bytes
  6333. RgnData: array [0..0] of BYTE;
  6334. end;
  6335. {$EXTERNALSYM tagEMRINVERTRGN}
  6336. EMRINVERTRGN = tagEMRINVERTRGN;
  6337. {$EXTERNALSYM EMRINVERTRGN}
  6338. EMRPAINTRGN = tagEMRINVERTRGN;
  6339. {$EXTERNALSYM EMRPAINTRGN}
  6340. TEmrInvertRgn = EMRINVERTRGN;
  6341. PEmrFillRgn = ^TEmrFillRgn;
  6342. tagEMRFILLRGN = record
  6343. emr: EMR;
  6344. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6345. cbRgnData: DWORD; // Size of region data in bytes
  6346. ihBrush: DWORD; // Brush handle index
  6347. RgnData: array [0..0] of BYTE;
  6348. end;
  6349. {$EXTERNALSYM tagEMRFILLRGN}
  6350. EMRFILLRGN = tagEMRFILLRGN;
  6351. {$EXTERNALSYM EMRFILLRGN}
  6352. TEmrFillRgn = EMRFILLRGN;
  6353. PEmrFrameRgn = ^TEmrFrameRgn;
  6354. tagEMRFRAMERGN = record
  6355. emr: EMR;
  6356. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6357. cbRgnData: DWORD; // Size of region data in bytes
  6358. ihBrush: DWORD; // Brush handle index
  6359. szlStroke: SIZEL;
  6360. RgnData: array [0..0] of BYTE;
  6361. end;
  6362. {$EXTERNALSYM tagEMRFRAMERGN}
  6363. EMRFRAMERGN = tagEMRFRAMERGN;
  6364. {$EXTERNALSYM EMRFRAMERGN}
  6365. TEmrFrameRgn = EMRFRAMERGN;
  6366. PEmrExtSelectClipRgn = ^TEmrExtSelectClipRgn;
  6367. tagEMREXTSELECTCLIPRGN = record
  6368. emr: EMR;
  6369. cbRgnData: DWORD; // Size of region data in bytes
  6370. iMode: DWORD;
  6371. RgnData: array [0..0] of BYTE;
  6372. end;
  6373. {$EXTERNALSYM tagEMREXTSELECTCLIPRGN}
  6374. EMREXTSELECTCLIPRGN = tagEMREXTSELECTCLIPRGN;
  6375. {$EXTERNALSYM EMREXTSELECTCLIPRGN}
  6376. TEmrExtSelectClipRgn = EMREXTSELECTCLIPRGN;
  6377. PEmrExtTextOutA = ^TEmrExtTextOutA;
  6378. tagEMREXTTEXTOUTA = record
  6379. emr: EMR;
  6380. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6381. iGraphicsMode: DWORD; // Current graphics mode
  6382. exScale: FLOAT; // X and Y scales from Page units to .01mm units
  6383. eyScale: FLOAT; // if graphics mode is GM_COMPATIBLE.
  6384. emrtext: EMRTEXT; // This is followed by the string and spacing array
  6385. end;
  6386. {$EXTERNALSYM tagEMREXTTEXTOUTA}
  6387. EMREXTTEXTOUTA = tagEMREXTTEXTOUTA;
  6388. {$EXTERNALSYM EMREXTTEXTOUTA}
  6389. EMREXTTEXTOUTW = tagEMREXTTEXTOUTA;
  6390. {$EXTERNALSYM EMREXTTEXTOUTW}
  6391. PEMREXTTEXTOUTW = ^EMREXTTEXTOUTW;
  6392. {$EXTERNALSYM PEMREXTTEXTOUTW}
  6393. TEmrExtTextOutA = EMREXTTEXTOUTA;
  6394. PEmrPolyTextOutA = ^TEmrPolyTextOutA;
  6395. tagEMRPOLYTEXTOUTA = record
  6396. emr: EMR;
  6397. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6398. iGraphicsMode: DWORD; // Current graphics mode
  6399. exScale: FLOAT; // X and Y scales from Page units to .01mm units
  6400. eyScale: FLOAT; // if graphics mode is GM_COMPATIBLE.
  6401. cStrings: LONG;
  6402. aemrtext: array [0..0] of EMRTEXT; // Array of EMRTEXT structures. This is
  6403. // followed by the strings and spacing arrays.
  6404. end;
  6405. {$EXTERNALSYM tagEMRPOLYTEXTOUTA}
  6406. EMRPOLYTEXTOUTA = tagEMRPOLYTEXTOUTA;
  6407. {$EXTERNALSYM EMRPOLYTEXTOUTA}
  6408. EMRPOLYTEXTOUTW = tagEMRPOLYTEXTOUTA;
  6409. {$EXTERNALSYM EMRPOLYTEXTOUTW}
  6410. PEMRPOLYTEXTOUTW = ^EMRPOLYTEXTOUTW;
  6411. {$EXTERNALSYM PEMRPOLYTEXTOUTW}
  6412. TEmrPolyTextOutA = EMRPOLYTEXTOUTA;
  6413. PEmrBitBlt = ^TEmrBitBlt;
  6414. tagEMRBITBLT = record
  6415. emr: EMR;
  6416. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6417. xDest: LONG;
  6418. yDest: LONG;
  6419. cxDest: LONG;
  6420. cyDest: LONG;
  6421. dwRop: DWORD;
  6422. xSrc: LONG;
  6423. ySrc: LONG;
  6424. xformSrc: XFORM; // Source DC transform
  6425. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6426. iUsageSrc: DWORD; // Source bitmap info color table usage
  6427. // (DIB_RGB_COLORS)
  6428. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6429. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6430. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6431. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6432. end;
  6433. {$EXTERNALSYM tagEMRBITBLT}
  6434. EMRBITBLT = tagEMRBITBLT;
  6435. {$EXTERNALSYM EMRBITBLT}
  6436. TEmrBitBlt = EMRBITBLT;
  6437. PEmrStretchBlt = ^TEmrStretchBlt;
  6438. tagEMRSTRETCHBLT = record
  6439. emr: EMR;
  6440. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6441. xDest: LONG;
  6442. yDest: LONG;
  6443. cxDest: LONG;
  6444. cyDest: LONG;
  6445. dwRop: DWORD;
  6446. xSrc: LONG;
  6447. ySrc: LONG;
  6448. xformSrc: XFORM; // Source DC transform
  6449. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6450. iUsageSrc: DWORD; // Source bitmap info color table usage
  6451. // (DIB_RGB_COLORS)
  6452. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6453. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6454. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6455. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6456. cxSrc: LONG;
  6457. cySrc: LONG;
  6458. end;
  6459. {$EXTERNALSYM tagEMRSTRETCHBLT}
  6460. EMRSTRETCHBLT = tagEMRSTRETCHBLT;
  6461. {$EXTERNALSYM EMRSTRETCHBLT}
  6462. TEmrStretchBlt = EMRSTRETCHBLT;
  6463. PEmrMaskBlt = ^TEmrMaskBlt;
  6464. tagEMRMASKBLT = record
  6465. emr: EMR;
  6466. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6467. xDest: LONG;
  6468. yDest: LONG;
  6469. cxDest: LONG;
  6470. cyDest: LONG;
  6471. dwRop: DWORD;
  6472. xSrc: LONG;
  6473. ySrc: LONG;
  6474. xformSrc: XFORM; // Source DC transform
  6475. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6476. iUsageSrc: DWORD; // Source bitmap info color table usage
  6477. // (DIB_RGB_COLORS)
  6478. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6479. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6480. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6481. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6482. xMask: LONG;
  6483. yMask: LONG;
  6484. iUsageMask: DWORD; // Mask bitmap info color table usage
  6485. offBmiMask: DWORD; // Offset to the mask BITMAPINFO structure if any
  6486. cbBmiMask: DWORD; // Size of the mask BITMAPINFO structure if any
  6487. offBitsMask: DWORD; // Offset to the mask bitmap bits if any
  6488. cbBitsMask: DWORD; // Size of the mask bitmap bits if any
  6489. end;
  6490. {$EXTERNALSYM tagEMRMASKBLT}
  6491. EMRMASKBLT = tagEMRMASKBLT;
  6492. {$EXTERNALSYM EMRMASKBLT}
  6493. TEmrMaskBlt = EMRMASKBLT;
  6494. PEmrPlgBlt = ^TEmrPlgBlt;
  6495. tagEMRPLGBLT = record
  6496. emr: EMR;
  6497. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6498. aptlDest: array[0..2] of POINTL;
  6499. xSrc: LONG;
  6500. ySrc: LONG;
  6501. cxSrc: LONG;
  6502. cySrc: LONG;
  6503. xformSrc: XFORM; // Source DC transform
  6504. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6505. iUsageSrc: DWORD; // Source bitmap info color table usage
  6506. // (DIB_RGB_COLORS)
  6507. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6508. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6509. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6510. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6511. xMask: LONG;
  6512. yMask: LONG;
  6513. iUsageMask: DWORD; // Mask bitmap info color table usage
  6514. offBmiMask: DWORD; // Offset to the mask BITMAPINFO structure if any
  6515. cbBmiMask: DWORD; // Size of the mask BITMAPINFO structure if any
  6516. offBitsMask: DWORD; // Offset to the mask bitmap bits if any
  6517. cbBitsMask: DWORD; // Size of the mask bitmap bits if any
  6518. end;
  6519. {$EXTERNALSYM tagEMRPLGBLT}
  6520. EMRPLGBLT = tagEMRPLGBLT;
  6521. {$EXTERNALSYM EMRPLGBLT}
  6522. TEmrPlgBlt = EMRPLGBLT;
  6523. PEmrSetDiBitsToDevice = ^TEmrSetDiBitsToDevice;
  6524. tagEMRSETDIBITSTODEVICE = record
  6525. emr: EMR;
  6526. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6527. xDest: LONG;
  6528. yDest: LONG;
  6529. xSrc: LONG;
  6530. ySrc: LONG;
  6531. cxSrc: LONG;
  6532. cySrc: LONG;
  6533. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6534. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6535. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6536. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6537. iUsageSrc: DWORD; // Source bitmap info color table usage
  6538. iStartScan: DWORD;
  6539. cScans: DWORD;
  6540. end;
  6541. {$EXTERNALSYM tagEMRSETDIBITSTODEVICE}
  6542. EMRSETDIBITSTODEVICE = tagEMRSETDIBITSTODEVICE;
  6543. {$EXTERNALSYM EMRSETDIBITSTODEVICE}
  6544. TEmrSetDiBitsToDevice = EMRSETDIBITSTODEVICE;
  6545. PEmrStretchDiBits = ^TEmrStretchDiBits;
  6546. tagEMRSTRETCHDIBITS = record
  6547. emr: EMR;
  6548. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6549. xDest: LONG;
  6550. yDest: LONG;
  6551. xSrc: LONG;
  6552. ySrc: LONG;
  6553. cxSrc: LONG;
  6554. cySrc: LONG;
  6555. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6556. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6557. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6558. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6559. iUsageSrc: DWORD; // Source bitmap info color table usage
  6560. dwRop: DWORD;
  6561. cxDest: LONG;
  6562. cyDest: LONG;
  6563. end;
  6564. {$EXTERNALSYM tagEMRSTRETCHDIBITS}
  6565. EMRSTRETCHDIBITS = tagEMRSTRETCHDIBITS;
  6566. {$EXTERNALSYM EMRSTRETCHDIBITS}
  6567. TEmrStretchDiBits = EMRSTRETCHDIBITS;
  6568. PEmrExtCreateFontIndirectW = ^TEmrExtCreateFontIndirectW;
  6569. tagEMREXTCREATEFONTINDIRECTW = record
  6570. emr: EMR;
  6571. ihFont: DWORD; // Font handle index
  6572. elfw: EXTLOGFONTW;
  6573. end;
  6574. {$EXTERNALSYM tagEMREXTCREATEFONTINDIRECTW}
  6575. EMREXTCREATEFONTINDIRECTW = tagEMREXTCREATEFONTINDIRECTW;
  6576. {$EXTERNALSYM EMREXTCREATEFONTINDIRECTW}
  6577. TEmrExtCreateFontIndirectW = EMREXTCREATEFONTINDIRECTW;
  6578. PEmrCreatePalette = ^TEmrCreatePalette;
  6579. tagEMRCREATEPALETTE = record
  6580. emr: EMR;
  6581. ihPal: DWORD; // Palette handle index
  6582. lgpl: LOGPALETTE; // The peFlags fields in the palette entries
  6583. // do not contain any flags
  6584. end;
  6585. {$EXTERNALSYM tagEMRCREATEPALETTE}
  6586. EMRCREATEPALETTE = tagEMRCREATEPALETTE;
  6587. {$EXTERNALSYM EMRCREATEPALETTE}
  6588. TEmrCreatePalette = EMRCREATEPALETTE;
  6589. PEmrCreatePen = ^TEmrCreatePen;
  6590. tagEMRCREATEPEN = record
  6591. emr: EMR;
  6592. ihPen: DWORD; // Pen handle index
  6593. lopn: LOGPEN;
  6594. end;
  6595. {$EXTERNALSYM tagEMRCREATEPEN}
  6596. EMRCREATEPEN = tagEMRCREATEPEN;
  6597. {$EXTERNALSYM EMRCREATEPEN}
  6598. TEmrCreatePen = EMRCREATEPEN;
  6599. PEmrExtCreatePen = ^TEmrExtCreatePen;
  6600. tagEMREXTCREATEPEN = record
  6601. emr: EMR;
  6602. ihPen: DWORD; // Pen handle index
  6603. offBmi: DWORD; // Offset to the BITMAPINFO structure if any
  6604. cbBmi: DWORD; // Size of the BITMAPINFO structure if any
  6605. // The bitmap info is followed by the bitmap
  6606. // bits to form a packed DIB.
  6607. offBits: DWORD; // Offset to the brush bitmap bits if any
  6608. cbBits: DWORD; // Size of the brush bitmap bits if any
  6609. elp: EXTLOGPEN; // The extended pen with the style array.
  6610. end;
  6611. {$EXTERNALSYM tagEMREXTCREATEPEN}
  6612. EMREXTCREATEPEN = tagEMREXTCREATEPEN;
  6613. {$EXTERNALSYM EMREXTCREATEPEN}
  6614. TEmrExtCreatePen = EMREXTCREATEPEN;
  6615. PEmrCreateBrushIndirect = ^TEmrCreateBrushIndirect;
  6616. tagEMRCREATEBRUSHINDIRECT = record
  6617. emr: EMR;
  6618. ihBrush: DWORD; // Brush handle index
  6619. lb: LOGBRUSH32; // The style must be BS_SOLID, BS_HOLLOW,
  6620. // BS_NULL or BS_HATCHED.
  6621. end;
  6622. {$EXTERNALSYM tagEMRCREATEBRUSHINDIRECT}
  6623. EMRCREATEBRUSHINDIRECT = tagEMRCREATEBRUSHINDIRECT;
  6624. {$EXTERNALSYM EMRCREATEBRUSHINDIRECT}
  6625. TEmrCreateBrushIndirect = EMRCREATEBRUSHINDIRECT;
  6626. PEmrCreateMonoBrush = ^TEmrCreateMonoBrush;
  6627. tagEMRCREATEMONOBRUSH = record
  6628. emr: EMR;
  6629. ihBrush: DWORD; // Brush handle index
  6630. iUsage: DWORD; // Bitmap info color table usage
  6631. offBmi: DWORD; // Offset to the BITMAPINFO structure
  6632. cbBmi: DWORD; // Size of the BITMAPINFO structure
  6633. offBits: DWORD; // Offset to the bitmap bits
  6634. cbBits: DWORD; // Size of the bitmap bits
  6635. end;
  6636. {$EXTERNALSYM tagEMRCREATEMONOBRUSH}
  6637. EMRCREATEMONOBRUSH = tagEMRCREATEMONOBRUSH;
  6638. {$EXTERNALSYM EMRCREATEMONOBRUSH}
  6639. TEmrCreateMonoBrush = EMRCREATEMONOBRUSH;
  6640. PEmrCreateDibPatternBrushPt = ^TEmrCreateDibPatternBrushPt;
  6641. tagEMRCREATEDIBPATTERNBRUSHPT = record
  6642. emr: EMR;
  6643. ihBrush: DWORD; // Brush handle index
  6644. iUsage: DWORD; // Bitmap info color table usage
  6645. offBmi: DWORD; // Offset to the BITMAPINFO structure
  6646. cbBmi: DWORD; // Size of the BITMAPINFO structure
  6647. // The bitmap info is followed by the bitmap
  6648. // bits to form a packed DIB.
  6649. offBits: DWORD; // Offset to the bitmap bits
  6650. cbBits: DWORD; // Size of the bitmap bits
  6651. end;
  6652. {$EXTERNALSYM tagEMRCREATEDIBPATTERNBRUSHPT}
  6653. EMRCREATEDIBPATTERNBRUSHPT = tagEMRCREATEDIBPATTERNBRUSHPT;
  6654. {$EXTERNALSYM EMRCREATEDIBPATTERNBRUSHPT}
  6655. TEmrCreateDibPatternBrushPt = EMRCREATEDIBPATTERNBRUSHPT;
  6656. PEmrFormat = ^TEmrFormat;
  6657. tagEMRFORMAT = record
  6658. dSignature: DWORD; // Format signature, e.g. ENHMETA_SIGNATURE.
  6659. nVersion: DWORD; // Format version number.
  6660. cbData: DWORD; // Size of data in bytes.
  6661. offData: DWORD; // Offset to data from GDICOMMENT_IDENTIFIER.
  6662. // It must begin at a DWORD offset.
  6663. end;
  6664. {$EXTERNALSYM tagEMRFORMAT}
  6665. EMRFORMAT = tagEMRFORMAT;
  6666. {$EXTERNALSYM EMRFORMAT}
  6667. TEmrFormat = EMRFORMAT;
  6668. PEmrGlsRecord = ^TEmrGlsRecord;
  6669. tagEMRGLSRECORD = record
  6670. emr: EMR;
  6671. cbData: DWORD; // Size of data in bytes
  6672. Data: array [0..0] of BYTE;
  6673. end;
  6674. {$EXTERNALSYM tagEMRGLSRECORD}
  6675. EMRGLSRECORD = tagEMRGLSRECORD;
  6676. {$EXTERNALSYM EMRGLSRECORD}
  6677. TEmrGlsRecord = EMRGLSRECORD;
  6678. PEmrGlsBoundedRecord = ^TEmrGlsBoundedRecord;
  6679. tagEMRGLSBOUNDEDRECORD = record
  6680. emr: EMR;
  6681. rclBounds: RECTL; // Bounds in recording coordinates
  6682. cbData: DWORD; // Size of data in bytes
  6683. Data: array [0..0] of BYTE;
  6684. end;
  6685. {$EXTERNALSYM tagEMRGLSBOUNDEDRECORD}
  6686. EMRGLSBOUNDEDRECORD = tagEMRGLSBOUNDEDRECORD;
  6687. {$EXTERNALSYM EMRGLSBOUNDEDRECORD}
  6688. TEmrGlsBoundedRecord = EMRGLSBOUNDEDRECORD;
  6689. PEmrPixelFormat = ^TEmrPixelFormat;
  6690. tagEMRPIXELFORMAT = record
  6691. emr: EMR;
  6692. pfd: PIXELFORMATDESCRIPTOR;
  6693. end;
  6694. {$EXTERNALSYM tagEMRPIXELFORMAT}
  6695. EMRPIXELFORMAT = tagEMRPIXELFORMAT;
  6696. {$EXTERNALSYM EMRPIXELFORMAT}
  6697. TEmrPixelFormat = EMRPIXELFORMAT;
  6698. PEmrCreateColorSpace = ^TEmrCreateColorSpace;
  6699. tagEMRCREATECOLORSPACE = record
  6700. emr: EMR;
  6701. ihCS: DWORD; // ColorSpace handle index
  6702. lcs: LOGCOLORSPACEA; // Ansi version of LOGCOLORSPACE
  6703. end;
  6704. {$EXTERNALSYM tagEMRCREATECOLORSPACE}
  6705. EMRCREATECOLORSPACE = tagEMRCREATECOLORSPACE;
  6706. {$EXTERNALSYM EMRCREATECOLORSPACE}
  6707. TEmrCreateColorSpace = EMRCREATECOLORSPACE;
  6708. PEmrSetColorSpace = ^TEmrSetColorSpace;
  6709. tagEMRSETCOLORSPACE = record
  6710. emr: EMR;
  6711. ihCS: DWORD; // ColorSpace handle index
  6712. end;
  6713. {$EXTERNALSYM tagEMRSETCOLORSPACE}
  6714. EMRSETCOLORSPACE = tagEMRSETCOLORSPACE;
  6715. {$EXTERNALSYM EMRSETCOLORSPACE}
  6716. EMRSELECTCOLORSPACE = tagEMRSETCOLORSPACE;
  6717. {$EXTERNALSYM EMRSELECTCOLORSPACE}
  6718. PEMRSELECTCOLORSPACE = ^EMRSELECTCOLORSPACE;
  6719. {$EXTERNALSYM PEMRSELECTCOLORSPACE}
  6720. EMRDELETECOLORSPACE = tagEMRSETCOLORSPACE;
  6721. {$EXTERNALSYM EMRDELETECOLORSPACE}
  6722. PEMRDELETECOLORSPACE = ^EMRDELETECOLORSPACE;
  6723. {$EXTERNALSYM PEMRDELETECOLORSPACE}
  6724. TEmrSetColorSpace = EMRSETCOLORSPACE;
  6725. PEmrExtEscape = ^TEmrExtEscape;
  6726. tagEMREXTESCAPE = record
  6727. emr: EMR;
  6728. iEscape: INT; // Escape code
  6729. cbEscData: INT; // Size of escape data
  6730. EscData: array [0..0] of BYTE; // Escape data
  6731. end;
  6732. {$EXTERNALSYM tagEMREXTESCAPE}
  6733. EMREXTESCAPE = tagEMREXTESCAPE;
  6734. {$EXTERNALSYM EMREXTESCAPE}
  6735. EMRDRAWESCAPE = tagEMREXTESCAPE;
  6736. {$EXTERNALSYM EMRDRAWESCAPE}
  6737. PEMRDRAWESCAPE = ^EMRDRAWESCAPE;
  6738. {$EXTERNALSYM PEMRDRAWESCAPE}
  6739. TEmrExtEscape = EMREXTESCAPE;
  6740. PEmrNamedEscape = ^TEmrNamedEscape;
  6741. tagEMRNAMEDESCAPE = record
  6742. emr: EMR;
  6743. iEscape: INT; // Escape code
  6744. cbDriver: INT; // Size of driver name
  6745. cbEscData: INT; // Size of escape data
  6746. EscData: array [0..0] of BYTE; // Driver name and Escape data
  6747. end;
  6748. {$EXTERNALSYM tagEMRNAMEDESCAPE}
  6749. EMRNAMEDESCAPE = tagEMRNAMEDESCAPE;
  6750. {$EXTERNALSYM EMRNAMEDESCAPE}
  6751. TEmrNamedEscape = EMRNAMEDESCAPE;
  6752. const
  6753. SETICMPROFILE_EMBEDED = $00000001;
  6754. {$EXTERNALSYM SETICMPROFILE_EMBEDED}
  6755. type
  6756. PEmrSetIcmProfile = ^TEmrSetIcmProfile;
  6757. tagEMRSETICMPROFILE = record
  6758. emr: EMR;
  6759. dwFlags: DWORD; // flags
  6760. cbName: DWORD; // Size of desired profile name
  6761. cbData: DWORD; // Size of raw profile data if attached
  6762. Data: array [0..0] of BYTE; // Array size is cbName + cbData
  6763. end;
  6764. {$EXTERNALSYM tagEMRSETICMPROFILE}
  6765. EMRSETICMPROFILE = tagEMRSETICMPROFILE;
  6766. {$EXTERNALSYM EMRSETICMPROFILE}
  6767. EMRSETICMPROFILEA = tagEMRSETICMPROFILE;
  6768. {$EXTERNALSYM EMRSETICMPROFILEA}
  6769. PEMRSETICMPROFILEA = ^EMRSETICMPROFILEA;
  6770. {$EXTERNALSYM PEMRSETICMPROFILEA}
  6771. EMRSETICMPROFILEW = tagEMRSETICMPROFILE;
  6772. {$EXTERNALSYM EMRSETICMPROFILEW}
  6773. PEMRSETICMPROFILEW = ^EMRSETICMPROFILEW;
  6774. {$EXTERNALSYM PEMRSETICMPROFILEW}
  6775. TEmrSetIcmProfile = EMRSETICMPROFILE;
  6776. const
  6777. CREATECOLORSPACE_EMBEDED = $00000001;
  6778. {$EXTERNALSYM CREATECOLORSPACE_EMBEDED}
  6779. type
  6780. PEmrCreateColorSpaceW = ^TEmrCreateColorSpaceW;
  6781. tagEMRCREATECOLORSPACEW = record
  6782. emr: EMR;
  6783. ihCS: DWORD; // ColorSpace handle index
  6784. lcs: LOGCOLORSPACEW; // Unicode version of logical color space structure
  6785. dwFlags: DWORD; // flags
  6786. cbData: DWORD; // size of raw source profile data if attached
  6787. Data: array [0..0] of BYTE; // Array size is cbData
  6788. end;
  6789. {$EXTERNALSYM tagEMRCREATECOLORSPACEW}
  6790. EMRCREATECOLORSPACEW = tagEMRCREATECOLORSPACEW;
  6791. {$EXTERNALSYM EMRCREATECOLORSPACEW}
  6792. TEmrCreateColorSpaceW = EMRCREATECOLORSPACEW;
  6793. const
  6794. COLORMATCHTOTARGET_EMBEDED = $00000001;
  6795. {$EXTERNALSYM COLORMATCHTOTARGET_EMBEDED}
  6796. type
  6797. PColorMatchToTarget = ^TColorMatchToTarget;
  6798. tagCOLORMATCHTOTARGET = record
  6799. emr: EMR;
  6800. dwAction: DWORD; // CS_ENABLE, CS_DISABLE or CS_DELETE_TRANSFORM
  6801. dwFlags: DWORD; // flags
  6802. cbName: DWORD; // Size of desired target profile name
  6803. cbData: DWORD; // Size of raw target profile data if attached
  6804. Data: array [0..0] of BYTE; // Array size is cbName + cbData
  6805. end;
  6806. {$EXTERNALSYM tagCOLORMATCHTOTARGET}
  6807. //COLORMATCHTOTARGET = tagCOLORMATCHTOTARGET;
  6808. //{$EXTERNALSYM COLORMATCHTOTARGET}
  6809. TColorMatchToTarget = tagCOLORMATCHTOTARGET;
  6810. PColorCorrectPalette = ^TColorCorrectPalette;
  6811. tagCOLORCORRECTPALETTE = record
  6812. emr: EMR;
  6813. ihPalette: DWORD; // Palette handle index
  6814. nFirstEntry: DWORD; // Index of first entry to correct
  6815. nPalEntries: DWORD; // Number of palette entries to correct
  6816. nReserved: DWORD; // Reserved
  6817. end;
  6818. {$EXTERNALSYM tagCOLORCORRECTPALETTE}
  6819. //COLORCORRECTPALETTE = tagCOLORCORRECTPALETTE;
  6820. //{$EXTERNALSYM COLORCORRECTPALETTE}
  6821. TColorCorrectPalette = tagCOLORCORRECTPALETTE;
  6822. PEmrAlphaBlend = ^TEmrAlphaBlend;
  6823. tagEMRALPHABLEND = record
  6824. emr: EMR;
  6825. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6826. xDest: LONG;
  6827. yDest: LONG;
  6828. cxDest: LONG;
  6829. cyDest: LONG;
  6830. dwRop: DWORD;
  6831. xSrc: LONG;
  6832. ySrc: LONG;
  6833. xformSrc: XFORM; // Source DC transform
  6834. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6835. iUsageSrc: DWORD; // Source bitmap info color table usage (DIB_RGB_COLORS)
  6836. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6837. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6838. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6839. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6840. cxSrc: LONG;
  6841. cySrc: LONG;
  6842. end;
  6843. {$EXTERNALSYM tagEMRALPHABLEND}
  6844. EMRALPHABLEND = tagEMRALPHABLEND;
  6845. {$EXTERNALSYM EMRALPHABLEND}
  6846. TEmrAlphaBlend = EMRALPHABLEND;
  6847. PEmrGradientFill = ^TEmrGradientFill;
  6848. tagEMRGRADIENTFILL = record
  6849. emr: EMR;
  6850. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6851. nVer: DWORD;
  6852. nTri: DWORD;
  6853. ulMode: ULONG;
  6854. Ver: array [0..0] of TRIVERTEX;
  6855. end;
  6856. {$EXTERNALSYM tagEMRGRADIENTFILL}
  6857. EMRGRADIENTFILL = tagEMRGRADIENTFILL;
  6858. {$EXTERNALSYM EMRGRADIENTFILL}
  6859. TEmrGradientFill = EMRGRADIENTFILL;
  6860. PEmrTransparentBlt = ^TEmrTransparentBlt;
  6861. tagEMRTRANSPARENTBLT = record
  6862. emr: EMR;
  6863. rclBounds: RECTL; // Inclusive-inclusive bounds in device units
  6864. xDest: LONG;
  6865. yDest: LONG;
  6866. cxDest: LONG;
  6867. cyDest: LONG;
  6868. dwRop: DWORD;
  6869. xSrc: LONG;
  6870. ySrc: LONG;
  6871. xformSrc: XFORM; // Source DC transform
  6872. crBkColorSrc: COLORREF; // Source DC BkColor in RGB
  6873. iUsageSrc: DWORD; // Source bitmap info color table usage
  6874. // (DIB_RGB_COLORS)
  6875. offBmiSrc: DWORD; // Offset to the source BITMAPINFO structure
  6876. cbBmiSrc: DWORD; // Size of the source BITMAPINFO structure
  6877. offBitsSrc: DWORD; // Offset to the source bitmap bits
  6878. cbBitsSrc: DWORD; // Size of the source bitmap bits
  6879. cxSrc: LONG;
  6880. cySrc: LONG;
  6881. end;
  6882. {$EXTERNALSYM tagEMRTRANSPARENTBLT}
  6883. EMRTRANSPARENTBLT = tagEMRTRANSPARENTBLT;
  6884. {$EXTERNALSYM EMRTRANSPARENTBLT}
  6885. TEmrTransparentBlt = EMRTRANSPARENTBLT;
  6886. const
  6887. GDICOMMENT_IDENTIFIER = $43494447;
  6888. {$EXTERNALSYM GDICOMMENT_IDENTIFIER}
  6889. GDICOMMENT_WINDOWS_METAFILE = DWORD($80000001);
  6890. {$EXTERNALSYM GDICOMMENT_WINDOWS_METAFILE}
  6891. GDICOMMENT_BEGINGROUP = $00000002;
  6892. {$EXTERNALSYM GDICOMMENT_BEGINGROUP}
  6893. GDICOMMENT_ENDGROUP = $00000003;
  6894. {$EXTERNALSYM GDICOMMENT_ENDGROUP}
  6895. GDICOMMENT_MULTIFORMATS = $40000004;
  6896. {$EXTERNALSYM GDICOMMENT_MULTIFORMATS}
  6897. EPS_SIGNATURE = $46535045;
  6898. {$EXTERNALSYM EPS_SIGNATURE}
  6899. GDICOMMENT_UNICODE_STRING = $00000040;
  6900. {$EXTERNALSYM GDICOMMENT_UNICODE_STRING}
  6901. GDICOMMENT_UNICODE_END = $00000080;
  6902. {$EXTERNALSYM GDICOMMENT_UNICODE_END}
  6903. // OpenGL wgl prototypes
  6904. function wglCopyContext(hglrcSrc, hglrcDest: HGLRC; mask: UINT): BOOL; stdcall;
  6905. {$EXTERNALSYM wglCopyContext}
  6906. function wglCreateContext(hdc: HDC): HGLRC; stdcall;
  6907. {$EXTERNALSYM wglCreateContext}
  6908. function wglCreateLayerContext(hdc: HDC; iLayerPlane: Integer): HGLRC; stdcall;
  6909. {$EXTERNALSYM wglCreateLayerContext}
  6910. function wglDeleteContext(hglrc: HGLRC): BOOL; stdcall;
  6911. {$EXTERNALSYM wglDeleteContext}
  6912. function wglGetCurrentContext: HGLRC; stdcall;
  6913. {$EXTERNALSYM wglGetCurrentContext}
  6914. function wglGetCurrentDC: HDC; stdcall;
  6915. {$EXTERNALSYM wglGetCurrentDC}
  6916. function wglGetProcAddress(lpszProc: LPCSTR): PROC; stdcall;
  6917. {$EXTERNALSYM wglGetProcAddress}
  6918. function wglMakeCurrent(hdc: HDC; hglrc: HGLRC): BOOL; stdcall;
  6919. {$EXTERNALSYM wglMakeCurrent}
  6920. function wglShareLists(hglrc1, hglrc2: HGLRC): BOOL; stdcall;
  6921. {$EXTERNALSYM wglShareLists}
  6922. function wglUseFontBitmapsA(hdc: HDC; first, count, listBase: DWORD): BOOL; stdcall;
  6923. {$EXTERNALSYM wglUseFontBitmapsA}
  6924. function wglUseFontBitmapsW(hdc: HDC; first, count, listBase: DWORD): BOOL; stdcall;
  6925. {$EXTERNALSYM wglUseFontBitmapsW}
  6926. function wglUseFontBitmaps(hdc: HDC; first, count, listBase: DWORD): BOOL; stdcall;
  6927. {$EXTERNALSYM wglUseFontBitmaps}
  6928. function SwapBuffers(hdc: HDC): BOOL; stdcall;
  6929. {$EXTERNALSYM SwapBuffers}
  6930. type
  6931. PPointFloat = ^TPointFloat;
  6932. _POINTFLOAT = record
  6933. x: FLOAT;
  6934. y: FLOAT;
  6935. end;
  6936. {$EXTERNALSYM _POINTFLOAT}
  6937. POINTFLOAT = _POINTFLOAT;
  6938. {$EXTERNALSYM POINTFLOAT}
  6939. TPointFloat = _POINTFLOAT;
  6940. PGlyphMetricsFloat = ^TGlyphMetricsFloat;
  6941. _GLYPHMETRICSFLOAT = record
  6942. gmfBlackBoxX: FLOAT;
  6943. gmfBlackBoxY: FLOAT;
  6944. gmfptGlyphOrigin: POINTFLOAT;
  6945. gmfCellIncX: FLOAT;
  6946. gmfCellIncY: FLOAT;
  6947. end;
  6948. {$EXTERNALSYM _GLYPHMETRICSFLOAT}
  6949. GLYPHMETRICSFLOAT = _GLYPHMETRICSFLOAT;
  6950. {$EXTERNALSYM GLYPHMETRICSFLOAT}
  6951. LPGLYPHMETRICSFLOAT = ^GLYPHMETRICSFLOAT;
  6952. {$EXTERNALSYM LPGLYPHMETRICSFLOAT}
  6953. TGlyphMetricsFloat = _GLYPHMETRICSFLOAT;
  6954. const
  6955. WGL_FONT_LINES = 0;
  6956. {$EXTERNALSYM WGL_FONT_LINES}
  6957. WGL_FONT_POLYGONS = 1;
  6958. {$EXTERNALSYM WGL_FONT_POLYGONS}
  6959. function wglUseFontOutlinesA(hdc: HDC; first, count, listBase: DWORD; deviation,
  6960. extrusion: FLOAT; format: Integer; lpgmf: LPGLYPHMETRICSFLOAT): BOOL; stdcall;
  6961. {$EXTERNALSYM wglUseFontOutlinesA}
  6962. function wglUseFontOutlinesW(hdc: HDC; first, count, listBase: DWORD; deviation,
  6963. extrusion: FLOAT; format: Integer; lpgmf: LPGLYPHMETRICSFLOAT): BOOL; stdcall;
  6964. {$EXTERNALSYM wglUseFontOutlinesW}
  6965. function wglUseFontOutlines(hdc: HDC; first, count, listBase: DWORD; deviation,
  6966. extrusion: FLOAT; format: Integer; lpgmf: LPGLYPHMETRICSFLOAT): BOOL; stdcall;
  6967. {$EXTERNALSYM wglUseFontOutlines}
  6968. // Layer plane descriptor
  6969. type
  6970. PLayerPlaneDescriptor = ^TLayerPlaneDescriptor;
  6971. tagLAYERPLANEDESCRIPTOR = record
  6972. nSize: WORD;
  6973. nVersion: WORD;
  6974. dwFlags: DWORD;
  6975. iPixelType: BYTE;
  6976. cColorBits: BYTE;
  6977. cRedBits: BYTE;
  6978. cRedShift: BYTE;
  6979. cGreenBits: BYTE;
  6980. cGreenShift: BYTE;
  6981. cBlueBits: BYTE;
  6982. cBlueShift: BYTE;
  6983. cAlphaBits: BYTE;
  6984. cAlphaShift: BYTE;
  6985. cAccumBits: BYTE;
  6986. cAccumRedBits: BYTE;
  6987. cAccumGreenBits: BYTE;
  6988. cAccumBlueBits: BYTE;
  6989. cAccumAlphaBits: BYTE;
  6990. cDepthBits: BYTE;
  6991. cStencilBits: BYTE;
  6992. cAuxBuffers: BYTE;
  6993. iLayerPlane: BYTE;
  6994. bReserved: BYTE;
  6995. crTransparent: COLORREF;
  6996. end;
  6997. {$EXTERNALSYM tagLAYERPLANEDESCRIPTOR}
  6998. LAYERPLANEDESCRIPTOR = tagLAYERPLANEDESCRIPTOR;
  6999. {$EXTERNALSYM LAYERPLANEDESCRIPTOR}
  7000. LPLAYERPLANEDESCRIPTOR = ^LAYERPLANEDESCRIPTOR;
  7001. {$EXTERNALSYM LPLAYERPLANEDESCRIPTOR}
  7002. TLayerPlaneDescriptor = LAYERPLANEDESCRIPTOR;
  7003. // LAYERPLANEDESCRIPTOR flags
  7004. const
  7005. LPD_DOUBLEBUFFER = $00000001;
  7006. {$EXTERNALSYM LPD_DOUBLEBUFFER}
  7007. LPD_STEREO = $00000002;
  7008. {$EXTERNALSYM LPD_STEREO}
  7009. LPD_SUPPORT_GDI = $00000010;
  7010. {$EXTERNALSYM LPD_SUPPORT_GDI}
  7011. LPD_SUPPORT_OPENGL = $00000020;
  7012. {$EXTERNALSYM LPD_SUPPORT_OPENGL}
  7013. LPD_SHARE_DEPTH = $00000040;
  7014. {$EXTERNALSYM LPD_SHARE_DEPTH}
  7015. LPD_SHARE_STENCIL = $00000080;
  7016. {$EXTERNALSYM LPD_SHARE_STENCIL}
  7017. LPD_SHARE_ACCUM = $00000100;
  7018. {$EXTERNALSYM LPD_SHARE_ACCUM}
  7019. LPD_SWAP_EXCHANGE = $00000200;
  7020. {$EXTERNALSYM LPD_SWAP_EXCHANGE}
  7021. LPD_SWAP_COPY = $00000400;
  7022. {$EXTERNALSYM LPD_SWAP_COPY}
  7023. LPD_TRANSPARENT = $00001000;
  7024. {$EXTERNALSYM LPD_TRANSPARENT}
  7025. LPD_TYPE_RGBA = 0;
  7026. {$EXTERNALSYM LPD_TYPE_RGBA}
  7027. LPD_TYPE_COLORINDEX = 1;
  7028. {$EXTERNALSYM LPD_TYPE_COLORINDEX}
  7029. // wglSwapLayerBuffers flags
  7030. WGL_SWAP_MAIN_PLANE = $00000001;
  7031. {$EXTERNALSYM WGL_SWAP_MAIN_PLANE}
  7032. WGL_SWAP_OVERLAY1 = $00000002;
  7033. {$EXTERNALSYM WGL_SWAP_OVERLAY1}
  7034. WGL_SWAP_OVERLAY2 = $00000004;
  7035. {$EXTERNALSYM WGL_SWAP_OVERLAY2}
  7036. WGL_SWAP_OVERLAY3 = $00000008;
  7037. {$EXTERNALSYM WGL_SWAP_OVERLAY3}
  7038. WGL_SWAP_OVERLAY4 = $00000010;
  7039. {$EXTERNALSYM WGL_SWAP_OVERLAY4}
  7040. WGL_SWAP_OVERLAY5 = $00000020;
  7041. {$EXTERNALSYM WGL_SWAP_OVERLAY5}
  7042. WGL_SWAP_OVERLAY6 = $00000040;
  7043. {$EXTERNALSYM WGL_SWAP_OVERLAY6}
  7044. WGL_SWAP_OVERLAY7 = $00000080;
  7045. {$EXTERNALSYM WGL_SWAP_OVERLAY7}
  7046. WGL_SWAP_OVERLAY8 = $00000100;
  7047. {$EXTERNALSYM WGL_SWAP_OVERLAY8}
  7048. WGL_SWAP_OVERLAY9 = $00000200;
  7049. {$EXTERNALSYM WGL_SWAP_OVERLAY9}
  7050. WGL_SWAP_OVERLAY10 = $00000400;
  7051. {$EXTERNALSYM WGL_SWAP_OVERLAY10}
  7052. WGL_SWAP_OVERLAY11 = $00000800;
  7053. {$EXTERNALSYM WGL_SWAP_OVERLAY11}
  7054. WGL_SWAP_OVERLAY12 = $00001000;
  7055. {$EXTERNALSYM WGL_SWAP_OVERLAY12}
  7056. WGL_SWAP_OVERLAY13 = $00002000;
  7057. {$EXTERNALSYM WGL_SWAP_OVERLAY13}
  7058. WGL_SWAP_OVERLAY14 = $00004000;
  7059. {$EXTERNALSYM WGL_SWAP_OVERLAY14}
  7060. WGL_SWAP_OVERLAY15 = $00008000;
  7061. {$EXTERNALSYM WGL_SWAP_OVERLAY15}
  7062. WGL_SWAP_UNDERLAY1 = $00010000;
  7063. {$EXTERNALSYM WGL_SWAP_UNDERLAY1}
  7064. WGL_SWAP_UNDERLAY2 = $00020000;
  7065. {$EXTERNALSYM WGL_SWAP_UNDERLAY2}
  7066. WGL_SWAP_UNDERLAY3 = $00040000;
  7067. {$EXTERNALSYM WGL_SWAP_UNDERLAY3}
  7068. WGL_SWAP_UNDERLAY4 = $00080000;
  7069. {$EXTERNALSYM WGL_SWAP_UNDERLAY4}
  7070. WGL_SWAP_UNDERLAY5 = $00100000;
  7071. {$EXTERNALSYM WGL_SWAP_UNDERLAY5}
  7072. WGL_SWAP_UNDERLAY6 = $00200000;
  7073. {$EXTERNALSYM WGL_SWAP_UNDERLAY6}
  7074. WGL_SWAP_UNDERLAY7 = $00400000;
  7075. {$EXTERNALSYM WGL_SWAP_UNDERLAY7}
  7076. WGL_SWAP_UNDERLAY8 = $00800000;
  7077. {$EXTERNALSYM WGL_SWAP_UNDERLAY8}
  7078. WGL_SWAP_UNDERLAY9 = $01000000;
  7079. {$EXTERNALSYM WGL_SWAP_UNDERLAY9}
  7080. WGL_SWAP_UNDERLAY10 = $02000000;
  7081. {$EXTERNALSYM WGL_SWAP_UNDERLAY10}
  7082. WGL_SWAP_UNDERLAY11 = $04000000;
  7083. {$EXTERNALSYM WGL_SWAP_UNDERLAY11}
  7084. WGL_SWAP_UNDERLAY12 = $08000000;
  7085. {$EXTERNALSYM WGL_SWAP_UNDERLAY12}
  7086. WGL_SWAP_UNDERLAY13 = $10000000;
  7087. {$EXTERNALSYM WGL_SWAP_UNDERLAY13}
  7088. WGL_SWAP_UNDERLAY14 = $20000000;
  7089. {$EXTERNALSYM WGL_SWAP_UNDERLAY14}
  7090. WGL_SWAP_UNDERLAY15 = $40000000;
  7091. {$EXTERNALSYM WGL_SWAP_UNDERLAY15}
  7092. function wglDescribeLayerPlane(hdc: HDC; iPixelFormat, iLayerPlane: Integer;
  7093. nBytes: UINT; plpd: LPLAYERPLANEDESCRIPTOR): BOOL; stdcall;
  7094. {$EXTERNALSYM wglDescribeLayerPlane}
  7095. function wglSetLayerPaletteEntries(hdc: HDC; iLayerPlane, iStart, cEntries: Integer;
  7096. pcr: LPCOLORREF): Integer; stdcall;
  7097. {$EXTERNALSYM wglSetLayerPaletteEntries}
  7098. function wglGetLayerPaletteEntries(hdc: HDC; iLayerPlane, iStart, cEntries: Integer;
  7099. pcr: LPCOLORREF): Integer; stdcall;
  7100. {$EXTERNALSYM wglGetLayerPaletteEntries}
  7101. function wglRealizeLayerPalette(hdc: HDC; iLayerPlane: Integer; bRealize: BOOL): BOOL; stdcall;
  7102. {$EXTERNALSYM wglRealizeLayerPalette}
  7103. function wglSwapLayerBuffers(hdc: HDC; fuPlanes: UINT): BOOL; stdcall;
  7104. {$EXTERNALSYM wglSwapLayerBuffers}
  7105. type
  7106. PWglSwap = ^TWglSwap;
  7107. _WGLSWAP = record
  7108. hdc: HDC;
  7109. uiFlags: UINT;
  7110. end;
  7111. {$EXTERNALSYM _WGLSWAP}
  7112. WGLSWAP = _WGLSWAP;
  7113. {$EXTERNALSYM WGLSWAP}
  7114. LPWGLSWAP = ^WGLSWAP;
  7115. {$EXTERNALSYM LPWGLSWAP}
  7116. TWglSwap = _WGLSWAP;
  7117. const
  7118. WGL_SWAPMULTIPLE_MAX = 16;
  7119. {$EXTERNALSYM WGL_SWAPMULTIPLE_MAX}
  7120. function wglSwapMultipleBuffers(fuCount: UINT; lpBuffers: LPWGLSWAP): DWORD; stdcall;
  7121. {$EXTERNALSYM wglSwapMultipleBuffers}
  7122. implementation
  7123. const
  7124. gdi32 = 'gdi32.dll';
  7125. msimg32 = 'msimg32.dll';
  7126. winspool32 = 'winspool32.drv';
  7127. opengl32 = 'opengl32.dll';
  7128. {$IFDEF UNICODE}
  7129. AWSuffix = 'W';
  7130. {$ELSE}
  7131. AWSuffix = 'A';
  7132. {$ENDIF UNICODE}
  7133. function MAKEROP4(Fore, Back: DWORD): DWORD;
  7134. begin
  7135. Result := ((Back shl 8) and DWORD($FF000000)) or Fore;
  7136. end;
  7137. function GetKValue(cmyk: COLORREF): BYTE;
  7138. begin
  7139. Result := BYTE(cmyk);
  7140. end;
  7141. function GetYValue(cmyk: COLORREF): BYTE;
  7142. begin
  7143. Result := BYTE(cmyk shr 8);
  7144. end;
  7145. function GetMValue(cmyk: COLORREF): BYTE;
  7146. begin
  7147. Result := BYTE(cmyk shr 16);
  7148. end;
  7149. function GetCValue(cmyk: COLORREF): BYTE;
  7150. begin
  7151. Result := BYTE(cmyk shr 24);
  7152. end;
  7153. function CMYK(c, m, y, k: BYTE): COLORREF;
  7154. begin
  7155. Result := COLORREF(k or (y shl 8) or (m shl 16) or (c shl 24));
  7156. end;
  7157. function MAKEPOINTS(l: DWORD): POINTS;
  7158. begin
  7159. Result.x := LOWORD(l);
  7160. Result.y := HIWORD(l);
  7161. end;
  7162. function RGB(r, g, b: BYTE): COLORREF;
  7163. begin
  7164. Result := COLORREF(r or (g shl 8) or (b shl 16));
  7165. end;
  7166. function PALETTERGB(r, g, b: BYTE): COLORREF;
  7167. begin
  7168. Result := $02000000 or RGB(r, g, b);
  7169. end;
  7170. function PALETTEINDEX(i: WORD): COLORREF;
  7171. begin
  7172. Result := COLORREF($01000000 or DWORD(i));
  7173. end;
  7174. function GetRValue(rgb: COLORREF): BYTE;
  7175. begin
  7176. Result := BYTE(RGB);
  7177. end;
  7178. function GetGValue(rgb: COLORREF): BYTE;
  7179. begin
  7180. Result := BYTE(rgb shr 8);
  7181. end;
  7182. function GetBValue(rgb: COLORREF): BYTE;
  7183. begin
  7184. Result := BYTE(rgb shr 16);
  7185. end;
  7186. {$IFDEF DYNAMIC_LINK}
  7187. var
  7188. _AddFontResourceA: Pointer;
  7189. function AddFontResourceA;
  7190. begin
  7191. GetProcedureAddress(_AddFontResourceA, gdi32, 'AddFontResourceA');
  7192. asm
  7193. MOV ESP, EBP
  7194. POP EBP
  7195. JMP [_AddFontResourceA]
  7196. end;
  7197. end;
  7198. var
  7199. _AddFontResourceW: Pointer;
  7200. function AddFontResourceW;
  7201. begin
  7202. GetProcedureAddress(_AddFontResourceW, gdi32, 'AddFontResourceW');
  7203. asm
  7204. MOV ESP, EBP
  7205. POP EBP
  7206. JMP [_AddFontResourceW]
  7207. end;
  7208. end;
  7209. var
  7210. _AddFontResource: Pointer;
  7211. function AddFontResource;
  7212. begin
  7213. GetProcedureAddress(_AddFontResource, gdi32, 'AddFontResource' + AWSuffix);
  7214. asm
  7215. MOV ESP, EBP
  7216. POP EBP
  7217. JMP [_AddFontResource]
  7218. end;
  7219. end;
  7220. var
  7221. _AnimatePalette: Pointer;
  7222. function AnimatePalette;
  7223. begin
  7224. GetProcedureAddress(_AnimatePalette, gdi32, 'AnimatePalette');
  7225. asm
  7226. MOV ESP, EBP
  7227. POP EBP
  7228. JMP [_AnimatePalette]
  7229. end;
  7230. end;
  7231. var
  7232. _Arc: Pointer;
  7233. function Arc;
  7234. begin
  7235. GetProcedureAddress(_Arc, gdi32, 'Arc');
  7236. asm
  7237. MOV ESP, EBP
  7238. POP EBP
  7239. JMP [_Arc]
  7240. end;
  7241. end;
  7242. var
  7243. _BitBlt: Pointer;
  7244. function BitBlt;
  7245. begin
  7246. GetProcedureAddress(_BitBlt, gdi32, 'BitBlt');
  7247. asm
  7248. MOV ESP, EBP
  7249. POP EBP
  7250. JMP [_BitBlt]
  7251. end;
  7252. end;
  7253. var
  7254. _CancelDC: Pointer;
  7255. function CancelDC;
  7256. begin
  7257. GetProcedureAddress(_CancelDC, gdi32, 'CancelDC');
  7258. asm
  7259. MOV ESP, EBP
  7260. POP EBP
  7261. JMP [_CancelDC]
  7262. end;
  7263. end;
  7264. var
  7265. _Chord: Pointer;
  7266. function Chord;
  7267. begin
  7268. GetProcedureAddress(_Chord, gdi32, 'Chord');
  7269. asm
  7270. MOV ESP, EBP
  7271. POP EBP
  7272. JMP [_Chord]
  7273. end;
  7274. end;
  7275. var
  7276. _ChoosePixelFormat: Pointer;
  7277. function ChoosePixelFormat;
  7278. begin
  7279. GetProcedureAddress(_ChoosePixelFormat, gdi32, 'ChoosePixelFormat');
  7280. asm
  7281. MOV ESP, EBP
  7282. POP EBP
  7283. JMP [_ChoosePixelFormat]
  7284. end;
  7285. end;
  7286. var
  7287. _CloseMetaFile: Pointer;
  7288. function CloseMetaFile;
  7289. begin
  7290. GetProcedureAddress(_CloseMetaFile, gdi32, 'CloseMetaFile');
  7291. asm
  7292. MOV ESP, EBP
  7293. POP EBP
  7294. JMP [_CloseMetaFile]
  7295. end;
  7296. end;
  7297. var
  7298. _CombineRgn: Pointer;
  7299. function CombineRgn;
  7300. begin
  7301. GetProcedureAddress(_CombineRgn, gdi32, 'CombineRgn');
  7302. asm
  7303. MOV ESP, EBP
  7304. POP EBP
  7305. JMP [_CombineRgn]
  7306. end;
  7307. end;
  7308. var
  7309. _CopyMetaFileA: Pointer;
  7310. function CopyMetaFileA;
  7311. begin
  7312. GetProcedureAddress(_CopyMetaFileA, gdi32, 'CopyMetaFileA');
  7313. asm
  7314. MOV ESP, EBP
  7315. POP EBP
  7316. JMP [_CopyMetaFileA]
  7317. end;
  7318. end;
  7319. var
  7320. _CopyMetaFileW: Pointer;
  7321. function CopyMetaFileW;
  7322. begin
  7323. GetProcedureAddress(_CopyMetaFileW, gdi32, 'CopyMetaFileW');
  7324. asm
  7325. MOV ESP, EBP
  7326. POP EBP
  7327. JMP [_CopyMetaFileW]
  7328. end;
  7329. end;
  7330. var
  7331. _CopyMetaFile: Pointer;
  7332. function CopyMetaFile;
  7333. begin
  7334. GetProcedureAddress(_CopyMetaFile, gdi32, 'CopyMetaFile' + AWSuffix);
  7335. asm
  7336. MOV ESP, EBP
  7337. POP EBP
  7338. JMP [_CopyMetaFile]
  7339. end;
  7340. end;
  7341. var
  7342. _CreateBitmap: Pointer;
  7343. function CreateBitmap;
  7344. begin
  7345. GetProcedureAddress(_CreateBitmap, gdi32, 'CreateBitmap');
  7346. asm
  7347. MOV ESP, EBP
  7348. POP EBP
  7349. JMP [_CreateBitmap]
  7350. end;
  7351. end;
  7352. var
  7353. _CreateBitmapIndirect: Pointer;
  7354. function CreateBitmapIndirect;
  7355. begin
  7356. GetProcedureAddress(_CreateBitmapIndirect, gdi32, 'CreateBitmapIndirect');
  7357. asm
  7358. MOV ESP, EBP
  7359. POP EBP
  7360. JMP [_CreateBitmapIndirect]
  7361. end;
  7362. end;
  7363. var
  7364. _CreateBrushIndirect: Pointer;
  7365. function CreateBrushIndirect;
  7366. begin
  7367. GetProcedureAddress(_CreateBrushIndirect, gdi32, 'CreateBrushIndirect');
  7368. asm
  7369. MOV ESP, EBP
  7370. POP EBP
  7371. JMP [_CreateBrushIndirect]
  7372. end;
  7373. end;
  7374. var
  7375. _CreateCompatibleBitmap: Pointer;
  7376. function CreateCompatibleBitmap;
  7377. begin
  7378. GetProcedureAddress(_CreateCompatibleBitmap, gdi32, 'CreateCompatibleBitmap');
  7379. asm
  7380. MOV ESP, EBP
  7381. POP EBP
  7382. JMP [_CreateCompatibleBitmap]
  7383. end;
  7384. end;
  7385. var
  7386. _CreateDiscardableBitmap: Pointer;
  7387. function CreateDiscardableBitmap;
  7388. begin
  7389. GetProcedureAddress(_CreateDiscardableBitmap, gdi32, 'CreateDiscardableBitmap');
  7390. asm
  7391. MOV ESP, EBP
  7392. POP EBP
  7393. JMP [_CreateDiscardableBitmap]
  7394. end;
  7395. end;
  7396. var
  7397. _CreateCompatibleDC: Pointer;
  7398. function CreateCompatibleDC;
  7399. begin
  7400. GetProcedureAddress(_CreateCompatibleDC, gdi32, 'CreateCompatibleDC');
  7401. asm
  7402. MOV ESP, EBP
  7403. POP EBP
  7404. JMP [_CreateCompatibleDC]
  7405. end;
  7406. end;
  7407. var
  7408. _CreateDCA: Pointer;
  7409. function CreateDCA;
  7410. begin
  7411. GetProcedureAddress(_CreateDCA, gdi32, 'CreateDCA');
  7412. asm
  7413. MOV ESP, EBP
  7414. POP EBP
  7415. JMP [_CreateDCA]
  7416. end;
  7417. end;
  7418. var
  7419. _CreateDCW: Pointer;
  7420. function CreateDCW;
  7421. begin
  7422. GetProcedureAddress(_CreateDCW, gdi32, 'CreateDCW');
  7423. asm
  7424. MOV ESP, EBP
  7425. POP EBP
  7426. JMP [_CreateDCW]
  7427. end;
  7428. end;
  7429. var
  7430. _CreateDC: Pointer;
  7431. function CreateDC;
  7432. begin
  7433. GetProcedureAddress(_CreateDC, gdi32, 'CreateDC' + AWSuffix);
  7434. asm
  7435. MOV ESP, EBP
  7436. POP EBP
  7437. JMP [_CreateDC]
  7438. end;
  7439. end;
  7440. var
  7441. _CreateDIBitmap: Pointer;
  7442. function CreateDIBitmap;
  7443. begin
  7444. GetProcedureAddress(_CreateDIBitmap, gdi32, 'CreateDIBitmap');
  7445. asm
  7446. MOV ESP, EBP
  7447. POP EBP
  7448. JMP [_CreateDIBitmap]
  7449. end;
  7450. end;
  7451. var
  7452. _CreateDIBPatternBrush: Pointer;
  7453. function CreateDIBPatternBrush;
  7454. begin
  7455. GetProcedureAddress(_CreateDIBPatternBrush, gdi32, 'CreateDIBPatternBrush');
  7456. asm
  7457. MOV ESP, EBP
  7458. POP EBP
  7459. JMP [_CreateDIBPatternBrush]
  7460. end;
  7461. end;
  7462. var
  7463. _CreateDIBPatternBrushPt: Pointer;
  7464. function CreateDIBPatternBrushPt;
  7465. begin
  7466. GetProcedureAddress(_CreateDIBPatternBrushPt, gdi32, 'CreateDIBPatternBrushPt');
  7467. asm
  7468. MOV ESP, EBP
  7469. POP EBP
  7470. JMP [_CreateDIBPatternBrushPt]
  7471. end;
  7472. end;
  7473. var
  7474. _CreateEllipticRgn: Pointer;
  7475. function CreateEllipticRgn;
  7476. begin
  7477. GetProcedureAddress(_CreateEllipticRgn, gdi32, 'CreateEllipticRgn');
  7478. asm
  7479. MOV ESP, EBP
  7480. POP EBP
  7481. JMP [_CreateEllipticRgn]
  7482. end;
  7483. end;
  7484. var
  7485. _CreateEllipticRgnIndirect: Pointer;
  7486. function CreateEllipticRgnIndirect;
  7487. begin
  7488. GetProcedureAddress(_CreateEllipticRgnIndirect, gdi32, 'CreateEllipticRgnIndirect');
  7489. asm
  7490. MOV ESP, EBP
  7491. POP EBP
  7492. JMP [_CreateEllipticRgnIndirect]
  7493. end;
  7494. end;
  7495. var
  7496. _CreateFontIndirectA: Pointer;
  7497. function CreateFontIndirectA;
  7498. begin
  7499. GetProcedureAddress(_CreateFontIndirectA, gdi32, 'CreateFontIndirectA');
  7500. asm
  7501. MOV ESP, EBP
  7502. POP EBP
  7503. JMP [_CreateFontIndirectA]
  7504. end;
  7505. end;
  7506. var
  7507. _CreateFontIndirectW: Pointer;
  7508. function CreateFontIndirectW;
  7509. begin
  7510. GetProcedureAddress(_CreateFontIndirectW, gdi32, 'CreateFontIndirectW');
  7511. asm
  7512. MOV ESP, EBP
  7513. POP EBP
  7514. JMP [_CreateFontIndirectW]
  7515. end;
  7516. end;
  7517. var
  7518. _CreateFontIndirect: Pointer;
  7519. function CreateFontIndirect;
  7520. begin
  7521. GetProcedureAddress(_CreateFontIndirect, gdi32, 'CreateFontIndirect' + AWSuffix);
  7522. asm
  7523. MOV ESP, EBP
  7524. POP EBP
  7525. JMP [_CreateFontIndirect]
  7526. end;
  7527. end;
  7528. var
  7529. _CreateFontA: Pointer;
  7530. function CreateFontA;
  7531. begin
  7532. GetProcedureAddress(_CreateFontA, gdi32, 'CreateFontA');
  7533. asm
  7534. MOV ESP, EBP
  7535. POP EBP
  7536. JMP [_CreateFontA]
  7537. end;
  7538. end;
  7539. var
  7540. _CreateFontW: Pointer;
  7541. function CreateFontW;
  7542. begin
  7543. GetProcedureAddress(_CreateFontW, gdi32, 'CreateFontW');
  7544. asm
  7545. MOV ESP, EBP
  7546. POP EBP
  7547. JMP [_CreateFontW]
  7548. end;
  7549. end;
  7550. var
  7551. _CreateFont: Pointer;
  7552. function CreateFont;
  7553. begin
  7554. GetProcedureAddress(_CreateFont, gdi32, 'CreateFont' + AWSuffix);
  7555. asm
  7556. MOV ESP, EBP
  7557. POP EBP
  7558. JMP [_CreateFont]
  7559. end;
  7560. end;
  7561. var
  7562. _CreateHatchBrush: Pointer;
  7563. function CreateHatchBrush;
  7564. begin
  7565. GetProcedureAddress(_CreateHatchBrush, gdi32, 'CreateHatchBrush');
  7566. asm
  7567. MOV ESP, EBP
  7568. POP EBP
  7569. JMP [_CreateHatchBrush]
  7570. end;
  7571. end;
  7572. var
  7573. _CreateICA: Pointer;
  7574. function CreateICA;
  7575. begin
  7576. GetProcedureAddress(_CreateICA, gdi32, 'CreateICA');
  7577. asm
  7578. MOV ESP, EBP
  7579. POP EBP
  7580. JMP [_CreateICA]
  7581. end;
  7582. end;
  7583. var
  7584. _CreateICW: Pointer;
  7585. function CreateICW;
  7586. begin
  7587. GetProcedureAddress(_CreateICW, gdi32, 'CreateICW');
  7588. asm
  7589. MOV ESP, EBP
  7590. POP EBP
  7591. JMP [_CreateICW]
  7592. end;
  7593. end;
  7594. var
  7595. _CreateIC: Pointer;
  7596. function CreateIC;
  7597. begin
  7598. GetProcedureAddress(_CreateIC, gdi32, 'CreateIC' + AWSuffix);
  7599. asm
  7600. MOV ESP, EBP
  7601. POP EBP
  7602. JMP [_CreateIC]
  7603. end;
  7604. end;
  7605. var
  7606. _CreateMetaFileA: Pointer;
  7607. function CreateMetaFileA;
  7608. begin
  7609. GetProcedureAddress(_CreateMetaFileA, gdi32, 'CreateMetaFileA');
  7610. asm
  7611. MOV ESP, EBP
  7612. POP EBP
  7613. JMP [_CreateMetaFileA]
  7614. end;
  7615. end;
  7616. var
  7617. _CreateMetaFileW: Pointer;
  7618. function CreateMetaFileW;
  7619. begin
  7620. GetProcedureAddress(_CreateMetaFileW, gdi32, 'CreateMetaFileW');
  7621. asm
  7622. MOV ESP, EBP
  7623. POP EBP
  7624. JMP [_CreateMetaFileW]
  7625. end;
  7626. end;
  7627. var
  7628. _CreateMetaFile: Pointer;
  7629. function CreateMetaFile;
  7630. begin
  7631. GetProcedureAddress(_CreateMetaFile, gdi32, 'CreateMetaFile' + AWSuffix);
  7632. asm
  7633. MOV ESP, EBP
  7634. POP EBP
  7635. JMP [_CreateMetaFile]
  7636. end;
  7637. end;
  7638. var
  7639. _CreatePalette: Pointer;
  7640. function CreatePalette;
  7641. begin
  7642. GetProcedureAddress(_CreatePalette, gdi32, 'CreatePalette');
  7643. asm
  7644. MOV ESP, EBP
  7645. POP EBP
  7646. JMP [_CreatePalette]
  7647. end;
  7648. end;
  7649. var
  7650. _CreatePen: Pointer;
  7651. function CreatePen;
  7652. begin
  7653. GetProcedureAddress(_CreatePen, gdi32, 'CreatePen');
  7654. asm
  7655. MOV ESP, EBP
  7656. POP EBP
  7657. JMP [_CreatePen]
  7658. end;
  7659. end;
  7660. var
  7661. _CreatePenIndirect: Pointer;
  7662. function CreatePenIndirect;
  7663. begin
  7664. GetProcedureAddress(_CreatePenIndirect, gdi32, 'CreatePenIndirect');
  7665. asm
  7666. MOV ESP, EBP
  7667. POP EBP
  7668. JMP [_CreatePenIndirect]
  7669. end;
  7670. end;
  7671. var
  7672. _CreatePolyPolygonRgn: Pointer;
  7673. function CreatePolyPolygonRgn;
  7674. begin
  7675. GetProcedureAddress(_CreatePolyPolygonRgn, gdi32, 'CreatePolyPolygonRgn');
  7676. asm
  7677. MOV ESP, EBP
  7678. POP EBP
  7679. JMP [_CreatePolyPolygonRgn]
  7680. end;
  7681. end;
  7682. var
  7683. _CreatePatternBrush: Pointer;
  7684. function CreatePatternBrush;
  7685. begin
  7686. GetProcedureAddress(_CreatePatternBrush, gdi32, 'CreatePatternBrush');
  7687. asm
  7688. MOV ESP, EBP
  7689. POP EBP
  7690. JMP [_CreatePatternBrush]
  7691. end;
  7692. end;
  7693. var
  7694. _CreateRectRgn: Pointer;
  7695. function CreateRectRgn;
  7696. begin
  7697. GetProcedureAddress(_CreateRectRgn, gdi32, 'CreateRectRgn');
  7698. asm
  7699. MOV ESP, EBP
  7700. POP EBP
  7701. JMP [_CreateRectRgn]
  7702. end;
  7703. end;
  7704. var
  7705. _CreateRectRgnIndirect: Pointer;
  7706. function CreateRectRgnIndirect;
  7707. begin
  7708. GetProcedureAddress(_CreateRectRgnIndirect, gdi32, 'CreateRectRgnIndirect');
  7709. asm
  7710. MOV ESP, EBP
  7711. POP EBP
  7712. JMP [_CreateRectRgnIndirect]
  7713. end;
  7714. end;
  7715. var
  7716. _CreateRoundRectRgn: Pointer;
  7717. function CreateRoundRectRgn;
  7718. begin
  7719. GetProcedureAddress(_CreateRoundRectRgn, gdi32, 'CreateRoundRectRgn');
  7720. asm
  7721. MOV ESP, EBP
  7722. POP EBP
  7723. JMP [_CreateRoundRectRgn]
  7724. end;
  7725. end;
  7726. var
  7727. _CreateScalableFontResourceA: Pointer;
  7728. function CreateScalableFontResourceA;
  7729. begin
  7730. GetProcedureAddress(_CreateScalableFontResourceA, gdi32, 'CreateScalableFontResourceA');
  7731. asm
  7732. MOV ESP, EBP
  7733. POP EBP
  7734. JMP [_CreateScalableFontResourceA]
  7735. end;
  7736. end;
  7737. var
  7738. _CreateScalableFontResourceW: Pointer;
  7739. function CreateScalableFontResourceW;
  7740. begin
  7741. GetProcedureAddress(_CreateScalableFontResourceW, gdi32, 'CreateScalableFontResourceW');
  7742. asm
  7743. MOV ESP, EBP
  7744. POP EBP
  7745. JMP [_CreateScalableFontResourceW]
  7746. end;
  7747. end;
  7748. var
  7749. _CreateScalableFontResource: Pointer;
  7750. function CreateScalableFontResource;
  7751. begin
  7752. GetProcedureAddress(_CreateScalableFontResource, gdi32, 'CreateScalableFontResource' + AWSuffix);
  7753. asm
  7754. MOV ESP, EBP
  7755. POP EBP
  7756. JMP [_CreateScalableFontResource]
  7757. end;
  7758. end;
  7759. var
  7760. _CreateSolidBrush: Pointer;
  7761. function CreateSolidBrush;
  7762. begin
  7763. GetProcedureAddress(_CreateSolidBrush, gdi32, 'CreateSolidBrush');
  7764. asm
  7765. MOV ESP, EBP
  7766. POP EBP
  7767. JMP [_CreateSolidBrush]
  7768. end;
  7769. end;
  7770. var
  7771. _DeleteDC: Pointer;
  7772. function DeleteDC;
  7773. begin
  7774. GetProcedureAddress(_DeleteDC, gdi32, 'DeleteDC');
  7775. asm
  7776. MOV ESP, EBP
  7777. POP EBP
  7778. JMP [_DeleteDC]
  7779. end;
  7780. end;
  7781. var
  7782. _DeleteMetaFile: Pointer;
  7783. function DeleteMetaFile;
  7784. begin
  7785. GetProcedureAddress(_DeleteMetaFile, gdi32, 'DeleteMetaFile');
  7786. asm
  7787. MOV ESP, EBP
  7788. POP EBP
  7789. JMP [_DeleteMetaFile]
  7790. end;
  7791. end;
  7792. var
  7793. _DeleteObject: Pointer;
  7794. function DeleteObject;
  7795. begin
  7796. GetProcedureAddress(_DeleteObject, gdi32, 'DeleteObject');
  7797. asm
  7798. MOV ESP, EBP
  7799. POP EBP
  7800. JMP [_DeleteObject]
  7801. end;
  7802. end;
  7803. var
  7804. _DescribePixelFormat: Pointer;
  7805. function DescribePixelFormat;
  7806. begin
  7807. GetProcedureAddress(_DescribePixelFormat, gdi32, 'DescribePixelFormat');
  7808. asm
  7809. MOV ESP, EBP
  7810. POP EBP
  7811. JMP [_DescribePixelFormat]
  7812. end;
  7813. end;
  7814. var
  7815. _DeviceCapabilitiesA: Pointer;
  7816. function DeviceCapabilitiesA;
  7817. begin
  7818. GetProcedureAddress(_DeviceCapabilitiesA, winspool32, 'DeviceCapabilitiesA');
  7819. asm
  7820. MOV ESP, EBP
  7821. POP EBP
  7822. JMP [_DeviceCapabilitiesA]
  7823. end;
  7824. end;
  7825. var
  7826. _DeviceCapabilitiesW: Pointer;
  7827. function DeviceCapabilitiesW;
  7828. begin
  7829. GetProcedureAddress(_DeviceCapabilitiesW, winspool32, 'DeviceCapabilitiesW');
  7830. asm
  7831. MOV ESP, EBP
  7832. POP EBP
  7833. JMP [_DeviceCapabilitiesW]
  7834. end;
  7835. end;
  7836. var
  7837. _DeviceCapabilities: Pointer;
  7838. function DeviceCapabilities;
  7839. begin
  7840. GetProcedureAddress(_DeviceCapabilities, winspool32, 'DeviceCapabilities' + AWSuffix);
  7841. asm
  7842. MOV ESP, EBP
  7843. POP EBP
  7844. JMP [_DeviceCapabilities]
  7845. end;
  7846. end;
  7847. var
  7848. _DrawEscape: Pointer;
  7849. function DrawEscape;
  7850. begin
  7851. GetProcedureAddress(_DrawEscape, gdi32, 'DrawEscape');
  7852. asm
  7853. MOV ESP, EBP
  7854. POP EBP
  7855. JMP [_DrawEscape]
  7856. end;
  7857. end;
  7858. var
  7859. _Ellipse: Pointer;
  7860. function Ellipse;
  7861. begin
  7862. GetProcedureAddress(_Ellipse, gdi32, 'Ellipse');
  7863. asm
  7864. MOV ESP, EBP
  7865. POP EBP
  7866. JMP [_Ellipse]
  7867. end;
  7868. end;
  7869. var
  7870. _EnumFontFamiliesExA: Pointer;
  7871. function EnumFontFamiliesExA;
  7872. begin
  7873. GetProcedureAddress(_EnumFontFamiliesExA, gdi32, 'EnumFontFamiliesExA');
  7874. asm
  7875. MOV ESP, EBP
  7876. POP EBP
  7877. JMP [_EnumFontFamiliesExA]
  7878. end;
  7879. end;
  7880. var
  7881. _EnumFontFamiliesExW: Pointer;
  7882. function EnumFontFamiliesExW;
  7883. begin
  7884. GetProcedureAddress(_EnumFontFamiliesExW, gdi32, 'EnumFontFamiliesExW');
  7885. asm
  7886. MOV ESP, EBP
  7887. POP EBP
  7888. JMP [_EnumFontFamiliesExW]
  7889. end;
  7890. end;
  7891. var
  7892. _EnumFontFamiliesEx: Pointer;
  7893. function EnumFontFamiliesEx;
  7894. begin
  7895. GetProcedureAddress(_EnumFontFamiliesEx, gdi32, 'EnumFontFamiliesEx' + AWSuffix);
  7896. asm
  7897. MOV ESP, EBP
  7898. POP EBP
  7899. JMP [_EnumFontFamiliesEx]
  7900. end;
  7901. end;
  7902. var
  7903. _EnumFontFamiliesA: Pointer;
  7904. function EnumFontFamiliesA;
  7905. begin
  7906. GetProcedureAddress(_EnumFontFamiliesA, gdi32, 'EnumFontFamiliesA');
  7907. asm
  7908. MOV ESP, EBP
  7909. POP EBP
  7910. JMP [_EnumFontFamiliesA]
  7911. end;
  7912. end;
  7913. var
  7914. _EnumFontFamiliesW: Pointer;
  7915. function EnumFontFamiliesW;
  7916. begin
  7917. GetProcedureAddress(_EnumFontFamiliesW, gdi32, 'EnumFontFamiliesW');
  7918. asm
  7919. MOV ESP, EBP
  7920. POP EBP
  7921. JMP [_EnumFontFamiliesW]
  7922. end;
  7923. end;
  7924. var
  7925. _EnumFontFamilies: Pointer;
  7926. function EnumFontFamilies;
  7927. begin
  7928. GetProcedureAddress(_EnumFontFamilies, gdi32, 'EnumFontFamilies' + AWSuffix);
  7929. asm
  7930. MOV ESP, EBP
  7931. POP EBP
  7932. JMP [_EnumFontFamilies]
  7933. end;
  7934. end;
  7935. var
  7936. _EnumFontsA: Pointer;
  7937. function EnumFontsA;
  7938. begin
  7939. GetProcedureAddress(_EnumFontsA, gdi32, 'EnumFontsA');
  7940. asm
  7941. MOV ESP, EBP
  7942. POP EBP
  7943. JMP [_EnumFontsA]
  7944. end;
  7945. end;
  7946. var
  7947. _EnumFontsW: Pointer;
  7948. function EnumFontsW;
  7949. begin
  7950. GetProcedureAddress(_EnumFontsW, gdi32, 'EnumFontsW');
  7951. asm
  7952. MOV ESP, EBP
  7953. POP EBP
  7954. JMP [_EnumFontsW]
  7955. end;
  7956. end;
  7957. var
  7958. _EnumFonts: Pointer;
  7959. function EnumFonts;
  7960. begin
  7961. GetProcedureAddress(_EnumFonts, gdi32, 'EnumFonts' + AWSuffix);
  7962. asm
  7963. MOV ESP, EBP
  7964. POP EBP
  7965. JMP [_EnumFonts]
  7966. end;
  7967. end;
  7968. var
  7969. _EnumObjects: Pointer;
  7970. function EnumObjects;
  7971. begin
  7972. GetProcedureAddress(_EnumObjects, gdi32, 'EnumObjects');
  7973. asm
  7974. MOV ESP, EBP
  7975. POP EBP
  7976. JMP [_EnumObjects]
  7977. end;
  7978. end;
  7979. var
  7980. _EqualRgn: Pointer;
  7981. function EqualRgn;
  7982. begin
  7983. GetProcedureAddress(_EqualRgn, gdi32, 'EqualRgn');
  7984. asm
  7985. MOV ESP, EBP
  7986. POP EBP
  7987. JMP [_EqualRgn]
  7988. end;
  7989. end;
  7990. var
  7991. _Escape: Pointer;
  7992. function Escape;
  7993. begin
  7994. GetProcedureAddress(_Escape, gdi32, 'Escape');
  7995. asm
  7996. MOV ESP, EBP
  7997. POP EBP
  7998. JMP [_Escape]
  7999. end;
  8000. end;
  8001. var
  8002. _ExtEscape: Pointer;
  8003. function ExtEscape;
  8004. begin
  8005. GetProcedureAddress(_ExtEscape, gdi32, 'ExtEscape');
  8006. asm
  8007. MOV ESP, EBP
  8008. POP EBP
  8009. JMP [_ExtEscape]
  8010. end;
  8011. end;
  8012. var
  8013. _ExcludeClipRect: Pointer;
  8014. function ExcludeClipRect;
  8015. begin
  8016. GetProcedureAddress(_ExcludeClipRect, gdi32, 'ExcludeClipRect');
  8017. asm
  8018. MOV ESP, EBP
  8019. POP EBP
  8020. JMP [_ExcludeClipRect]
  8021. end;
  8022. end;
  8023. var
  8024. _ExtCreateRegion: Pointer;
  8025. function ExtCreateRegion;
  8026. begin
  8027. GetProcedureAddress(_ExtCreateRegion, gdi32, 'ExtCreateRegion');
  8028. asm
  8029. MOV ESP, EBP
  8030. POP EBP
  8031. JMP [_ExtCreateRegion]
  8032. end;
  8033. end;
  8034. var
  8035. _ExtFloodFill: Pointer;
  8036. function ExtFloodFill;
  8037. begin
  8038. GetProcedureAddress(_ExtFloodFill, gdi32, 'ExtFloodFill');
  8039. asm
  8040. MOV ESP, EBP
  8041. POP EBP
  8042. JMP [_ExtFloodFill]
  8043. end;
  8044. end;
  8045. var
  8046. _FillRgn: Pointer;
  8047. function FillRgn;
  8048. begin
  8049. GetProcedureAddress(_FillRgn, gdi32, 'FillRgn');
  8050. asm
  8051. MOV ESP, EBP
  8052. POP EBP
  8053. JMP [_FillRgn]
  8054. end;
  8055. end;
  8056. var
  8057. _FloodFill: Pointer;
  8058. function FloodFill;
  8059. begin
  8060. GetProcedureAddress(_FloodFill, gdi32, 'FloodFill');
  8061. asm
  8062. MOV ESP, EBP
  8063. POP EBP
  8064. JMP [_FloodFill]
  8065. end;
  8066. end;
  8067. var
  8068. _FrameRgn: Pointer;
  8069. function FrameRgn;
  8070. begin
  8071. GetProcedureAddress(_FrameRgn, gdi32, 'FrameRgn');
  8072. asm
  8073. MOV ESP, EBP
  8074. POP EBP
  8075. JMP [_FrameRgn]
  8076. end;
  8077. end;
  8078. var
  8079. _GetROP2: Pointer;
  8080. function GetROP2;
  8081. begin
  8082. GetProcedureAddress(_GetROP2, gdi32, 'GetROP2');
  8083. asm
  8084. MOV ESP, EBP
  8085. POP EBP
  8086. JMP [_GetROP2]
  8087. end;
  8088. end;
  8089. var
  8090. _GetAspectRatioFilterEx: Pointer;
  8091. function GetAspectRatioFilterEx;
  8092. begin
  8093. GetProcedureAddress(_GetAspectRatioFilterEx, gdi32, 'GetAspectRatioFilterEx');
  8094. asm
  8095. MOV ESP, EBP
  8096. POP EBP
  8097. JMP [_GetAspectRatioFilterEx]
  8098. end;
  8099. end;
  8100. var
  8101. _GetBkColor: Pointer;
  8102. function GetBkColor;
  8103. begin
  8104. GetProcedureAddress(_GetBkColor, gdi32, 'GetBkColor');
  8105. asm
  8106. MOV ESP, EBP
  8107. POP EBP
  8108. JMP [_GetBkColor]
  8109. end;
  8110. end;
  8111. var
  8112. _GetDCBrushColor: Pointer;
  8113. function GetDCBrushColor;
  8114. begin
  8115. GetProcedureAddress(_GetDCBrushColor, gdi32, 'GetDCBrushColor');
  8116. asm
  8117. MOV ESP, EBP
  8118. POP EBP
  8119. JMP [_GetDCBrushColor]
  8120. end;
  8121. end;
  8122. var
  8123. _GetDCPenColor: Pointer;
  8124. function GetDCPenColor;
  8125. begin
  8126. GetProcedureAddress(_GetDCPenColor, gdi32, 'GetDCPenColor');
  8127. asm
  8128. MOV ESP, EBP
  8129. POP EBP
  8130. JMP [_GetDCPenColor]
  8131. end;
  8132. end;
  8133. var
  8134. _GetBkMode: Pointer;
  8135. function GetBkMode;
  8136. begin
  8137. GetProcedureAddress(_GetBkMode, gdi32, 'GetBkMode');
  8138. asm
  8139. MOV ESP, EBP
  8140. POP EBP
  8141. JMP [_GetBkMode]
  8142. end;
  8143. end;
  8144. var
  8145. _GetBitmapBits: Pointer;
  8146. function GetBitmapBits;
  8147. begin
  8148. GetProcedureAddress(_GetBitmapBits, gdi32, 'GetBitmapBits');
  8149. asm
  8150. MOV ESP, EBP
  8151. POP EBP
  8152. JMP [_GetBitmapBits]
  8153. end;
  8154. end;
  8155. var
  8156. _GetBitmapDimensionEx: Pointer;
  8157. function GetBitmapDimensionEx;
  8158. begin
  8159. GetProcedureAddress(_GetBitmapDimensionEx, gdi32, 'GetBitmapDimensionEx');
  8160. asm
  8161. MOV ESP, EBP
  8162. POP EBP
  8163. JMP [_GetBitmapDimensionEx]
  8164. end;
  8165. end;
  8166. var
  8167. _GetBoundsRect: Pointer;
  8168. function GetBoundsRect;
  8169. begin
  8170. GetProcedureAddress(_GetBoundsRect, gdi32, 'GetBoundsRect');
  8171. asm
  8172. MOV ESP, EBP
  8173. POP EBP
  8174. JMP [_GetBoundsRect]
  8175. end;
  8176. end;
  8177. var
  8178. _GetBrushOrgEx: Pointer;
  8179. function GetBrushOrgEx;
  8180. begin
  8181. GetProcedureAddress(_GetBrushOrgEx, gdi32, 'GetBrushOrgEx');
  8182. asm
  8183. MOV ESP, EBP
  8184. POP EBP
  8185. JMP [_GetBrushOrgEx]
  8186. end;
  8187. end;
  8188. var
  8189. _GetCharWidthA: Pointer;
  8190. function GetCharWidthA;
  8191. begin
  8192. GetProcedureAddress(_GetCharWidthA, gdi32, 'GetCharWidthA');
  8193. asm
  8194. MOV ESP, EBP
  8195. POP EBP
  8196. JMP [_GetCharWidthA]
  8197. end;
  8198. end;
  8199. var
  8200. _GetCharWidthW: Pointer;
  8201. function GetCharWidthW;
  8202. begin
  8203. GetProcedureAddress(_GetCharWidthW, gdi32, 'GetCharWidthW');
  8204. asm
  8205. MOV ESP, EBP
  8206. POP EBP
  8207. JMP [_GetCharWidthW]
  8208. end;
  8209. end;
  8210. var
  8211. _GetCharWidth: Pointer;
  8212. function GetCharWidth;
  8213. begin
  8214. GetProcedureAddress(_GetCharWidth, gdi32, 'GetCharWidth' + AWSuffix);
  8215. asm
  8216. MOV ESP, EBP
  8217. POP EBP
  8218. JMP [_GetCharWidth]
  8219. end;
  8220. end;
  8221. var
  8222. _GetCharWidth32A: Pointer;
  8223. function GetCharWidth32A;
  8224. begin
  8225. GetProcedureAddress(_GetCharWidth32A, gdi32, 'GetCharWidth32A');
  8226. asm
  8227. MOV ESP, EBP
  8228. POP EBP
  8229. JMP [_GetCharWidth32A]
  8230. end;
  8231. end;
  8232. var
  8233. _GetCharWidth32W: Pointer;
  8234. function GetCharWidth32W;
  8235. begin
  8236. GetProcedureAddress(_GetCharWidth32W, gdi32, 'GetCharWidth32W');
  8237. asm
  8238. MOV ESP, EBP
  8239. POP EBP
  8240. JMP [_GetCharWidth32W]
  8241. end;
  8242. end;
  8243. var
  8244. _GetCharWidth32: Pointer;
  8245. function GetCharWidth32;
  8246. begin
  8247. GetProcedureAddress(_GetCharWidth32, gdi32, 'GetCharWidth32' + AWSuffix);
  8248. asm
  8249. MOV ESP, EBP
  8250. POP EBP
  8251. JMP [_GetCharWidth32]
  8252. end;
  8253. end;
  8254. var
  8255. _GetCharWidthFloatA: Pointer;
  8256. function GetCharWidthFloatA;
  8257. begin
  8258. GetProcedureAddress(_GetCharWidthFloatA, gdi32, 'GetCharWidthFloatA');
  8259. asm
  8260. MOV ESP, EBP
  8261. POP EBP
  8262. JMP [_GetCharWidthFloatA]
  8263. end;
  8264. end;
  8265. var
  8266. _GetCharWidthFloatW: Pointer;
  8267. function GetCharWidthFloatW;
  8268. begin
  8269. GetProcedureAddress(_GetCharWidthFloatW, gdi32, 'GetCharWidthFloatW');
  8270. asm
  8271. MOV ESP, EBP
  8272. POP EBP
  8273. JMP [_GetCharWidthFloatW]
  8274. end;
  8275. end;
  8276. var
  8277. _GetCharWidthFloat: Pointer;
  8278. function GetCharWidthFloat;
  8279. begin
  8280. GetProcedureAddress(_GetCharWidthFloat, gdi32, 'GetCharWidthFloat' + AWSuffix);
  8281. asm
  8282. MOV ESP, EBP
  8283. POP EBP
  8284. JMP [_GetCharWidthFloat]
  8285. end;
  8286. end;
  8287. var
  8288. _GetCharABCWidthsA: Pointer;
  8289. function GetCharABCWidthsA;
  8290. begin
  8291. GetProcedureAddress(_GetCharABCWidthsA, gdi32, 'GetCharABCWidthsA');
  8292. asm
  8293. MOV ESP, EBP
  8294. POP EBP
  8295. JMP [_GetCharABCWidthsA]
  8296. end;
  8297. end;
  8298. var
  8299. _GetCharABCWidthsW: Pointer;
  8300. function GetCharABCWidthsW;
  8301. begin
  8302. GetProcedureAddress(_GetCharABCWidthsW, gdi32, 'GetCharABCWidthsW');
  8303. asm
  8304. MOV ESP, EBP
  8305. POP EBP
  8306. JMP [_GetCharABCWidthsW]
  8307. end;
  8308. end;
  8309. var
  8310. _GetCharABCWidths: Pointer;
  8311. function GetCharABCWidths;
  8312. begin
  8313. GetProcedureAddress(_GetCharABCWidths, gdi32, 'GetCharABCWidths' + AWSuffix);
  8314. asm
  8315. MOV ESP, EBP
  8316. POP EBP
  8317. JMP [_GetCharABCWidths]
  8318. end;
  8319. end;
  8320. var
  8321. _GetCharABCWidthsFloatA: Pointer;
  8322. function GetCharABCWidthsFloatA;
  8323. begin
  8324. GetProcedureAddress(_GetCharABCWidthsFloatA, gdi32, 'GetCharABCWidthsFloatA');
  8325. asm
  8326. MOV ESP, EBP
  8327. POP EBP
  8328. JMP [_GetCharABCWidthsFloatA]
  8329. end;
  8330. end;
  8331. var
  8332. _GetCharABCWidthsFloatW: Pointer;
  8333. function GetCharABCWidthsFloatW;
  8334. begin
  8335. GetProcedureAddress(_GetCharABCWidthsFloatW, gdi32, 'GetCharABCWidthsFloatW');
  8336. asm
  8337. MOV ESP, EBP
  8338. POP EBP
  8339. JMP [_GetCharABCWidthsFloatW]
  8340. end;
  8341. end;
  8342. var
  8343. _GetCharABCWidthsFloat: Pointer;
  8344. function GetCharABCWidthsFloat;
  8345. begin
  8346. GetProcedureAddress(_GetCharABCWidthsFloat, gdi32, 'GetCharABCWidthsFloat' + AWSuffix);
  8347. asm
  8348. MOV ESP, EBP
  8349. POP EBP
  8350. JMP [_GetCharABCWidthsFloat]
  8351. end;
  8352. end;
  8353. var
  8354. _GetClipBox: Pointer;
  8355. function GetClipBox;
  8356. begin
  8357. GetProcedureAddress(_GetClipBox, gdi32, 'GetClipBox');
  8358. asm
  8359. MOV ESP, EBP
  8360. POP EBP
  8361. JMP [_GetClipBox]
  8362. end;
  8363. end;
  8364. var
  8365. _GetClipRgn: Pointer;
  8366. function GetClipRgn;
  8367. begin
  8368. GetProcedureAddress(_GetClipRgn, gdi32, 'GetClipRgn');
  8369. asm
  8370. MOV ESP, EBP
  8371. POP EBP
  8372. JMP [_GetClipRgn]
  8373. end;
  8374. end;
  8375. var
  8376. _GetMetaRgn: Pointer;
  8377. function GetMetaRgn;
  8378. begin
  8379. GetProcedureAddress(_GetMetaRgn, gdi32, 'GetMetaRgn');
  8380. asm
  8381. MOV ESP, EBP
  8382. POP EBP
  8383. JMP [_GetMetaRgn]
  8384. end;
  8385. end;
  8386. var
  8387. _GetCurrentObject: Pointer;
  8388. function GetCurrentObject;
  8389. begin
  8390. GetProcedureAddress(_GetCurrentObject, gdi32, 'GetCurrentObject');
  8391. asm
  8392. MOV ESP, EBP
  8393. POP EBP
  8394. JMP [_GetCurrentObject]
  8395. end;
  8396. end;
  8397. var
  8398. _GetCurrentPositionEx: Pointer;
  8399. function GetCurrentPositionEx;
  8400. begin
  8401. GetProcedureAddress(_GetCurrentPositionEx, gdi32, 'GetCurrentPositionEx');
  8402. asm
  8403. MOV ESP, EBP
  8404. POP EBP
  8405. JMP [_GetCurrentPositionEx]
  8406. end;
  8407. end;
  8408. var
  8409. _GetDeviceCaps: Pointer;
  8410. function GetDeviceCaps;
  8411. begin
  8412. GetProcedureAddress(_GetDeviceCaps, gdi32, 'GetDeviceCaps');
  8413. asm
  8414. MOV ESP, EBP
  8415. POP EBP
  8416. JMP [_GetDeviceCaps]
  8417. end;
  8418. end;
  8419. var
  8420. _GetDIBits: Pointer;
  8421. function GetDIBits;
  8422. begin
  8423. GetProcedureAddress(_GetDIBits, gdi32, 'GetDIBits');
  8424. asm
  8425. MOV ESP, EBP
  8426. POP EBP
  8427. JMP [_GetDIBits]
  8428. end;
  8429. end;
  8430. var
  8431. _GetFontData: Pointer;
  8432. function GetFontData;
  8433. begin
  8434. GetProcedureAddress(_GetFontData, gdi32, 'GetFontData');
  8435. asm
  8436. MOV ESP, EBP
  8437. POP EBP
  8438. JMP [_GetFontData]
  8439. end;
  8440. end;
  8441. var
  8442. _GetGlyphOutlineA: Pointer;
  8443. function GetGlyphOutlineA;
  8444. begin
  8445. GetProcedureAddress(_GetGlyphOutlineA, gdi32, 'GetGlyphOutlineA');
  8446. asm
  8447. MOV ESP, EBP
  8448. POP EBP
  8449. JMP [_GetGlyphOutlineA]
  8450. end;
  8451. end;
  8452. var
  8453. _GetGlyphOutlineW: Pointer;
  8454. function GetGlyphOutlineW;
  8455. begin
  8456. GetProcedureAddress(_GetGlyphOutlineW, gdi32, 'GetGlyphOutlineW');
  8457. asm
  8458. MOV ESP, EBP
  8459. POP EBP
  8460. JMP [_GetGlyphOutlineW]
  8461. end;
  8462. end;
  8463. var
  8464. _GetGlyphOutline: Pointer;
  8465. function GetGlyphOutline;
  8466. begin
  8467. GetProcedureAddress(_GetGlyphOutline, gdi32, 'GetGlyphOutline' + AWSuffix);
  8468. asm
  8469. MOV ESP, EBP
  8470. POP EBP
  8471. JMP [_GetGlyphOutline]
  8472. end;
  8473. end;
  8474. var
  8475. _GetGraphicsMode: Pointer;
  8476. function GetGraphicsMode;
  8477. begin
  8478. GetProcedureAddress(_GetGraphicsMode, gdi32, 'GetGraphicsMode');
  8479. asm
  8480. MOV ESP, EBP
  8481. POP EBP
  8482. JMP [_GetGraphicsMode]
  8483. end;
  8484. end;
  8485. var
  8486. _GetMapMode: Pointer;
  8487. function GetMapMode;
  8488. begin
  8489. GetProcedureAddress(_GetMapMode, gdi32, 'GetMapMode');
  8490. asm
  8491. MOV ESP, EBP
  8492. POP EBP
  8493. JMP [_GetMapMode]
  8494. end;
  8495. end;
  8496. var
  8497. _GetMetaFileBitsEx: Pointer;
  8498. function GetMetaFileBitsEx;
  8499. begin
  8500. GetProcedureAddress(_GetMetaFileBitsEx, gdi32, 'GetMetaFileBitsEx');
  8501. asm
  8502. MOV ESP, EBP
  8503. POP EBP
  8504. JMP [_GetMetaFileBitsEx]
  8505. end;
  8506. end;
  8507. var
  8508. _GetMetaFileA: Pointer;
  8509. function GetMetaFileA;
  8510. begin
  8511. GetProcedureAddress(_GetMetaFileA, gdi32, 'GetMetaFileA');
  8512. asm
  8513. MOV ESP, EBP
  8514. POP EBP
  8515. JMP [_GetMetaFileA]
  8516. end;
  8517. end;
  8518. var
  8519. _GetMetaFileW: Pointer;
  8520. function GetMetaFileW;
  8521. begin
  8522. GetProcedureAddress(_GetMetaFileW, gdi32, 'GetMetaFileW');
  8523. asm
  8524. MOV ESP, EBP
  8525. POP EBP
  8526. JMP [_GetMetaFileW]
  8527. end;
  8528. end;
  8529. var
  8530. _GetMetaFile: Pointer;
  8531. function GetMetaFile;
  8532. begin
  8533. GetProcedureAddress(_GetMetaFile, gdi32, 'GetMetaFile' + AWSuffix);
  8534. asm
  8535. MOV ESP, EBP
  8536. POP EBP
  8537. JMP [_GetMetaFile]
  8538. end;
  8539. end;
  8540. var
  8541. _GetNearestColor: Pointer;
  8542. function GetNearestColor;
  8543. begin
  8544. GetProcedureAddress(_GetNearestColor, gdi32, 'GetNearestColor');
  8545. asm
  8546. MOV ESP, EBP
  8547. POP EBP
  8548. JMP [_GetNearestColor]
  8549. end;
  8550. end;
  8551. var
  8552. _GetNearestPaletteIndex: Pointer;
  8553. function GetNearestPaletteIndex;
  8554. begin
  8555. GetProcedureAddress(_GetNearestPaletteIndex, gdi32, 'GetNearestPaletteIndex');
  8556. asm
  8557. MOV ESP, EBP
  8558. POP EBP
  8559. JMP [_GetNearestPaletteIndex]
  8560. end;
  8561. end;
  8562. var
  8563. _GetObjectType: Pointer;
  8564. function GetObjectType;
  8565. begin
  8566. GetProcedureAddress(_GetObjectType, gdi32, 'GetObjectType');
  8567. asm
  8568. MOV ESP, EBP
  8569. POP EBP
  8570. JMP [_GetObjectType]
  8571. end;
  8572. end;
  8573. var
  8574. _GetOutlineTextMetricsA: Pointer;
  8575. function GetOutlineTextMetricsA;
  8576. begin
  8577. GetProcedureAddress(_GetOutlineTextMetricsA, gdi32, 'GetOutlineTextMetricsA');
  8578. asm
  8579. MOV ESP, EBP
  8580. POP EBP
  8581. JMP [_GetOutlineTextMetricsA]
  8582. end;
  8583. end;
  8584. var
  8585. _GetOutlineTextMetricsW: Pointer;
  8586. function GetOutlineTextMetricsW;
  8587. begin
  8588. GetProcedureAddress(_GetOutlineTextMetricsW, gdi32, 'GetOutlineTextMetricsW');
  8589. asm
  8590. MOV ESP, EBP
  8591. POP EBP
  8592. JMP [_GetOutlineTextMetricsW]
  8593. end;
  8594. end;
  8595. var
  8596. _GetOutlineTextMetrics: Pointer;
  8597. function GetOutlineTextMetrics;
  8598. begin
  8599. GetProcedureAddress(_GetOutlineTextMetrics, gdi32, 'GetOutlineTextMetrics' + AWSuffix);
  8600. asm
  8601. MOV ESP, EBP
  8602. POP EBP
  8603. JMP [_GetOutlineTextMetrics]
  8604. end;
  8605. end;
  8606. var
  8607. _GetPaletteEntries: Pointer;
  8608. function GetPaletteEntries;
  8609. begin
  8610. GetProcedureAddress(_GetPaletteEntries, gdi32, 'GetPaletteEntries');
  8611. asm
  8612. MOV ESP, EBP
  8613. POP EBP
  8614. JMP [_GetPaletteEntries]
  8615. end;
  8616. end;
  8617. var
  8618. _GetPixel: Pointer;
  8619. function GetPixel;
  8620. begin
  8621. GetProcedureAddress(_GetPixel, gdi32, 'GetPixel');
  8622. asm
  8623. MOV ESP, EBP
  8624. POP EBP
  8625. JMP [_GetPixel]
  8626. end;
  8627. end;
  8628. var
  8629. _GetPixelFormat: Pointer;
  8630. function GetPixelFormat;
  8631. begin
  8632. GetProcedureAddress(_GetPixelFormat, gdi32, 'GetPixelFormat');
  8633. asm
  8634. MOV ESP, EBP
  8635. POP EBP
  8636. JMP [_GetPixelFormat]
  8637. end;
  8638. end;
  8639. var
  8640. _GetPolyFillMode: Pointer;
  8641. function GetPolyFillMode;
  8642. begin
  8643. GetProcedureAddress(_GetPolyFillMode, gdi32, 'GetPolyFillMode');
  8644. asm
  8645. MOV ESP, EBP
  8646. POP EBP
  8647. JMP [_GetPolyFillMode]
  8648. end;
  8649. end;
  8650. var
  8651. _GetRasterizerCaps: Pointer;
  8652. function GetRasterizerCaps;
  8653. begin
  8654. GetProcedureAddress(_GetRasterizerCaps, gdi32, 'GetRasterizerCaps');
  8655. asm
  8656. MOV ESP, EBP
  8657. POP EBP
  8658. JMP [_GetRasterizerCaps]
  8659. end;
  8660. end;
  8661. var
  8662. _GetRandomRgn: Pointer;
  8663. function GetRandomRgn;
  8664. begin
  8665. GetProcedureAddress(_GetRandomRgn, gdi32, 'GetRandomRgn');
  8666. asm
  8667. MOV ESP, EBP
  8668. POP EBP
  8669. JMP [_GetRandomRgn]
  8670. end;
  8671. end;
  8672. var
  8673. _GetRegionData: Pointer;
  8674. function GetRegionData;
  8675. begin
  8676. GetProcedureAddress(_GetRegionData, gdi32, 'GetRegionData');
  8677. asm
  8678. MOV ESP, EBP
  8679. POP EBP
  8680. JMP [_GetRegionData]
  8681. end;
  8682. end;
  8683. var
  8684. _GetRgnBox: Pointer;
  8685. function GetRgnBox;
  8686. begin
  8687. GetProcedureAddress(_GetRgnBox, gdi32, 'GetRgnBox');
  8688. asm
  8689. MOV ESP, EBP
  8690. POP EBP
  8691. JMP [_GetRgnBox]
  8692. end;
  8693. end;
  8694. var
  8695. _GetStockObject: Pointer;
  8696. function GetStockObject;
  8697. begin
  8698. GetProcedureAddress(_GetStockObject, gdi32, 'GetStockObject');
  8699. asm
  8700. MOV ESP, EBP
  8701. POP EBP
  8702. JMP [_GetStockObject]
  8703. end;
  8704. end;
  8705. var
  8706. _GetStretchBltMode: Pointer;
  8707. function GetStretchBltMode;
  8708. begin
  8709. GetProcedureAddress(_GetStretchBltMode, gdi32, 'GetStretchBltMode');
  8710. asm
  8711. MOV ESP, EBP
  8712. POP EBP
  8713. JMP [_GetStretchBltMode]
  8714. end;
  8715. end;
  8716. var
  8717. _GetSystemPaletteEntries: Pointer;
  8718. function GetSystemPaletteEntries;
  8719. begin
  8720. GetProcedureAddress(_GetSystemPaletteEntries, gdi32, 'GetSystemPaletteEntries');
  8721. asm
  8722. MOV ESP, EBP
  8723. POP EBP
  8724. JMP [_GetSystemPaletteEntries]
  8725. end;
  8726. end;
  8727. var
  8728. _GetSystemPaletteUse: Pointer;
  8729. function GetSystemPaletteUse;
  8730. begin
  8731. GetProcedureAddress(_GetSystemPaletteUse, gdi32, 'GetSystemPaletteUse');
  8732. asm
  8733. MOV ESP, EBP
  8734. POP EBP
  8735. JMP [_GetSystemPaletteUse]
  8736. end;
  8737. end;
  8738. var
  8739. _GetTextCharacterExtra: Pointer;
  8740. function GetTextCharacterExtra;
  8741. begin
  8742. GetProcedureAddress(_GetTextCharacterExtra, gdi32, 'GetTextCharacterExtra');
  8743. asm
  8744. MOV ESP, EBP
  8745. POP EBP
  8746. JMP [_GetTextCharacterExtra]
  8747. end;
  8748. end;
  8749. var
  8750. _GetTextAlign: Pointer;
  8751. function GetTextAlign;
  8752. begin
  8753. GetProcedureAddress(_GetTextAlign, gdi32, 'GetTextAlign');
  8754. asm
  8755. MOV ESP, EBP
  8756. POP EBP
  8757. JMP [_GetTextAlign]
  8758. end;
  8759. end;
  8760. var
  8761. _GetTextColor: Pointer;
  8762. function GetTextColor;
  8763. begin
  8764. GetProcedureAddress(_GetTextColor, gdi32, 'GetTextColor');
  8765. asm
  8766. MOV ESP, EBP
  8767. POP EBP
  8768. JMP [_GetTextColor]
  8769. end;
  8770. end;
  8771. var
  8772. _GetTextExtentPointA: Pointer;
  8773. function GetTextExtentPointA;
  8774. begin
  8775. GetProcedureAddress(_GetTextExtentPointA, gdi32, 'GetTextExtentPointA');
  8776. asm
  8777. MOV ESP, EBP
  8778. POP EBP
  8779. JMP [_GetTextExtentPointA]
  8780. end;
  8781. end;
  8782. var
  8783. _GetTextExtentPointW: Pointer;
  8784. function GetTextExtentPointW;
  8785. begin
  8786. GetProcedureAddress(_GetTextExtentPointW, gdi32, 'GetTextExtentPointW');
  8787. asm
  8788. MOV ESP, EBP
  8789. POP EBP
  8790. JMP [_GetTextExtentPointW]
  8791. end;
  8792. end;
  8793. var
  8794. _GetTextExtentPoint: Pointer;
  8795. function GetTextExtentPoint;
  8796. begin
  8797. GetProcedureAddress(_GetTextExtentPoint, gdi32, 'GetTextExtentPoint' + AWSuffix);
  8798. asm
  8799. MOV ESP, EBP
  8800. POP EBP
  8801. JMP [_GetTextExtentPoint]
  8802. end;
  8803. end;
  8804. var
  8805. _GetTextExtentPoint32A: Pointer;
  8806. function GetTextExtentPoint32A;
  8807. begin
  8808. GetProcedureAddress(_GetTextExtentPoint32A, gdi32, 'GetTextExtentPoint32A');
  8809. asm
  8810. MOV ESP, EBP
  8811. POP EBP
  8812. JMP [_GetTextExtentPoint32A]
  8813. end;
  8814. end;
  8815. var
  8816. _GetTextExtentPoint32W: Pointer;
  8817. function GetTextExtentPoint32W;
  8818. begin
  8819. GetProcedureAddress(_GetTextExtentPoint32W, gdi32, 'GetTextExtentPoint32W');
  8820. asm
  8821. MOV ESP, EBP
  8822. POP EBP
  8823. JMP [_GetTextExtentPoint32W]
  8824. end;
  8825. end;
  8826. var
  8827. _GetTextExtentPoint32: Pointer;
  8828. function GetTextExtentPoint32;
  8829. begin
  8830. GetProcedureAddress(_GetTextExtentPoint32, gdi32, 'GetTextExtentPoint32' + AWSuffix);
  8831. asm
  8832. MOV ESP, EBP
  8833. POP EBP
  8834. JMP [_GetTextExtentPoint32]
  8835. end;
  8836. end;
  8837. var
  8838. _GetTextExtentExPointA: Pointer;
  8839. function GetTextExtentExPointA;
  8840. begin
  8841. GetProcedureAddress(_GetTextExtentExPointA, gdi32, 'GetTextExtentExPointA');
  8842. asm
  8843. MOV ESP, EBP
  8844. POP EBP
  8845. JMP [_GetTextExtentExPointA]
  8846. end;
  8847. end;
  8848. var
  8849. _GetTextExtentExPointW: Pointer;
  8850. function GetTextExtentExPointW;
  8851. begin
  8852. GetProcedureAddress(_GetTextExtentExPointW, gdi32, 'GetTextExtentExPointW');
  8853. asm
  8854. MOV ESP, EBP
  8855. POP EBP
  8856. JMP [_GetTextExtentExPointW]
  8857. end;
  8858. end;
  8859. var
  8860. _GetTextExtentExPoint: Pointer;
  8861. function GetTextExtentExPoint;
  8862. begin
  8863. GetProcedureAddress(_GetTextExtentExPoint, gdi32, 'GetTextExtentExPoint' + AWSuffix);
  8864. asm
  8865. MOV ESP, EBP
  8866. POP EBP
  8867. JMP [_GetTextExtentExPoint]
  8868. end;
  8869. end;
  8870. var
  8871. _GetTextCharset: Pointer;
  8872. function GetTextCharset;
  8873. begin
  8874. GetProcedureAddress(_GetTextCharset, gdi32, 'GetTextCharset');
  8875. asm
  8876. MOV ESP, EBP
  8877. POP EBP
  8878. JMP [_GetTextCharset]
  8879. end;
  8880. end;
  8881. var
  8882. _GetTextCharsetInfo: Pointer;
  8883. function GetTextCharsetInfo;
  8884. begin
  8885. GetProcedureAddress(_GetTextCharsetInfo, gdi32, 'GetTextCharsetInfo');
  8886. asm
  8887. MOV ESP, EBP
  8888. POP EBP
  8889. JMP [_GetTextCharsetInfo]
  8890. end;
  8891. end;
  8892. var
  8893. _TranslateCharsetInfo: Pointer;
  8894. function TranslateCharsetInfo;
  8895. begin
  8896. GetProcedureAddress(_TranslateCharsetInfo, gdi32, 'TranslateCharsetInfo');
  8897. asm
  8898. MOV ESP, EBP
  8899. POP EBP
  8900. JMP [_TranslateCharsetInfo]
  8901. end;
  8902. end;
  8903. var
  8904. _GetFontLanguageInfo: Pointer;
  8905. function GetFontLanguageInfo;
  8906. begin
  8907. GetProcedureAddress(_GetFontLanguageInfo, gdi32, 'GetFontLanguageInfo');
  8908. asm
  8909. MOV ESP, EBP
  8910. POP EBP
  8911. JMP [_GetFontLanguageInfo]
  8912. end;
  8913. end;
  8914. var
  8915. _GetCharacterPlacementA: Pointer;
  8916. function GetCharacterPlacementA;
  8917. begin
  8918. GetProcedureAddress(_GetCharacterPlacementA, gdi32, 'GetCharacterPlacementA');
  8919. asm
  8920. MOV ESP, EBP
  8921. POP EBP
  8922. JMP [_GetCharacterPlacementA]
  8923. end;
  8924. end;
  8925. var
  8926. _GetCharacterPlacementW: Pointer;
  8927. function GetCharacterPlacementW;
  8928. begin
  8929. GetProcedureAddress(_GetCharacterPlacementW, gdi32, 'GetCharacterPlacementW');
  8930. asm
  8931. MOV ESP, EBP
  8932. POP EBP
  8933. JMP [_GetCharacterPlacementW]
  8934. end;
  8935. end;
  8936. var
  8937. _GetCharacterPlacement: Pointer;
  8938. function GetCharacterPlacement;
  8939. begin
  8940. GetProcedureAddress(_GetCharacterPlacement, gdi32, 'GetCharacterPlacement' + AWSuffix);
  8941. asm
  8942. MOV ESP, EBP
  8943. POP EBP
  8944. JMP [_GetCharacterPlacement]
  8945. end;
  8946. end;
  8947. var
  8948. _GetFontUnicodeRanges: Pointer;
  8949. function GetFontUnicodeRanges;
  8950. begin
  8951. GetProcedureAddress(_GetFontUnicodeRanges, gdi32, 'GetFontUnicodeRanges');
  8952. asm
  8953. MOV ESP, EBP
  8954. POP EBP
  8955. JMP [_GetFontUnicodeRanges]
  8956. end;
  8957. end;
  8958. var
  8959. _GetGlyphIndicesA: Pointer;
  8960. function GetGlyphIndicesA;
  8961. begin
  8962. GetProcedureAddress(_GetGlyphIndicesA, gdi32, 'GetGlyphIndicesA');
  8963. asm
  8964. MOV ESP, EBP
  8965. POP EBP
  8966. JMP [_GetGlyphIndicesA]
  8967. end;
  8968. end;
  8969. var
  8970. _GetGlyphIndicesW: Pointer;
  8971. function GetGlyphIndicesW;
  8972. begin
  8973. GetProcedureAddress(_GetGlyphIndicesW, gdi32, 'GetGlyphIndicesW');
  8974. asm
  8975. MOV ESP, EBP
  8976. POP EBP
  8977. JMP [_GetGlyphIndicesW]
  8978. end;
  8979. end;
  8980. var
  8981. _GetGlyphIndices: Pointer;
  8982. function GetGlyphIndices;
  8983. begin
  8984. GetProcedureAddress(_GetGlyphIndices, gdi32, 'GetGlyphIndices' + AWSuffix);
  8985. asm
  8986. MOV ESP, EBP
  8987. POP EBP
  8988. JMP [_GetGlyphIndices]
  8989. end;
  8990. end;
  8991. var
  8992. _GetTextExtentPointI: Pointer;
  8993. function GetTextExtentPointI;
  8994. begin
  8995. GetProcedureAddress(_GetTextExtentPointI, gdi32, 'GetTextExtentPointI');
  8996. asm
  8997. MOV ESP, EBP
  8998. POP EBP
  8999. JMP [_GetTextExtentPointI]
  9000. end;
  9001. end;
  9002. var
  9003. _GetTextExtentExPointI: Pointer;
  9004. function GetTextExtentExPointI;
  9005. begin
  9006. GetProcedureAddress(_GetTextExtentExPointI, gdi32, 'GetTextExtentExPointI');
  9007. asm
  9008. MOV ESP, EBP
  9009. POP EBP
  9010. JMP [_GetTextExtentExPointI]
  9011. end;
  9012. end;
  9013. var
  9014. _GetCharWidthI: Pointer;
  9015. function GetCharWidthI;
  9016. begin
  9017. GetProcedureAddress(_GetCharWidthI, gdi32, 'GetCharWidthI');
  9018. asm
  9019. MOV ESP, EBP
  9020. POP EBP
  9021. JMP [_GetCharWidthI]
  9022. end;
  9023. end;
  9024. var
  9025. _GetCharABCWidthsI: Pointer;
  9026. function GetCharABCWidthsI;
  9027. begin
  9028. GetProcedureAddress(_GetCharABCWidthsI, gdi32, 'GetCharABCWidthsI');
  9029. asm
  9030. MOV ESP, EBP
  9031. POP EBP
  9032. JMP [_GetCharABCWidthsI]
  9033. end;
  9034. end;
  9035. var
  9036. _AddFontResourceExA: Pointer;
  9037. function AddFontResourceExA;
  9038. begin
  9039. GetProcedureAddress(_AddFontResourceExA, gdi32, 'AddFontResourceExA');
  9040. asm
  9041. MOV ESP, EBP
  9042. POP EBP
  9043. JMP [_AddFontResourceExA]
  9044. end;
  9045. end;
  9046. var
  9047. _AddFontResourceExW: Pointer;
  9048. function AddFontResourceExW;
  9049. begin
  9050. GetProcedureAddress(_AddFontResourceExW, gdi32, 'AddFontResourceExW');
  9051. asm
  9052. MOV ESP, EBP
  9053. POP EBP
  9054. JMP [_AddFontResourceExW]
  9055. end;
  9056. end;
  9057. var
  9058. _AddFontResourceEx: Pointer;
  9059. function AddFontResourceEx;
  9060. begin
  9061. GetProcedureAddress(_AddFontResourceEx, gdi32, 'AddFontResourceEx' + AWSuffix);
  9062. asm
  9063. MOV ESP, EBP
  9064. POP EBP
  9065. JMP [_AddFontResourceEx]
  9066. end;
  9067. end;
  9068. var
  9069. _RemoveFontResourceExA: Pointer;
  9070. function RemoveFontResourceExA;
  9071. begin
  9072. GetProcedureAddress(_RemoveFontResourceExA, gdi32, 'RemoveFontResourceExA');
  9073. asm
  9074. MOV ESP, EBP
  9075. POP EBP
  9076. JMP [_RemoveFontResourceExA]
  9077. end;
  9078. end;
  9079. var
  9080. _RemoveFontResourceExW: Pointer;
  9081. function RemoveFontResourceExW;
  9082. begin
  9083. GetProcedureAddress(_RemoveFontResourceExW, gdi32, 'RemoveFontResourceExW');
  9084. asm
  9085. MOV ESP, EBP
  9086. POP EBP
  9087. JMP [_RemoveFontResourceExW]
  9088. end;
  9089. end;
  9090. var
  9091. _RemoveFontResourceEx: Pointer;
  9092. function RemoveFontResourceEx;
  9093. begin
  9094. GetProcedureAddress(_RemoveFontResourceEx, gdi32, 'RemoveFontResourceEx' + AWSuffix);
  9095. asm
  9096. MOV ESP, EBP
  9097. POP EBP
  9098. JMP [_RemoveFontResourceEx]
  9099. end;
  9100. end;
  9101. var
  9102. _AddFontMemResourceEx: Pointer;
  9103. function AddFontMemResourceEx;
  9104. begin
  9105. GetProcedureAddress(_AddFontMemResourceEx, gdi32, 'AddFontMemResourceEx');
  9106. asm
  9107. MOV ESP, EBP
  9108. POP EBP
  9109. JMP [_AddFontMemResourceEx]
  9110. end;
  9111. end;
  9112. var
  9113. _RemoveFontMemResourceEx: Pointer;
  9114. function RemoveFontMemResourceEx;
  9115. begin
  9116. GetProcedureAddress(_RemoveFontMemResourceEx, gdi32, 'RemoveFontMemResourceEx');
  9117. asm
  9118. MOV ESP, EBP
  9119. POP EBP
  9120. JMP [_RemoveFontMemResourceEx]
  9121. end;
  9122. end;
  9123. var
  9124. _CreateFontIndirectExA: Pointer;
  9125. function CreateFontIndirectExA;
  9126. begin
  9127. GetProcedureAddress(_CreateFontIndirectExA, gdi32, 'CreateFontIndirectExA');
  9128. asm
  9129. MOV ESP, EBP
  9130. POP EBP
  9131. JMP [_CreateFontIndirectExA]
  9132. end;
  9133. end;
  9134. var
  9135. _CreateFontIndirectExW: Pointer;
  9136. function CreateFontIndirectExW;
  9137. begin
  9138. GetProcedureAddress(_CreateFontIndirectExW, gdi32, 'CreateFontIndirectExW');
  9139. asm
  9140. MOV ESP, EBP
  9141. POP EBP
  9142. JMP [_CreateFontIndirectExW]
  9143. end;
  9144. end;
  9145. var
  9146. _CreateFontIndirectEx: Pointer;
  9147. function CreateFontIndirectEx;
  9148. begin
  9149. GetProcedureAddress(_CreateFontIndirectEx, gdi32, 'CreateFontIndirectEx' + AWSuffix);
  9150. asm
  9151. MOV ESP, EBP
  9152. POP EBP
  9153. JMP [_CreateFontIndirectEx]
  9154. end;
  9155. end;
  9156. var
  9157. _GetViewportExtEx: Pointer;
  9158. function GetViewportExtEx;
  9159. begin
  9160. GetProcedureAddress(_GetViewportExtEx, gdi32, 'GetViewportExtEx');
  9161. asm
  9162. MOV ESP, EBP
  9163. POP EBP
  9164. JMP [_GetViewportExtEx]
  9165. end;
  9166. end;
  9167. var
  9168. _GetViewportOrgEx: Pointer;
  9169. function GetViewportOrgEx;
  9170. begin
  9171. GetProcedureAddress(_GetViewportOrgEx, gdi32, 'GetViewportOrgEx');
  9172. asm
  9173. MOV ESP, EBP
  9174. POP EBP
  9175. JMP [_GetViewportOrgEx]
  9176. end;
  9177. end;
  9178. var
  9179. _GetWindowExtEx: Pointer;
  9180. function GetWindowExtEx;
  9181. begin
  9182. GetProcedureAddress(_GetWindowExtEx, gdi32, 'GetWindowExtEx');
  9183. asm
  9184. MOV ESP, EBP
  9185. POP EBP
  9186. JMP [_GetWindowExtEx]
  9187. end;
  9188. end;
  9189. var
  9190. _GetWindowOrgEx: Pointer;
  9191. function GetWindowOrgEx;
  9192. begin
  9193. GetProcedureAddress(_GetWindowOrgEx, gdi32, 'GetWindowOrgEx');
  9194. asm
  9195. MOV ESP, EBP
  9196. POP EBP
  9197. JMP [_GetWindowOrgEx]
  9198. end;
  9199. end;
  9200. var
  9201. _IntersectClipRect: Pointer;
  9202. function IntersectClipRect;
  9203. begin
  9204. GetProcedureAddress(_IntersectClipRect, gdi32, 'IntersectClipRect');
  9205. asm
  9206. MOV ESP, EBP
  9207. POP EBP
  9208. JMP [_IntersectClipRect]
  9209. end;
  9210. end;
  9211. var
  9212. _InvertRgn: Pointer;
  9213. function InvertRgn;
  9214. begin
  9215. GetProcedureAddress(_InvertRgn, gdi32, 'InvertRgn');
  9216. asm
  9217. MOV ESP, EBP
  9218. POP EBP
  9219. JMP [_InvertRgn]
  9220. end;
  9221. end;
  9222. var
  9223. _LineDDA: Pointer;
  9224. function LineDDA;
  9225. begin
  9226. GetProcedureAddress(_LineDDA, gdi32, 'LineDDA');
  9227. asm
  9228. MOV ESP, EBP
  9229. POP EBP
  9230. JMP [_LineDDA]
  9231. end;
  9232. end;
  9233. var
  9234. _LineTo: Pointer;
  9235. function LineTo;
  9236. begin
  9237. GetProcedureAddress(_LineTo, gdi32, 'LineTo');
  9238. asm
  9239. MOV ESP, EBP
  9240. POP EBP
  9241. JMP [_LineTo]
  9242. end;
  9243. end;
  9244. var
  9245. _MaskBlt: Pointer;
  9246. function MaskBlt;
  9247. begin
  9248. GetProcedureAddress(_MaskBlt, gdi32, 'MaskBlt');
  9249. asm
  9250. MOV ESP, EBP
  9251. POP EBP
  9252. JMP [_MaskBlt]
  9253. end;
  9254. end;
  9255. var
  9256. _PlgBlt: Pointer;
  9257. function PlgBlt;
  9258. begin
  9259. GetProcedureAddress(_PlgBlt, gdi32, 'PlgBlt');
  9260. asm
  9261. MOV ESP, EBP
  9262. POP EBP
  9263. JMP [_PlgBlt]
  9264. end;
  9265. end;
  9266. var
  9267. _OffsetClipRgn: Pointer;
  9268. function OffsetClipRgn;
  9269. begin
  9270. GetProcedureAddress(_OffsetClipRgn, gdi32, 'OffsetClipRgn');
  9271. asm
  9272. MOV ESP, EBP
  9273. POP EBP
  9274. JMP [_OffsetClipRgn]
  9275. end;
  9276. end;
  9277. var
  9278. _OffsetRgn: Pointer;
  9279. function OffsetRgn;
  9280. begin
  9281. GetProcedureAddress(_OffsetRgn, gdi32, 'OffsetRgn');
  9282. asm
  9283. MOV ESP, EBP
  9284. POP EBP
  9285. JMP [_OffsetRgn]
  9286. end;
  9287. end;
  9288. var
  9289. _PatBlt: Pointer;
  9290. function PatBlt;
  9291. begin
  9292. GetProcedureAddress(_PatBlt, gdi32, 'PatBlt');
  9293. asm
  9294. MOV ESP, EBP
  9295. POP EBP
  9296. JMP [_PatBlt]
  9297. end;
  9298. end;
  9299. var
  9300. _Pie: Pointer;
  9301. function Pie;
  9302. begin
  9303. GetProcedureAddress(_Pie, gdi32, 'Pie');
  9304. asm
  9305. MOV ESP, EBP
  9306. POP EBP
  9307. JMP [_Pie]
  9308. end;
  9309. end;
  9310. var
  9311. _PlayMetaFile: Pointer;
  9312. function PlayMetaFile;
  9313. begin
  9314. GetProcedureAddress(_PlayMetaFile, gdi32, 'PlayMetaFile');
  9315. asm
  9316. MOV ESP, EBP
  9317. POP EBP
  9318. JMP [_PlayMetaFile]
  9319. end;
  9320. end;
  9321. var
  9322. _PaintRgn: Pointer;
  9323. function PaintRgn;
  9324. begin
  9325. GetProcedureAddress(_PaintRgn, gdi32, 'PaintRgn');
  9326. asm
  9327. MOV ESP, EBP
  9328. POP EBP
  9329. JMP [_PaintRgn]
  9330. end;
  9331. end;
  9332. var
  9333. _PolyPolygon: Pointer;
  9334. function PolyPolygon;
  9335. begin
  9336. GetProcedureAddress(_PolyPolygon, gdi32, 'PolyPolygon');
  9337. asm
  9338. MOV ESP, EBP
  9339. POP EBP
  9340. JMP [_PolyPolygon]
  9341. end;
  9342. end;
  9343. var
  9344. _PtInRegion: Pointer;
  9345. function PtInRegion;
  9346. begin
  9347. GetProcedureAddress(_PtInRegion, gdi32, 'PtInRegion');
  9348. asm
  9349. MOV ESP, EBP
  9350. POP EBP
  9351. JMP [_PtInRegion]
  9352. end;
  9353. end;
  9354. var
  9355. _PtVisible: Pointer;
  9356. function PtVisible;
  9357. begin
  9358. GetProcedureAddress(_PtVisible, gdi32, 'PtVisible');
  9359. asm
  9360. MOV ESP, EBP
  9361. POP EBP
  9362. JMP [_PtVisible]
  9363. end;
  9364. end;
  9365. var
  9366. _RectInRegion: Pointer;
  9367. function RectInRegion;
  9368. begin
  9369. GetProcedureAddress(_RectInRegion, gdi32, 'RectInRegion');
  9370. asm
  9371. MOV ESP, EBP
  9372. POP EBP
  9373. JMP [_RectInRegion]
  9374. end;
  9375. end;
  9376. var
  9377. _RectVisible: Pointer;
  9378. function RectVisible;
  9379. begin
  9380. GetProcedureAddress(_RectVisible, gdi32, 'RectVisible');
  9381. asm
  9382. MOV ESP, EBP
  9383. POP EBP
  9384. JMP [_RectVisible]
  9385. end;
  9386. end;
  9387. var
  9388. _Rectangle: Pointer;
  9389. function Rectangle;
  9390. begin
  9391. GetProcedureAddress(_Rectangle, gdi32, 'Rectangle');
  9392. asm
  9393. MOV ESP, EBP
  9394. POP EBP
  9395. JMP [_Rectangle]
  9396. end;
  9397. end;
  9398. var
  9399. _RestoreDC: Pointer;
  9400. function RestoreDC;
  9401. begin
  9402. GetProcedureAddress(_RestoreDC, gdi32, 'RestoreDC');
  9403. asm
  9404. MOV ESP, EBP
  9405. POP EBP
  9406. JMP [_RestoreDC]
  9407. end;
  9408. end;
  9409. var
  9410. _ResetDCA: Pointer;
  9411. function ResetDCA;
  9412. begin
  9413. GetProcedureAddress(_ResetDCA, gdi32, 'ResetDCA');
  9414. asm
  9415. MOV ESP, EBP
  9416. POP EBP
  9417. JMP [_ResetDCA]
  9418. end;
  9419. end;
  9420. var
  9421. _ResetDCW: Pointer;
  9422. function ResetDCW;
  9423. begin
  9424. GetProcedureAddress(_ResetDCW, gdi32, 'ResetDCW');
  9425. asm
  9426. MOV ESP, EBP
  9427. POP EBP
  9428. JMP [_ResetDCW]
  9429. end;
  9430. end;
  9431. var
  9432. _ResetDC: Pointer;
  9433. function ResetDC;
  9434. begin
  9435. GetProcedureAddress(_ResetDC, gdi32, 'ResetDC' + AWSuffix);
  9436. asm
  9437. MOV ESP, EBP
  9438. POP EBP
  9439. JMP [_ResetDC]
  9440. end;
  9441. end;
  9442. var
  9443. _RealizePalette: Pointer;
  9444. function RealizePalette;
  9445. begin
  9446. GetProcedureAddress(_RealizePalette, gdi32, 'RealizePalette');
  9447. asm
  9448. MOV ESP, EBP
  9449. POP EBP
  9450. JMP [_RealizePalette]
  9451. end;
  9452. end;
  9453. var
  9454. _RemoveFontResourceA: Pointer;
  9455. function RemoveFontResourceA;
  9456. begin
  9457. GetProcedureAddress(_RemoveFontResourceA, gdi32, 'RemoveFontResourceA');
  9458. asm
  9459. MOV ESP, EBP
  9460. POP EBP
  9461. JMP [_RemoveFontResourceA]
  9462. end;
  9463. end;
  9464. var
  9465. _RemoveFontResourceW: Pointer;
  9466. function RemoveFontResourceW;
  9467. begin
  9468. GetProcedureAddress(_RemoveFontResourceW, gdi32, 'RemoveFontResourceW');
  9469. asm
  9470. MOV ESP, EBP
  9471. POP EBP
  9472. JMP [_RemoveFontResourceW]
  9473. end;
  9474. end;
  9475. var
  9476. _RemoveFontResource: Pointer;
  9477. function RemoveFontResource;
  9478. begin
  9479. GetProcedureAddress(_RemoveFontResource, gdi32, 'RemoveFontResource' + AWSuffix);
  9480. asm
  9481. MOV ESP, EBP
  9482. POP EBP
  9483. JMP [_RemoveFontResource]
  9484. end;
  9485. end;
  9486. var
  9487. _RoundRect: Pointer;
  9488. function RoundRect;
  9489. begin
  9490. GetProcedureAddress(_RoundRect, gdi32, 'RoundRect');
  9491. asm
  9492. MOV ESP, EBP
  9493. POP EBP
  9494. JMP [_RoundRect]
  9495. end;
  9496. end;
  9497. var
  9498. _ResizePalette: Pointer;
  9499. function ResizePalette;
  9500. begin
  9501. GetProcedureAddress(_ResizePalette, gdi32, 'ResizePalette');
  9502. asm
  9503. MOV ESP, EBP
  9504. POP EBP
  9505. JMP [_ResizePalette]
  9506. end;
  9507. end;
  9508. var
  9509. _SaveDC: Pointer;
  9510. function SaveDC;
  9511. begin
  9512. GetProcedureAddress(_SaveDC, gdi32, 'SaveDC');
  9513. asm
  9514. MOV ESP, EBP
  9515. POP EBP
  9516. JMP [_SaveDC]
  9517. end;
  9518. end;
  9519. var
  9520. _SelectClipRgn: Pointer;
  9521. function SelectClipRgn;
  9522. begin
  9523. GetProcedureAddress(_SelectClipRgn, gdi32, 'SelectClipRgn');
  9524. asm
  9525. MOV ESP, EBP
  9526. POP EBP
  9527. JMP [_SelectClipRgn]
  9528. end;
  9529. end;
  9530. var
  9531. _ExtSelectClipRgn: Pointer;
  9532. function ExtSelectClipRgn;
  9533. begin
  9534. GetProcedureAddress(_ExtSelectClipRgn, gdi32, 'ExtSelectClipRgn');
  9535. asm
  9536. MOV ESP, EBP
  9537. POP EBP
  9538. JMP [_ExtSelectClipRgn]
  9539. end;
  9540. end;
  9541. var
  9542. _SetMetaRgn: Pointer;
  9543. function SetMetaRgn;
  9544. begin
  9545. GetProcedureAddress(_SetMetaRgn, gdi32, 'SetMetaRgn');
  9546. asm
  9547. MOV ESP, EBP
  9548. POP EBP
  9549. JMP [_SetMetaRgn]
  9550. end;
  9551. end;
  9552. var
  9553. _SelectObject: Pointer;
  9554. function SelectObject;
  9555. begin
  9556. GetProcedureAddress(_SelectObject, gdi32, 'SelectObject');
  9557. asm
  9558. MOV ESP, EBP
  9559. POP EBP
  9560. JMP [_SelectObject]
  9561. end;
  9562. end;
  9563. var
  9564. _SelectPalette: Pointer;
  9565. function SelectPalette;
  9566. begin
  9567. GetProcedureAddress(_SelectPalette, gdi32, 'SelectPalette');
  9568. asm
  9569. MOV ESP, EBP
  9570. POP EBP
  9571. JMP [_SelectPalette]
  9572. end;
  9573. end;
  9574. var
  9575. _SetBkColor: Pointer;
  9576. function SetBkColor;
  9577. begin
  9578. GetProcedureAddress(_SetBkColor, gdi32, 'SetBkColor');
  9579. asm
  9580. MOV ESP, EBP
  9581. POP EBP
  9582. JMP [_SetBkColor]
  9583. end;
  9584. end;
  9585. var
  9586. _SetDCBrushColor: Pointer;
  9587. function SetDCBrushColor;
  9588. begin
  9589. GetProcedureAddress(_SetDCBrushColor, gdi32, 'SetDCBrushColor');
  9590. asm
  9591. MOV ESP, EBP
  9592. POP EBP
  9593. JMP [_SetDCBrushColor]
  9594. end;
  9595. end;
  9596. var
  9597. _SetDCPenColor: Pointer;
  9598. function SetDCPenColor;
  9599. begin
  9600. GetProcedureAddress(_SetDCPenColor, gdi32, 'SetDCPenColor');
  9601. asm
  9602. MOV ESP, EBP
  9603. POP EBP
  9604. JMP [_SetDCPenColor]
  9605. end;
  9606. end;
  9607. var
  9608. _SetBkMode: Pointer;
  9609. function SetBkMode;
  9610. begin
  9611. GetProcedureAddress(_SetBkMode, gdi32, 'SetBkMode');
  9612. asm
  9613. MOV ESP, EBP
  9614. POP EBP
  9615. JMP [_SetBkMode]
  9616. end;
  9617. end;
  9618. var
  9619. _SetBitmapBits: Pointer;
  9620. function SetBitmapBits;
  9621. begin
  9622. GetProcedureAddress(_SetBitmapBits, gdi32, 'SetBitmapBits');
  9623. asm
  9624. MOV ESP, EBP
  9625. POP EBP
  9626. JMP [_SetBitmapBits]
  9627. end;
  9628. end;
  9629. var
  9630. _SetBoundsRect: Pointer;
  9631. function SetBoundsRect;
  9632. begin
  9633. GetProcedureAddress(_SetBoundsRect, gdi32, 'SetBoundsRect');
  9634. asm
  9635. MOV ESP, EBP
  9636. POP EBP
  9637. JMP [_SetBoundsRect]
  9638. end;
  9639. end;
  9640. var
  9641. _SetDIBits: Pointer;
  9642. function SetDIBits;
  9643. begin
  9644. GetProcedureAddress(_SetDIBits, gdi32, 'SetDIBits');
  9645. asm
  9646. MOV ESP, EBP
  9647. POP EBP
  9648. JMP [_SetDIBits]
  9649. end;
  9650. end;
  9651. var
  9652. _SetDIBitsToDevice: Pointer;
  9653. function SetDIBitsToDevice;
  9654. begin
  9655. GetProcedureAddress(_SetDIBitsToDevice, gdi32, 'SetDIBitsToDevice');
  9656. asm
  9657. MOV ESP, EBP
  9658. POP EBP
  9659. JMP [_SetDIBitsToDevice]
  9660. end;
  9661. end;
  9662. var
  9663. _SetMapperFlags: Pointer;
  9664. function SetMapperFlags;
  9665. begin
  9666. GetProcedureAddress(_SetMapperFlags, gdi32, 'SetMapperFlags');
  9667. asm
  9668. MOV ESP, EBP
  9669. POP EBP
  9670. JMP [_SetMapperFlags]
  9671. end;
  9672. end;
  9673. var
  9674. _SetGraphicsMode: Pointer;
  9675. function SetGraphicsMode;
  9676. begin
  9677. GetProcedureAddress(_SetGraphicsMode, gdi32, 'SetGraphicsMode');
  9678. asm
  9679. MOV ESP, EBP
  9680. POP EBP
  9681. JMP [_SetGraphicsMode]
  9682. end;
  9683. end;
  9684. var
  9685. _SetMapMode: Pointer;
  9686. function SetMapMode;
  9687. begin
  9688. GetProcedureAddress(_SetMapMode, gdi32, 'SetMapMode');
  9689. asm
  9690. MOV ESP, EBP
  9691. POP EBP
  9692. JMP [_SetMapMode]
  9693. end;
  9694. end;
  9695. var
  9696. _SetLayout: Pointer;
  9697. function SetLayout;
  9698. begin
  9699. GetProcedureAddress(_SetLayout, gdi32, 'SetLayout');
  9700. asm
  9701. MOV ESP, EBP
  9702. POP EBP
  9703. JMP [_SetLayout]
  9704. end;
  9705. end;
  9706. var
  9707. _GetLayout: Pointer;
  9708. function GetLayout;
  9709. begin
  9710. GetProcedureAddress(_GetLayout, gdi32, 'GetLayout');
  9711. asm
  9712. MOV ESP, EBP
  9713. POP EBP
  9714. JMP [_GetLayout]
  9715. end;
  9716. end;
  9717. var
  9718. _SetMetaFileBitsEx: Pointer;
  9719. function SetMetaFileBitsEx;
  9720. begin
  9721. GetProcedureAddress(_SetMetaFileBitsEx, gdi32, 'SetMetaFileBitsEx');
  9722. asm
  9723. MOV ESP, EBP
  9724. POP EBP
  9725. JMP [_SetMetaFileBitsEx]
  9726. end;
  9727. end;
  9728. var
  9729. _SetPaletteEntries: Pointer;
  9730. function SetPaletteEntries;
  9731. begin
  9732. GetProcedureAddress(_SetPaletteEntries, gdi32, 'SetPaletteEntries');
  9733. asm
  9734. MOV ESP, EBP
  9735. POP EBP
  9736. JMP [_SetPaletteEntries]
  9737. end;
  9738. end;
  9739. var
  9740. _SetPixel: Pointer;
  9741. function SetPixel;
  9742. begin
  9743. GetProcedureAddress(_SetPixel, gdi32, 'SetPixel');
  9744. asm
  9745. MOV ESP, EBP
  9746. POP EBP
  9747. JMP [_SetPixel]
  9748. end;
  9749. end;
  9750. var
  9751. _SetPixelV: Pointer;
  9752. function SetPixelV;
  9753. begin
  9754. GetProcedureAddress(_SetPixelV, gdi32, 'SetPixelV');
  9755. asm
  9756. MOV ESP, EBP
  9757. POP EBP
  9758. JMP [_SetPixelV]
  9759. end;
  9760. end;
  9761. var
  9762. _SetPixelFormat: Pointer;
  9763. function SetPixelFormat;
  9764. begin
  9765. GetProcedureAddress(_SetPixelFormat, gdi32, 'SetPixelFormat');
  9766. asm
  9767. MOV ESP, EBP
  9768. POP EBP
  9769. JMP [_SetPixelFormat]
  9770. end;
  9771. end;
  9772. var
  9773. _SetPolyFillMode: Pointer;
  9774. function SetPolyFillMode;
  9775. begin
  9776. GetProcedureAddress(_SetPolyFillMode, gdi32, 'SetPolyFillMode');
  9777. asm
  9778. MOV ESP, EBP
  9779. POP EBP
  9780. JMP [_SetPolyFillMode]
  9781. end;
  9782. end;
  9783. var
  9784. _StretchBlt: Pointer;
  9785. function StretchBlt;
  9786. begin
  9787. GetProcedureAddress(_StretchBlt, gdi32, 'StretchBlt');
  9788. asm
  9789. MOV ESP, EBP
  9790. POP EBP
  9791. JMP [_StretchBlt]
  9792. end;
  9793. end;
  9794. var
  9795. _SetRectRgn: Pointer;
  9796. function SetRectRgn;
  9797. begin
  9798. GetProcedureAddress(_SetRectRgn, gdi32, 'SetRectRgn');
  9799. asm
  9800. MOV ESP, EBP
  9801. POP EBP
  9802. JMP [_SetRectRgn]
  9803. end;
  9804. end;
  9805. var
  9806. _StretchDIBits: Pointer;
  9807. function StretchDIBits;
  9808. begin
  9809. GetProcedureAddress(_StretchDIBits, gdi32, 'StretchDIBits');
  9810. asm
  9811. MOV ESP, EBP
  9812. POP EBP
  9813. JMP [_StretchDIBits]
  9814. end;
  9815. end;
  9816. var
  9817. _SetROP2: Pointer;
  9818. function SetROP2;
  9819. begin
  9820. GetProcedureAddress(_SetROP2, gdi32, 'SetROP2');
  9821. asm
  9822. MOV ESP, EBP
  9823. POP EBP
  9824. JMP [_SetROP2]
  9825. end;
  9826. end;
  9827. var
  9828. _SetStretchBltMode: Pointer;
  9829. function SetStretchBltMode;
  9830. begin
  9831. GetProcedureAddress(_SetStretchBltMode, gdi32, 'SetStretchBltMode');
  9832. asm
  9833. MOV ESP, EBP
  9834. POP EBP
  9835. JMP [_SetStretchBltMode]
  9836. end;
  9837. end;
  9838. var
  9839. _SetSystemPaletteUse: Pointer;
  9840. function SetSystemPaletteUse;
  9841. begin
  9842. GetProcedureAddress(_SetSystemPaletteUse, gdi32, 'SetSystemPaletteUse');
  9843. asm
  9844. MOV ESP, EBP
  9845. POP EBP
  9846. JMP [_SetSystemPaletteUse]
  9847. end;
  9848. end;
  9849. var
  9850. _SetTextCharacterExtra: Pointer;
  9851. function SetTextCharacterExtra;
  9852. begin
  9853. GetProcedureAddress(_SetTextCharacterExtra, gdi32, 'SetTextCharacterExtra');
  9854. asm
  9855. MOV ESP, EBP
  9856. POP EBP
  9857. JMP [_SetTextCharacterExtra]
  9858. end;
  9859. end;
  9860. var
  9861. _SetTextColor: Pointer;
  9862. function SetTextColor;
  9863. begin
  9864. GetProcedureAddress(_SetTextColor, gdi32, 'SetTextColor');
  9865. asm
  9866. MOV ESP, EBP
  9867. POP EBP
  9868. JMP [_SetTextColor]
  9869. end;
  9870. end;
  9871. var
  9872. _SetTextAlign: Pointer;
  9873. function SetTextAlign;
  9874. begin
  9875. GetProcedureAddress(_SetTextAlign, gdi32, 'SetTextAlign');
  9876. asm
  9877. MOV ESP, EBP
  9878. POP EBP
  9879. JMP [_SetTextAlign]
  9880. end;
  9881. end;
  9882. var
  9883. _SetTextJustification: Pointer;
  9884. function SetTextJustification;
  9885. begin
  9886. GetProcedureAddress(_SetTextJustification, gdi32, 'SetTextJustification');
  9887. asm
  9888. MOV ESP, EBP
  9889. POP EBP
  9890. JMP [_SetTextJustification]
  9891. end;
  9892. end;
  9893. var
  9894. _UpdateColors: Pointer;
  9895. function UpdateColors;
  9896. begin
  9897. GetProcedureAddress(_UpdateColors, gdi32, 'UpdateColors');
  9898. asm
  9899. MOV ESP, EBP
  9900. POP EBP
  9901. JMP [_UpdateColors]
  9902. end;
  9903. end;
  9904. var
  9905. _AlphaBlend: Pointer;
  9906. function AlphaBlend;
  9907. begin
  9908. GetProcedureAddress(_AlphaBlend, msimg32, 'AlphaBlend');
  9909. asm
  9910. MOV ESP, EBP
  9911. POP EBP
  9912. JMP [_AlphaBlend]
  9913. end;
  9914. end;
  9915. var
  9916. _TransparentBlt: Pointer;
  9917. function TransparentBlt;
  9918. begin
  9919. GetProcedureAddress(_TransparentBlt, msimg32, 'TransparentBlt');
  9920. asm
  9921. MOV ESP, EBP
  9922. POP EBP
  9923. JMP [_TransparentBlt]
  9924. end;
  9925. end;
  9926. var
  9927. _GradientFill: Pointer;
  9928. function GradientFill;
  9929. begin
  9930. GetProcedureAddress(_GradientFill, msimg32, 'GradientFill');
  9931. asm
  9932. MOV ESP, EBP
  9933. POP EBP
  9934. JMP [_GradientFill]
  9935. end;
  9936. end;
  9937. var
  9938. _PlayMetaFileRecord: Pointer;
  9939. function PlayMetaFileRecord;
  9940. begin
  9941. GetProcedureAddress(_PlayMetaFileRecord, gdi32, 'PlayMetaFileRecord');
  9942. asm
  9943. MOV ESP, EBP
  9944. POP EBP
  9945. JMP [_PlayMetaFileRecord]
  9946. end;
  9947. end;
  9948. var
  9949. _EnumMetaFile: Pointer;
  9950. function EnumMetaFile;
  9951. begin
  9952. GetProcedureAddress(_EnumMetaFile, gdi32, 'EnumMetaFile');
  9953. asm
  9954. MOV ESP, EBP
  9955. POP EBP
  9956. JMP [_EnumMetaFile]
  9957. end;
  9958. end;
  9959. var
  9960. _CloseEnhMetaFile: Pointer;
  9961. function CloseEnhMetaFile;
  9962. begin
  9963. GetProcedureAddress(_CloseEnhMetaFile, gdi32, 'CloseEnhMetaFile');
  9964. asm
  9965. MOV ESP, EBP
  9966. POP EBP
  9967. JMP [_CloseEnhMetaFile]
  9968. end;
  9969. end;
  9970. var
  9971. _CopyEnhMetaFileA: Pointer;
  9972. function CopyEnhMetaFileA;
  9973. begin
  9974. GetProcedureAddress(_CopyEnhMetaFileA, gdi32, 'CopyEnhMetaFileA');
  9975. asm
  9976. MOV ESP, EBP
  9977. POP EBP
  9978. JMP [_CopyEnhMetaFileA]
  9979. end;
  9980. end;
  9981. var
  9982. _CopyEnhMetaFileW: Pointer;
  9983. function CopyEnhMetaFileW;
  9984. begin
  9985. GetProcedureAddress(_CopyEnhMetaFileW, gdi32, 'CopyEnhMetaFileW');
  9986. asm
  9987. MOV ESP, EBP
  9988. POP EBP
  9989. JMP [_CopyEnhMetaFileW]
  9990. end;
  9991. end;
  9992. var
  9993. _CopyEnhMetaFile: Pointer;
  9994. function CopyEnhMetaFile;
  9995. begin
  9996. GetProcedureAddress(_CopyEnhMetaFile, gdi32, 'CopyEnhMetaFile' + AWSuffix);
  9997. asm
  9998. MOV ESP, EBP
  9999. POP EBP
  10000. JMP [_CopyEnhMetaFile]
  10001. end;
  10002. end;
  10003. var
  10004. _CreateEnhMetaFileA: Pointer;
  10005. function CreateEnhMetaFileA;
  10006. begin
  10007. GetProcedureAddress(_CreateEnhMetaFileA, gdi32, 'CreateEnhMetaFileA');
  10008. asm
  10009. MOV ESP, EBP
  10010. POP EBP
  10011. JMP [_CreateEnhMetaFileA]
  10012. end;
  10013. end;
  10014. var
  10015. _CreateEnhMetaFileW: Pointer;
  10016. function CreateEnhMetaFileW;
  10017. begin
  10018. GetProcedureAddress(_CreateEnhMetaFileW, gdi32, 'CreateEnhMetaFileW');
  10019. asm
  10020. MOV ESP, EBP
  10021. POP EBP
  10022. JMP [_CreateEnhMetaFileW]
  10023. end;
  10024. end;
  10025. var
  10026. _CreateEnhMetaFile: Pointer;
  10027. function CreateEnhMetaFile;
  10028. begin
  10029. GetProcedureAddress(_CreateEnhMetaFile, gdi32, 'CreateEnhMetaFile' + AWSuffix);
  10030. asm
  10031. MOV ESP, EBP
  10032. POP EBP
  10033. JMP [_CreateEnhMetaFile]
  10034. end;
  10035. end;
  10036. var
  10037. _DeleteEnhMetaFile: Pointer;
  10038. function DeleteEnhMetaFile;
  10039. begin
  10040. GetProcedureAddress(_DeleteEnhMetaFile, gdi32, 'DeleteEnhMetaFile');
  10041. asm
  10042. MOV ESP, EBP
  10043. POP EBP
  10044. JMP [_DeleteEnhMetaFile]
  10045. end;
  10046. end;
  10047. var
  10048. _EnumEnhMetaFile: Pointer;
  10049. function EnumEnhMetaFile;
  10050. begin
  10051. GetProcedureAddress(_EnumEnhMetaFile, gdi32, 'EnumEnhMetaFile');
  10052. asm
  10053. MOV ESP, EBP
  10054. POP EBP
  10055. JMP [_EnumEnhMetaFile]
  10056. end;
  10057. end;
  10058. var
  10059. _GetEnhMetaFileA: Pointer;
  10060. function GetEnhMetaFileA;
  10061. begin
  10062. GetProcedureAddress(_GetEnhMetaFileA, gdi32, 'GetEnhMetaFileA');
  10063. asm
  10064. MOV ESP, EBP
  10065. POP EBP
  10066. JMP [_GetEnhMetaFileA]
  10067. end;
  10068. end;
  10069. var
  10070. _GetEnhMetaFileW: Pointer;
  10071. function GetEnhMetaFileW;
  10072. begin
  10073. GetProcedureAddress(_GetEnhMetaFileW, gdi32, 'GetEnhMetaFileW');
  10074. asm
  10075. MOV ESP, EBP
  10076. POP EBP
  10077. JMP [_GetEnhMetaFileW]
  10078. end;
  10079. end;
  10080. var
  10081. _GetEnhMetaFile: Pointer;
  10082. function GetEnhMetaFile;
  10083. begin
  10084. GetProcedureAddress(_GetEnhMetaFile, gdi32, 'GetEnhMetaFile' + AWSuffix);
  10085. asm
  10086. MOV ESP, EBP
  10087. POP EBP
  10088. JMP [_GetEnhMetaFile]
  10089. end;
  10090. end;
  10091. var
  10092. _GetEnhMetaFileBits: Pointer;
  10093. function GetEnhMetaFileBits;
  10094. begin
  10095. GetProcedureAddress(_GetEnhMetaFileBits, gdi32, 'GetEnhMetaFileBits');
  10096. asm
  10097. MOV ESP, EBP
  10098. POP EBP
  10099. JMP [_GetEnhMetaFileBits]
  10100. end;
  10101. end;
  10102. var
  10103. _GetEnhMetaFileDescriptionA: Pointer;
  10104. function GetEnhMetaFileDescriptionA;
  10105. begin
  10106. GetProcedureAddress(_GetEnhMetaFileDescriptionA, gdi32, 'GetEnhMetaFileDescriptionA');
  10107. asm
  10108. MOV ESP, EBP
  10109. POP EBP
  10110. JMP [_GetEnhMetaFileDescriptionA]
  10111. end;
  10112. end;
  10113. var
  10114. _GetEnhMetaFileDescriptionW: Pointer;
  10115. function GetEnhMetaFileDescriptionW;
  10116. begin
  10117. GetProcedureAddress(_GetEnhMetaFileDescriptionW, gdi32, 'GetEnhMetaFileDescriptionW');
  10118. asm
  10119. MOV ESP, EBP
  10120. POP EBP
  10121. JMP [_GetEnhMetaFileDescriptionW]
  10122. end;
  10123. end;
  10124. var
  10125. _GetEnhMetaFileDescription: Pointer;
  10126. function GetEnhMetaFileDescription;
  10127. begin
  10128. GetProcedureAddress(_GetEnhMetaFileDescription, gdi32, 'GetEnhMetaFileDescription' + AWSuffix);
  10129. asm
  10130. MOV ESP, EBP
  10131. POP EBP
  10132. JMP [_GetEnhMetaFileDescription]
  10133. end;
  10134. end;
  10135. var
  10136. _GetEnhMetaFileHeader: Pointer;
  10137. function GetEnhMetaFileHeader;
  10138. begin
  10139. GetProcedureAddress(_GetEnhMetaFileHeader, gdi32, 'GetEnhMetaFileHeader');
  10140. asm
  10141. MOV ESP, EBP
  10142. POP EBP
  10143. JMP [_GetEnhMetaFileHeader]
  10144. end;
  10145. end;
  10146. var
  10147. _GetEnhMetaFilePaletteEntries: Pointer;
  10148. function GetEnhMetaFilePaletteEntries;
  10149. begin
  10150. GetProcedureAddress(_GetEnhMetaFilePaletteEntries, gdi32, 'GetEnhMetaFilePaletteEntries');
  10151. asm
  10152. MOV ESP, EBP
  10153. POP EBP
  10154. JMP [_GetEnhMetaFilePaletteEntries]
  10155. end;
  10156. end;
  10157. var
  10158. _GetEnhMetaFilePixelFormat: Pointer;
  10159. function GetEnhMetaFilePixelFormat;
  10160. begin
  10161. GetProcedureAddress(_GetEnhMetaFilePixelFormat, gdi32, 'GetEnhMetaFilePixelFormat');
  10162. asm
  10163. MOV ESP, EBP
  10164. POP EBP
  10165. JMP [_GetEnhMetaFilePixelFormat]
  10166. end;
  10167. end;
  10168. var
  10169. _GetWinMetaFileBits: Pointer;
  10170. function GetWinMetaFileBits;
  10171. begin
  10172. GetProcedureAddress(_GetWinMetaFileBits, gdi32, 'GetWinMetaFileBits');
  10173. asm
  10174. MOV ESP, EBP
  10175. POP EBP
  10176. JMP [_GetWinMetaFileBits]
  10177. end;
  10178. end;
  10179. var
  10180. _PlayEnhMetaFile: Pointer;
  10181. function PlayEnhMetaFile;
  10182. begin
  10183. GetProcedureAddress(_PlayEnhMetaFile, gdi32, 'PlayEnhMetaFile');
  10184. asm
  10185. MOV ESP, EBP
  10186. POP EBP
  10187. JMP [_PlayEnhMetaFile]
  10188. end;
  10189. end;
  10190. var
  10191. _PlayEnhMetaFileRecord: Pointer;
  10192. function PlayEnhMetaFileRecord;
  10193. begin
  10194. GetProcedureAddress(_PlayEnhMetaFileRecord, gdi32, 'PlayEnhMetaFileRecord');
  10195. asm
  10196. MOV ESP, EBP
  10197. POP EBP
  10198. JMP [_PlayEnhMetaFileRecord]
  10199. end;
  10200. end;
  10201. var
  10202. _SetEnhMetaFileBits: Pointer;
  10203. function SetEnhMetaFileBits;
  10204. begin
  10205. GetProcedureAddress(_SetEnhMetaFileBits, gdi32, 'SetEnhMetaFileBits');
  10206. asm
  10207. MOV ESP, EBP
  10208. POP EBP
  10209. JMP [_SetEnhMetaFileBits]
  10210. end;
  10211. end;
  10212. var
  10213. _SetWinMetaFileBits: Pointer;
  10214. function SetWinMetaFileBits;
  10215. begin
  10216. GetProcedureAddress(_SetWinMetaFileBits, gdi32, 'SetWinMetaFileBits');
  10217. asm
  10218. MOV ESP, EBP
  10219. POP EBP
  10220. JMP [_SetWinMetaFileBits]
  10221. end;
  10222. end;
  10223. var
  10224. _GdiComment: Pointer;
  10225. function GdiComment;
  10226. begin
  10227. GetProcedureAddress(_GdiComment, gdi32, 'GdiComment');
  10228. asm
  10229. MOV ESP, EBP
  10230. POP EBP
  10231. JMP [_GdiComment]
  10232. end;
  10233. end;
  10234. var
  10235. _GetTextMetricsA: Pointer;
  10236. function GetTextMetricsA;
  10237. begin
  10238. GetProcedureAddress(_GetTextMetricsA, gdi32, 'GetTextMetricsA');
  10239. asm
  10240. MOV ESP, EBP
  10241. POP EBP
  10242. JMP [_GetTextMetricsA]
  10243. end;
  10244. end;
  10245. var
  10246. _GetTextMetricsW: Pointer;
  10247. function GetTextMetricsW;
  10248. begin
  10249. GetProcedureAddress(_GetTextMetricsW, gdi32, 'GetTextMetricsW');
  10250. asm
  10251. MOV ESP, EBP
  10252. POP EBP
  10253. JMP [_GetTextMetricsW]
  10254. end;
  10255. end;
  10256. var
  10257. _GetTextMetrics: Pointer;
  10258. function GetTextMetrics;
  10259. begin
  10260. GetProcedureAddress(_GetTextMetrics, gdi32, 'GetTextMetrics' + AWSuffix);
  10261. asm
  10262. MOV ESP, EBP
  10263. POP EBP
  10264. JMP [_GetTextMetrics]
  10265. end;
  10266. end;
  10267. var
  10268. _AngleArc: Pointer;
  10269. function AngleArc;
  10270. begin
  10271. GetProcedureAddress(_AngleArc, gdi32, 'AngleArc');
  10272. asm
  10273. MOV ESP, EBP
  10274. POP EBP
  10275. JMP [_AngleArc]
  10276. end;
  10277. end;
  10278. var
  10279. _PolyPolyline: Pointer;
  10280. function PolyPolyline;
  10281. begin
  10282. GetProcedureAddress(_PolyPolyline, gdi32, 'PolyPolyline');
  10283. asm
  10284. MOV ESP, EBP
  10285. POP EBP
  10286. JMP [_PolyPolyline]
  10287. end;
  10288. end;
  10289. var
  10290. _GetWorldTransform: Pointer;
  10291. function GetWorldTransform;
  10292. begin
  10293. GetProcedureAddress(_GetWorldTransform, gdi32, 'GetWorldTransform');
  10294. asm
  10295. MOV ESP, EBP
  10296. POP EBP
  10297. JMP [_GetWorldTransform]
  10298. end;
  10299. end;
  10300. var
  10301. _SetWorldTransform: Pointer;
  10302. function SetWorldTransform;
  10303. begin
  10304. GetProcedureAddress(_SetWorldTransform, gdi32, 'SetWorldTransform');
  10305. asm
  10306. MOV ESP, EBP
  10307. POP EBP
  10308. JMP [_SetWorldTransform]
  10309. end;
  10310. end;
  10311. var
  10312. _ModifyWorldTransform: Pointer;
  10313. function ModifyWorldTransform;
  10314. begin
  10315. GetProcedureAddress(_ModifyWorldTransform, gdi32, 'ModifyWorldTransform');
  10316. asm
  10317. MOV ESP, EBP
  10318. POP EBP
  10319. JMP [_ModifyWorldTransform]
  10320. end;
  10321. end;
  10322. var
  10323. _CombineTransform: Pointer;
  10324. function CombineTransform;
  10325. begin
  10326. GetProcedureAddress(_CombineTransform, gdi32, 'CombineTransform');
  10327. asm
  10328. MOV ESP, EBP
  10329. POP EBP
  10330. JMP [_CombineTransform]
  10331. end;
  10332. end;
  10333. var
  10334. _CreateDIBSection: Pointer;
  10335. function CreateDIBSection;
  10336. begin
  10337. GetProcedureAddress(_CreateDIBSection, gdi32, 'CreateDIBSection');
  10338. asm
  10339. MOV ESP, EBP
  10340. POP EBP
  10341. JMP [_CreateDIBSection]
  10342. end;
  10343. end;
  10344. var
  10345. _GetDIBColorTable: Pointer;
  10346. function GetDIBColorTable;
  10347. begin
  10348. GetProcedureAddress(_GetDIBColorTable, gdi32, 'GetDIBColorTable');
  10349. asm
  10350. MOV ESP, EBP
  10351. POP EBP
  10352. JMP [_GetDIBColorTable]
  10353. end;
  10354. end;
  10355. var
  10356. _SetDIBColorTable: Pointer;
  10357. function SetDIBColorTable;
  10358. begin
  10359. GetProcedureAddress(_SetDIBColorTable, gdi32, 'SetDIBColorTable');
  10360. asm
  10361. MOV ESP, EBP
  10362. POP EBP
  10363. JMP [_SetDIBColorTable]
  10364. end;
  10365. end;
  10366. var
  10367. _SetColorAdjustment: Pointer;
  10368. function SetColorAdjustment;
  10369. begin
  10370. GetProcedureAddress(_SetColorAdjustment, gdi32, 'SetColorAdjustment');
  10371. asm
  10372. MOV ESP, EBP
  10373. POP EBP
  10374. JMP [_SetColorAdjustment]
  10375. end;
  10376. end;
  10377. var
  10378. _GetColorAdjustment: Pointer;
  10379. function GetColorAdjustment;
  10380. begin
  10381. GetProcedureAddress(_GetColorAdjustment, gdi32, 'GetColorAdjustment');
  10382. asm
  10383. MOV ESP, EBP
  10384. POP EBP
  10385. JMP [_GetColorAdjustment]
  10386. end;
  10387. end;
  10388. var
  10389. _CreateHalftonePalette: Pointer;
  10390. function CreateHalftonePalette;
  10391. begin
  10392. GetProcedureAddress(_CreateHalftonePalette, gdi32, 'CreateHalftonePalette');
  10393. asm
  10394. MOV ESP, EBP
  10395. POP EBP
  10396. JMP [_CreateHalftonePalette]
  10397. end;
  10398. end;
  10399. var
  10400. _StartDocA: Pointer;
  10401. function StartDocA;
  10402. begin
  10403. GetProcedureAddress(_StartDocA, gdi32, 'StartDocA');
  10404. asm
  10405. MOV ESP, EBP
  10406. POP EBP
  10407. JMP [_StartDocA]
  10408. end;
  10409. end;
  10410. var
  10411. _StartDocW: Pointer;
  10412. function StartDocW;
  10413. begin
  10414. GetProcedureAddress(_StartDocW, gdi32, 'StartDocW');
  10415. asm
  10416. MOV ESP, EBP
  10417. POP EBP
  10418. JMP [_StartDocW]
  10419. end;
  10420. end;
  10421. var
  10422. _StartDoc: Pointer;
  10423. function StartDoc;
  10424. begin
  10425. GetProcedureAddress(_StartDoc, gdi32, 'StartDoc' + AWSuffix);
  10426. asm
  10427. MOV ESP, EBP
  10428. POP EBP
  10429. JMP [_StartDoc]
  10430. end;
  10431. end;
  10432. var
  10433. __EndDoc: Pointer;
  10434. function EndDoc;
  10435. begin
  10436. GetProcedureAddress(__EndDoc, gdi32, 'EndDoc');
  10437. asm
  10438. MOV ESP, EBP
  10439. POP EBP
  10440. JMP [__EndDoc]
  10441. end;
  10442. end;
  10443. var
  10444. _StartPage: Pointer;
  10445. function StartPage;
  10446. begin
  10447. GetProcedureAddress(_StartPage, gdi32, 'StartPage');
  10448. asm
  10449. MOV ESP, EBP
  10450. POP EBP
  10451. JMP [_StartPage]
  10452. end;
  10453. end;
  10454. var
  10455. _EndPage: Pointer;
  10456. function EndPage;
  10457. begin
  10458. GetProcedureAddress(_EndPage, gdi32, 'EndPage');
  10459. asm
  10460. MOV ESP, EBP
  10461. POP EBP
  10462. JMP [_EndPage]
  10463. end;
  10464. end;
  10465. var
  10466. __AbortDoc: Pointer;
  10467. function AbortDoc;
  10468. begin
  10469. GetProcedureAddress(__AbortDoc, gdi32, 'AbortDoc');
  10470. asm
  10471. MOV ESP, EBP
  10472. POP EBP
  10473. JMP [__AbortDoc]
  10474. end;
  10475. end;
  10476. var
  10477. _SetAbortProc: Pointer;
  10478. function SetAbortProc;
  10479. begin
  10480. GetProcedureAddress(_SetAbortProc, gdi32, 'SetAbortProc');
  10481. asm
  10482. MOV ESP, EBP
  10483. POP EBP
  10484. JMP [_SetAbortProc]
  10485. end;
  10486. end;
  10487. var
  10488. _AbortPath: Pointer;
  10489. function AbortPath;
  10490. begin
  10491. GetProcedureAddress(_AbortPath, gdi32, 'AbortPath');
  10492. asm
  10493. MOV ESP, EBP
  10494. POP EBP
  10495. JMP [_AbortPath]
  10496. end;
  10497. end;
  10498. var
  10499. _ArcTo: Pointer;
  10500. function ArcTo;
  10501. begin
  10502. GetProcedureAddress(_ArcTo, gdi32, 'ArcTo');
  10503. asm
  10504. MOV ESP, EBP
  10505. POP EBP
  10506. JMP [_ArcTo]
  10507. end;
  10508. end;
  10509. var
  10510. _BeginPath: Pointer;
  10511. function BeginPath;
  10512. begin
  10513. GetProcedureAddress(_BeginPath, gdi32, 'BeginPath');
  10514. asm
  10515. MOV ESP, EBP
  10516. POP EBP
  10517. JMP [_BeginPath]
  10518. end;
  10519. end;
  10520. var
  10521. _CloseFigure: Pointer;
  10522. function CloseFigure;
  10523. begin
  10524. GetProcedureAddress(_CloseFigure, gdi32, 'CloseFigure');
  10525. asm
  10526. MOV ESP, EBP
  10527. POP EBP
  10528. JMP [_CloseFigure]
  10529. end;
  10530. end;
  10531. var
  10532. _EndPath: Pointer;
  10533. function EndPath;
  10534. begin
  10535. GetProcedureAddress(_EndPath, gdi32, 'EndPath');
  10536. asm
  10537. MOV ESP, EBP
  10538. POP EBP
  10539. JMP [_EndPath]
  10540. end;
  10541. end;
  10542. var
  10543. _FillPath: Pointer;
  10544. function FillPath;
  10545. begin
  10546. GetProcedureAddress(_FillPath, gdi32, 'FillPath');
  10547. asm
  10548. MOV ESP, EBP
  10549. POP EBP
  10550. JMP [_FillPath]
  10551. end;
  10552. end;
  10553. var
  10554. _FlattenPath: Pointer;
  10555. function FlattenPath;
  10556. begin
  10557. GetProcedureAddress(_FlattenPath, gdi32, 'FlattenPath');
  10558. asm
  10559. MOV ESP, EBP
  10560. POP EBP
  10561. JMP [_FlattenPath]
  10562. end;
  10563. end;
  10564. var
  10565. _GetPath: Pointer;
  10566. function GetPath;
  10567. begin
  10568. GetProcedureAddress(_GetPath, gdi32, 'GetPath');
  10569. asm
  10570. MOV ESP, EBP
  10571. POP EBP
  10572. JMP [_GetPath]
  10573. end;
  10574. end;
  10575. var
  10576. _PathToRegion: Pointer;
  10577. function PathToRegion;
  10578. begin
  10579. GetProcedureAddress(_PathToRegion, gdi32, 'PathToRegion');
  10580. asm
  10581. MOV ESP, EBP
  10582. POP EBP
  10583. JMP [_PathToRegion]
  10584. end;
  10585. end;
  10586. var
  10587. _PolyDraw: Pointer;
  10588. function PolyDraw;
  10589. begin
  10590. GetProcedureAddress(_PolyDraw, gdi32, 'PolyDraw');
  10591. asm
  10592. MOV ESP, EBP
  10593. POP EBP
  10594. JMP [_PolyDraw]
  10595. end;
  10596. end;
  10597. var
  10598. _SelectClipPath: Pointer;
  10599. function SelectClipPath;
  10600. begin
  10601. GetProcedureAddress(_SelectClipPath, gdi32, 'SelectClipPath');
  10602. asm
  10603. MOV ESP, EBP
  10604. POP EBP
  10605. JMP [_SelectClipPath]
  10606. end;
  10607. end;
  10608. var
  10609. _SetArcDirection: Pointer;
  10610. function SetArcDirection;
  10611. begin
  10612. GetProcedureAddress(_SetArcDirection, gdi32, 'SetArcDirection');
  10613. asm
  10614. MOV ESP, EBP
  10615. POP EBP
  10616. JMP [_SetArcDirection]
  10617. end;
  10618. end;
  10619. var
  10620. _SetMiterLimit: Pointer;
  10621. function SetMiterLimit;
  10622. begin
  10623. GetProcedureAddress(_SetMiterLimit, gdi32, 'SetMiterLimit');
  10624. asm
  10625. MOV ESP, EBP
  10626. POP EBP
  10627. JMP [_SetMiterLimit]
  10628. end;
  10629. end;
  10630. var
  10631. _StrokeAndFillPath: Pointer;
  10632. function StrokeAndFillPath;
  10633. begin
  10634. GetProcedureAddress(_StrokeAndFillPath, gdi32, 'StrokeAndFillPath');
  10635. asm
  10636. MOV ESP, EBP
  10637. POP EBP
  10638. JMP [_StrokeAndFillPath]
  10639. end;
  10640. end;
  10641. var
  10642. _StrokePath: Pointer;
  10643. function StrokePath;
  10644. begin
  10645. GetProcedureAddress(_StrokePath, gdi32, 'StrokePath');
  10646. asm
  10647. MOV ESP, EBP
  10648. POP EBP
  10649. JMP [_StrokePath]
  10650. end;
  10651. end;
  10652. var
  10653. _WidenPath: Pointer;
  10654. function WidenPath;
  10655. begin
  10656. GetProcedureAddress(_WidenPath, gdi32, 'WidenPath');
  10657. asm
  10658. MOV ESP, EBP
  10659. POP EBP
  10660. JMP [_WidenPath]
  10661. end;
  10662. end;
  10663. var
  10664. _ExtCreatePen: Pointer;
  10665. function ExtCreatePen;
  10666. begin
  10667. GetProcedureAddress(_ExtCreatePen, gdi32, 'ExtCreatePen');
  10668. asm
  10669. MOV ESP, EBP
  10670. POP EBP
  10671. JMP [_ExtCreatePen]
  10672. end;
  10673. end;
  10674. var
  10675. _GetMiterLimit: Pointer;
  10676. function GetMiterLimit;
  10677. begin
  10678. GetProcedureAddress(_GetMiterLimit, gdi32, 'GetMiterLimit');
  10679. asm
  10680. MOV ESP, EBP
  10681. POP EBP
  10682. JMP [_GetMiterLimit]
  10683. end;
  10684. end;
  10685. var
  10686. _GetArcDirection: Pointer;
  10687. function GetArcDirection;
  10688. begin
  10689. GetProcedureAddress(_GetArcDirection, gdi32, 'GetArcDirection');
  10690. asm
  10691. MOV ESP, EBP
  10692. POP EBP
  10693. JMP [_GetArcDirection]
  10694. end;
  10695. end;
  10696. var
  10697. _GetObjectA: Pointer;
  10698. function GetObjectA;
  10699. begin
  10700. GetProcedureAddress(_GetObjectA, gdi32, 'GetObjectA');
  10701. asm
  10702. MOV ESP, EBP
  10703. POP EBP
  10704. JMP [_GetObjectA]
  10705. end;
  10706. end;
  10707. var
  10708. _GetObjectW: Pointer;
  10709. function GetObjectW;
  10710. begin
  10711. GetProcedureAddress(_GetObjectW, gdi32, 'GetObjectW');
  10712. asm
  10713. MOV ESP, EBP
  10714. POP EBP
  10715. JMP [_GetObjectW]
  10716. end;
  10717. end;
  10718. var
  10719. _GetObject: Pointer;
  10720. function GetObject;
  10721. begin
  10722. GetProcedureAddress(_GetObject, gdi32, 'GetObject' + AWSuffix);
  10723. asm
  10724. MOV ESP, EBP
  10725. POP EBP
  10726. JMP [_GetObject]
  10727. end;
  10728. end;
  10729. var
  10730. _MoveToEx: Pointer;
  10731. function MoveToEx;
  10732. begin
  10733. GetProcedureAddress(_MoveToEx, gdi32, 'MoveToEx');
  10734. asm
  10735. MOV ESP, EBP
  10736. POP EBP
  10737. JMP [_MoveToEx]
  10738. end;
  10739. end;
  10740. var
  10741. _TextOutA: Pointer;
  10742. function TextOutA;
  10743. begin
  10744. GetProcedureAddress(_TextOutA, gdi32, 'TextOutA');
  10745. asm
  10746. MOV ESP, EBP
  10747. POP EBP
  10748. JMP [_TextOutA]
  10749. end;
  10750. end;
  10751. var
  10752. _TextOutW: Pointer;
  10753. function TextOutW;
  10754. begin
  10755. GetProcedureAddress(_TextOutW, gdi32, 'TextOutW');
  10756. asm
  10757. MOV ESP, EBP
  10758. POP EBP
  10759. JMP [_TextOutW]
  10760. end;
  10761. end;
  10762. var
  10763. _TextOut: Pointer;
  10764. function TextOut;
  10765. begin
  10766. GetProcedureAddress(_TextOut, gdi32, 'TextOut' + AWSuffix);
  10767. asm
  10768. MOV ESP, EBP
  10769. POP EBP
  10770. JMP [_TextOut]
  10771. end;
  10772. end;
  10773. var
  10774. _ExtTextOutA: Pointer;
  10775. function ExtTextOutA;
  10776. begin
  10777. GetProcedureAddress(_ExtTextOutA, gdi32, 'ExtTextOutA');
  10778. asm
  10779. MOV ESP, EBP
  10780. POP EBP
  10781. JMP [_ExtTextOutA]
  10782. end;
  10783. end;
  10784. var
  10785. _ExtTextOutW: Pointer;
  10786. function ExtTextOutW;
  10787. begin
  10788. GetProcedureAddress(_ExtTextOutW, gdi32, 'ExtTextOutW');
  10789. asm
  10790. MOV ESP, EBP
  10791. POP EBP
  10792. JMP [_ExtTextOutW]
  10793. end;
  10794. end;
  10795. var
  10796. _ExtTextOut: Pointer;
  10797. function ExtTextOut;
  10798. begin
  10799. GetProcedureAddress(_ExtTextOut, gdi32, 'ExtTextOut' + AWSuffix);
  10800. asm
  10801. MOV ESP, EBP
  10802. POP EBP
  10803. JMP [_ExtTextOut]
  10804. end;
  10805. end;
  10806. var
  10807. _PolyTextOutA: Pointer;
  10808. function PolyTextOutA;
  10809. begin
  10810. GetProcedureAddress(_PolyTextOutA, gdi32, 'PolyTextOutA');
  10811. asm
  10812. MOV ESP, EBP
  10813. POP EBP
  10814. JMP [_PolyTextOutA]
  10815. end;
  10816. end;
  10817. var
  10818. _PolyTextOutW: Pointer;
  10819. function PolyTextOutW;
  10820. begin
  10821. GetProcedureAddress(_PolyTextOutW, gdi32, 'PolyTextOutW');
  10822. asm
  10823. MOV ESP, EBP
  10824. POP EBP
  10825. JMP [_PolyTextOutW]
  10826. end;
  10827. end;
  10828. var
  10829. _PolyTextOut: Pointer;
  10830. function PolyTextOut;
  10831. begin
  10832. GetProcedureAddress(_PolyTextOut, gdi32, 'PolyTextOut' + AWSuffix);
  10833. asm
  10834. MOV ESP, EBP
  10835. POP EBP
  10836. JMP [_PolyTextOut]
  10837. end;
  10838. end;
  10839. var
  10840. _CreatePolygonRgn: Pointer;
  10841. function CreatePolygonRgn;
  10842. begin
  10843. GetProcedureAddress(_CreatePolygonRgn, gdi32, 'CreatePolygonRgn');
  10844. asm
  10845. MOV ESP, EBP
  10846. POP EBP
  10847. JMP [_CreatePolygonRgn]
  10848. end;
  10849. end;
  10850. var
  10851. _DPtoLP: Pointer;
  10852. function DPtoLP;
  10853. begin
  10854. GetProcedureAddress(_DPtoLP, gdi32, 'DPtoLP');
  10855. asm
  10856. MOV ESP, EBP
  10857. POP EBP
  10858. JMP [_DPtoLP]
  10859. end;
  10860. end;
  10861. var
  10862. _LPtoDP: Pointer;
  10863. function LPtoDP;
  10864. begin
  10865. GetProcedureAddress(_LPtoDP, gdi32, 'LPtoDP');
  10866. asm
  10867. MOV ESP, EBP
  10868. POP EBP
  10869. JMP [_LPtoDP]
  10870. end;
  10871. end;
  10872. var
  10873. _Polygon: Pointer;
  10874. function Polygon;
  10875. begin
  10876. GetProcedureAddress(_Polygon, gdi32, 'Polygon');
  10877. asm
  10878. MOV ESP, EBP
  10879. POP EBP
  10880. JMP [_Polygon]
  10881. end;
  10882. end;
  10883. var
  10884. _Polyline: Pointer;
  10885. function Polyline;
  10886. begin
  10887. GetProcedureAddress(_Polyline, gdi32, 'Polyline');
  10888. asm
  10889. MOV ESP, EBP
  10890. POP EBP
  10891. JMP [_Polyline]
  10892. end;
  10893. end;
  10894. var
  10895. _PolyBezier: Pointer;
  10896. function PolyBezier;
  10897. begin
  10898. GetProcedureAddress(_PolyBezier, gdi32, 'PolyBezier');
  10899. asm
  10900. MOV ESP, EBP
  10901. POP EBP
  10902. JMP [_PolyBezier]
  10903. end;
  10904. end;
  10905. var
  10906. _PolyBezierTo: Pointer;
  10907. function PolyBezierTo;
  10908. begin
  10909. GetProcedureAddress(_PolyBezierTo, gdi32, 'PolyBezierTo');
  10910. asm
  10911. MOV ESP, EBP
  10912. POP EBP
  10913. JMP [_PolyBezierTo]
  10914. end;
  10915. end;
  10916. var
  10917. _PolylineTo: Pointer;
  10918. function PolylineTo;
  10919. begin
  10920. GetProcedureAddress(_PolylineTo, gdi32, 'PolylineTo');
  10921. asm
  10922. MOV ESP, EBP
  10923. POP EBP
  10924. JMP [_PolylineTo]
  10925. end;
  10926. end;
  10927. var
  10928. _SetViewportExtEx: Pointer;
  10929. function SetViewportExtEx;
  10930. begin
  10931. GetProcedureAddress(_SetViewportExtEx, gdi32, 'SetViewportExtEx');
  10932. asm
  10933. MOV ESP, EBP
  10934. POP EBP
  10935. JMP [_SetViewportExtEx]
  10936. end;
  10937. end;
  10938. var
  10939. _SetViewportOrgEx: Pointer;
  10940. function SetViewportOrgEx;
  10941. begin
  10942. GetProcedureAddress(_SetViewportOrgEx, gdi32, 'SetViewportOrgEx');
  10943. asm
  10944. MOV ESP, EBP
  10945. POP EBP
  10946. JMP [_SetViewportOrgEx]
  10947. end;
  10948. end;
  10949. var
  10950. _SetWindowExtEx: Pointer;
  10951. function SetWindowExtEx;
  10952. begin
  10953. GetProcedureAddress(_SetWindowExtEx, gdi32, 'SetWindowExtEx');
  10954. asm
  10955. MOV ESP, EBP
  10956. POP EBP
  10957. JMP [_SetWindowExtEx]
  10958. end;
  10959. end;
  10960. var
  10961. _SetWindowOrgEx: Pointer;
  10962. function SetWindowOrgEx;
  10963. begin
  10964. GetProcedureAddress(_SetWindowOrgEx, gdi32, 'SetWindowOrgEx');
  10965. asm
  10966. MOV ESP, EBP
  10967. POP EBP
  10968. JMP [_SetWindowOrgEx]
  10969. end;
  10970. end;
  10971. var
  10972. _OffsetViewportOrgEx: Pointer;
  10973. function OffsetViewportOrgEx;
  10974. begin
  10975. GetProcedureAddress(_OffsetViewportOrgEx, gdi32, 'OffsetViewportOrgEx');
  10976. asm
  10977. MOV ESP, EBP
  10978. POP EBP
  10979. JMP [_OffsetViewportOrgEx]
  10980. end;
  10981. end;
  10982. var
  10983. _OffsetWindowOrgEx: Pointer;
  10984. function OffsetWindowOrgEx;
  10985. begin
  10986. GetProcedureAddress(_OffsetWindowOrgEx, gdi32, 'OffsetWindowOrgEx');
  10987. asm
  10988. MOV ESP, EBP
  10989. POP EBP
  10990. JMP [_OffsetWindowOrgEx]
  10991. end;
  10992. end;
  10993. var
  10994. _ScaleViewportExtEx: Pointer;
  10995. function ScaleViewportExtEx;
  10996. begin
  10997. GetProcedureAddress(_ScaleViewportExtEx, gdi32, 'ScaleViewportExtEx');
  10998. asm
  10999. MOV ESP, EBP
  11000. POP EBP
  11001. JMP [_ScaleViewportExtEx]
  11002. end;
  11003. end;
  11004. var
  11005. _ScaleWindowExtEx: Pointer;
  11006. function ScaleWindowExtEx;
  11007. begin
  11008. GetProcedureAddress(_ScaleWindowExtEx, gdi32, 'ScaleWindowExtEx');
  11009. asm
  11010. MOV ESP, EBP
  11011. POP EBP
  11012. JMP [_ScaleWindowExtEx]
  11013. end;
  11014. end;
  11015. var
  11016. _SetBitmapDimensionEx: Pointer;
  11017. function SetBitmapDimensionEx;
  11018. begin
  11019. GetProcedureAddress(_SetBitmapDimensionEx, gdi32, 'SetBitmapDimensionEx');
  11020. asm
  11021. MOV ESP, EBP
  11022. POP EBP
  11023. JMP [_SetBitmapDimensionEx]
  11024. end;
  11025. end;
  11026. var
  11027. _SetBrushOrgEx: Pointer;
  11028. function SetBrushOrgEx;
  11029. begin
  11030. GetProcedureAddress(_SetBrushOrgEx, gdi32, 'SetBrushOrgEx');
  11031. asm
  11032. MOV ESP, EBP
  11033. POP EBP
  11034. JMP [_SetBrushOrgEx]
  11035. end;
  11036. end;
  11037. var
  11038. _GetTextFaceA: Pointer;
  11039. function GetTextFaceA;
  11040. begin
  11041. GetProcedureAddress(_GetTextFaceA, gdi32, 'GetTextFaceA');
  11042. asm
  11043. MOV ESP, EBP
  11044. POP EBP
  11045. JMP [_GetTextFaceA]
  11046. end;
  11047. end;
  11048. var
  11049. _GetTextFaceW: Pointer;
  11050. function GetTextFaceW;
  11051. begin
  11052. GetProcedureAddress(_GetTextFaceW, gdi32, 'GetTextFaceW');
  11053. asm
  11054. MOV ESP, EBP
  11055. POP EBP
  11056. JMP [_GetTextFaceW]
  11057. end;
  11058. end;
  11059. var
  11060. _GetTextFace: Pointer;
  11061. function GetTextFace;
  11062. begin
  11063. GetProcedureAddress(_GetTextFace, gdi32, 'GetTextFace' + AWSuffix);
  11064. asm
  11065. MOV ESP, EBP
  11066. POP EBP
  11067. JMP [_GetTextFace]
  11068. end;
  11069. end;
  11070. var
  11071. _GetKerningPairsA: Pointer;
  11072. function GetKerningPairsA;
  11073. begin
  11074. GetProcedureAddress(_GetKerningPairsA, gdi32, 'GetKerningPairsA');
  11075. asm
  11076. MOV ESP, EBP
  11077. POP EBP
  11078. JMP [_GetKerningPairsA]
  11079. end;
  11080. end;
  11081. var
  11082. _GetKerningPairsW: Pointer;
  11083. function GetKerningPairsW;
  11084. begin
  11085. GetProcedureAddress(_GetKerningPairsW, gdi32, 'GetKerningPairsW');
  11086. asm
  11087. MOV ESP, EBP
  11088. POP EBP
  11089. JMP [_GetKerningPairsW]
  11090. end;
  11091. end;
  11092. var
  11093. _GetKerningPairs: Pointer;
  11094. function GetKerningPairs;
  11095. begin
  11096. GetProcedureAddress(_GetKerningPairs, gdi32, 'GetKerningPairs' + AWSuffix);
  11097. asm
  11098. MOV ESP, EBP
  11099. POP EBP
  11100. JMP [_GetKerningPairs]
  11101. end;
  11102. end;
  11103. var
  11104. _GetDCOrgEx: Pointer;
  11105. function GetDCOrgEx;
  11106. begin
  11107. GetProcedureAddress(_GetDCOrgEx, gdi32, 'GetDCOrgEx');
  11108. asm
  11109. MOV ESP, EBP
  11110. POP EBP
  11111. JMP [_GetDCOrgEx]
  11112. end;
  11113. end;
  11114. var
  11115. _FixBrushOrgEx: Pointer;
  11116. function FixBrushOrgEx;
  11117. begin
  11118. GetProcedureAddress(_FixBrushOrgEx, gdi32, 'FixBrushOrgEx');
  11119. asm
  11120. MOV ESP, EBP
  11121. POP EBP
  11122. JMP [_FixBrushOrgEx]
  11123. end;
  11124. end;
  11125. var
  11126. _UnrealizeObject: Pointer;
  11127. function UnrealizeObject;
  11128. begin
  11129. GetProcedureAddress(_UnrealizeObject, gdi32, 'UnrealizeObject');
  11130. asm
  11131. MOV ESP, EBP
  11132. POP EBP
  11133. JMP [_UnrealizeObject]
  11134. end;
  11135. end;
  11136. var
  11137. _GdiFlush: Pointer;
  11138. function GdiFlush;
  11139. begin
  11140. GetProcedureAddress(_GdiFlush, gdi32, 'GdiFlush');
  11141. asm
  11142. MOV ESP, EBP
  11143. POP EBP
  11144. JMP [_GdiFlush]
  11145. end;
  11146. end;
  11147. var
  11148. _GdiSetBatchLimit: Pointer;
  11149. function GdiSetBatchLimit;
  11150. begin
  11151. GetProcedureAddress(_GdiSetBatchLimit, gdi32, 'GdiSetBatchLimit');
  11152. asm
  11153. MOV ESP, EBP
  11154. POP EBP
  11155. JMP [_GdiSetBatchLimit]
  11156. end;
  11157. end;
  11158. var
  11159. _GdiGetBatchLimit: Pointer;
  11160. function GdiGetBatchLimit;
  11161. begin
  11162. GetProcedureAddress(_GdiGetBatchLimit, gdi32, 'GdiGetBatchLimit');
  11163. asm
  11164. MOV ESP, EBP
  11165. POP EBP
  11166. JMP [_GdiGetBatchLimit]
  11167. end;
  11168. end;
  11169. var
  11170. _SetICMMode: Pointer;
  11171. function SetICMMode;
  11172. begin
  11173. GetProcedureAddress(_SetICMMode, gdi32, 'SetICMMode');
  11174. asm
  11175. MOV ESP, EBP
  11176. POP EBP
  11177. JMP [_SetICMMode]
  11178. end;
  11179. end;
  11180. var
  11181. _CheckColorsInGamut: Pointer;
  11182. function CheckColorsInGamut;
  11183. begin
  11184. GetProcedureAddress(_CheckColorsInGamut, gdi32, 'CheckColorsInGamut');
  11185. asm
  11186. MOV ESP, EBP
  11187. POP EBP
  11188. JMP [_CheckColorsInGamut]
  11189. end;
  11190. end;
  11191. var
  11192. _GetColorSpace: Pointer;
  11193. function GetColorSpace;
  11194. begin
  11195. GetProcedureAddress(_GetColorSpace, gdi32, 'GetColorSpace');
  11196. asm
  11197. MOV ESP, EBP
  11198. POP EBP
  11199. JMP [_GetColorSpace]
  11200. end;
  11201. end;
  11202. var
  11203. _GetLogColorSpaceA: Pointer;
  11204. function GetLogColorSpaceA;
  11205. begin
  11206. GetProcedureAddress(_GetLogColorSpaceA, gdi32, 'GetLogColorSpaceA');
  11207. asm
  11208. MOV ESP, EBP
  11209. POP EBP
  11210. JMP [_GetLogColorSpaceA]
  11211. end;
  11212. end;
  11213. var
  11214. _GetLogColorSpaceW: Pointer;
  11215. function GetLogColorSpaceW;
  11216. begin
  11217. GetProcedureAddress(_GetLogColorSpaceW, gdi32, 'GetLogColorSpaceW');
  11218. asm
  11219. MOV ESP, EBP
  11220. POP EBP
  11221. JMP [_GetLogColorSpaceW]
  11222. end;
  11223. end;
  11224. var
  11225. _GetLogColorSpace: Pointer;
  11226. function GetLogColorSpace;
  11227. begin
  11228. GetProcedureAddress(_GetLogColorSpace, gdi32, 'GetLogColorSpace' + AWSuffix);
  11229. asm
  11230. MOV ESP, EBP
  11231. POP EBP
  11232. JMP [_GetLogColorSpace]
  11233. end;
  11234. end;
  11235. var
  11236. _CreateColorSpaceA: Pointer;
  11237. function CreateColorSpaceA;
  11238. begin
  11239. GetProcedureAddress(_CreateColorSpaceA, gdi32, 'CreateColorSpaceA');
  11240. asm
  11241. MOV ESP, EBP
  11242. POP EBP
  11243. JMP [_CreateColorSpaceA]
  11244. end;
  11245. end;
  11246. var
  11247. _CreateColorSpaceW: Pointer;
  11248. function CreateColorSpaceW;
  11249. begin
  11250. GetProcedureAddress(_CreateColorSpaceW, gdi32, 'CreateColorSpaceW');
  11251. asm
  11252. MOV ESP, EBP
  11253. POP EBP
  11254. JMP [_CreateColorSpaceW]
  11255. end;
  11256. end;
  11257. var
  11258. _CreateColorSpace: Pointer;
  11259. function CreateColorSpace;
  11260. begin
  11261. GetProcedureAddress(_CreateColorSpace, gdi32, 'CreateColorSpace' + AWSuffix);
  11262. asm
  11263. MOV ESP, EBP
  11264. POP EBP
  11265. JMP [_CreateColorSpace]
  11266. end;
  11267. end;
  11268. var
  11269. _SetColorSpace: Pointer;
  11270. function SetColorSpace;
  11271. begin
  11272. GetProcedureAddress(_SetColorSpace, gdi32, 'SetColorSpace');
  11273. asm
  11274. MOV ESP, EBP
  11275. POP EBP
  11276. JMP [_SetColorSpace]
  11277. end;
  11278. end;
  11279. var
  11280. _DeleteColorSpace: Pointer;
  11281. function DeleteColorSpace;
  11282. begin
  11283. GetProcedureAddress(_DeleteColorSpace, gdi32, 'DeleteColorSpace');
  11284. asm
  11285. MOV ESP, EBP
  11286. POP EBP
  11287. JMP [_DeleteColorSpace]
  11288. end;
  11289. end;
  11290. var
  11291. _GetICMProfileA: Pointer;
  11292. function GetICMProfileA;
  11293. begin
  11294. GetProcedureAddress(_GetICMProfileA, gdi32, 'GetICMProfileA');
  11295. asm
  11296. MOV ESP, EBP
  11297. POP EBP
  11298. JMP [_GetICMProfileA]
  11299. end;
  11300. end;
  11301. var
  11302. _GetICMProfileW: Pointer;
  11303. function GetICMProfileW;
  11304. begin
  11305. GetProcedureAddress(_GetICMProfileW, gdi32, 'GetICMProfileW');
  11306. asm
  11307. MOV ESP, EBP
  11308. POP EBP
  11309. JMP [_GetICMProfileW]
  11310. end;
  11311. end;
  11312. var
  11313. _GetICMProfile: Pointer;
  11314. function GetICMProfile;
  11315. begin
  11316. GetProcedureAddress(_GetICMProfile, gdi32, 'GetICMProfile' + AWSuffix);
  11317. asm
  11318. MOV ESP, EBP
  11319. POP EBP
  11320. JMP [_GetICMProfile]
  11321. end;
  11322. end;
  11323. var
  11324. _SetICMProfileA: Pointer;
  11325. function SetICMProfileA;
  11326. begin
  11327. GetProcedureAddress(_SetICMProfileA, gdi32, 'SetICMProfileA');
  11328. asm
  11329. MOV ESP, EBP
  11330. POP EBP
  11331. JMP [_SetICMProfileA]
  11332. end;
  11333. end;
  11334. var
  11335. _SetICMProfileW: Pointer;
  11336. function SetICMProfileW;
  11337. begin
  11338. GetProcedureAddress(_SetICMProfileW, gdi32, 'SetICMProfileW');
  11339. asm
  11340. MOV ESP, EBP
  11341. POP EBP
  11342. JMP [_SetICMProfileW]
  11343. end;
  11344. end;
  11345. var
  11346. _SetICMProfile: Pointer;
  11347. function SetICMProfile;
  11348. begin
  11349. GetProcedureAddress(_SetICMProfile, gdi32, 'SetICMProfile' + AWSuffix);
  11350. asm
  11351. MOV ESP, EBP
  11352. POP EBP
  11353. JMP [_SetICMProfile]
  11354. end;
  11355. end;
  11356. var
  11357. _GetDeviceGammaRamp: Pointer;
  11358. function GetDeviceGammaRamp;
  11359. begin
  11360. GetProcedureAddress(_GetDeviceGammaRamp, gdi32, 'GetDeviceGammaRamp');
  11361. asm
  11362. MOV ESP, EBP
  11363. POP EBP
  11364. JMP [_GetDeviceGammaRamp]
  11365. end;
  11366. end;
  11367. var
  11368. _SetDeviceGammaRamp: Pointer;
  11369. function SetDeviceGammaRamp;
  11370. begin
  11371. GetProcedureAddress(_SetDeviceGammaRamp, gdi32, 'SetDeviceGammaRamp');
  11372. asm
  11373. MOV ESP, EBP
  11374. POP EBP
  11375. JMP [_SetDeviceGammaRamp]
  11376. end;
  11377. end;
  11378. var
  11379. _ColorMatchToTarget: Pointer;
  11380. function ColorMatchToTarget;
  11381. begin
  11382. GetProcedureAddress(_ColorMatchToTarget, gdi32, 'ColorMatchToTarget');
  11383. asm
  11384. MOV ESP, EBP
  11385. POP EBP
  11386. JMP [_ColorMatchToTarget]
  11387. end;
  11388. end;
  11389. var
  11390. _EnumICMProfilesA: Pointer;
  11391. function EnumICMProfilesA;
  11392. begin
  11393. GetProcedureAddress(_EnumICMProfilesA, gdi32, 'EnumICMProfilesA');
  11394. asm
  11395. MOV ESP, EBP
  11396. POP EBP
  11397. JMP [_EnumICMProfilesA]
  11398. end;
  11399. end;
  11400. var
  11401. _EnumICMProfilesW: Pointer;
  11402. function EnumICMProfilesW;
  11403. begin
  11404. GetProcedureAddress(_EnumICMProfilesW, gdi32, 'EnumICMProfilesW');
  11405. asm
  11406. MOV ESP, EBP
  11407. POP EBP
  11408. JMP [_EnumICMProfilesW]
  11409. end;
  11410. end;
  11411. var
  11412. _EnumICMProfiles: Pointer;
  11413. function EnumICMProfiles;
  11414. begin
  11415. GetProcedureAddress(_EnumICMProfiles, gdi32, 'EnumICMProfiles' + AWSuffix);
  11416. asm
  11417. MOV ESP, EBP
  11418. POP EBP
  11419. JMP [_EnumICMProfiles]
  11420. end;
  11421. end;
  11422. var
  11423. _UpdateICMRegKeyA: Pointer;
  11424. function UpdateICMRegKeyA;
  11425. begin
  11426. GetProcedureAddress(_UpdateICMRegKeyA, gdi32, 'UpdateICMRegKeyA');
  11427. asm
  11428. MOV ESP, EBP
  11429. POP EBP
  11430. JMP [_UpdateICMRegKeyA]
  11431. end;
  11432. end;
  11433. var
  11434. _UpdateICMRegKeyW: Pointer;
  11435. function UpdateICMRegKeyW;
  11436. begin
  11437. GetProcedureAddress(_UpdateICMRegKeyW, gdi32, 'UpdateICMRegKeyW');
  11438. asm
  11439. MOV ESP, EBP
  11440. POP EBP
  11441. JMP [_UpdateICMRegKeyW]
  11442. end;
  11443. end;
  11444. var
  11445. _UpdateICMRegKey: Pointer;
  11446. function UpdateICMRegKey;
  11447. begin
  11448. GetProcedureAddress(_UpdateICMRegKey, gdi32, 'UpdateICMRegKey' + AWSuffix);
  11449. asm
  11450. MOV ESP, EBP
  11451. POP EBP
  11452. JMP [_UpdateICMRegKey]
  11453. end;
  11454. end;
  11455. var
  11456. _ColorCorrectPalette: Pointer;
  11457. function ColorCorrectPalette;
  11458. begin
  11459. GetProcedureAddress(_ColorCorrectPalette, gdi32, 'ColorCorrectPalette');
  11460. asm
  11461. MOV ESP, EBP
  11462. POP EBP
  11463. JMP [_ColorCorrectPalette]
  11464. end;
  11465. end;
  11466. var
  11467. _wglCopyContext: Pointer;
  11468. function wglCopyContext;
  11469. begin
  11470. GetProcedureAddress(_wglCopyContext, opengl32, 'wglCopyContext');
  11471. asm
  11472. MOV ESP, EBP
  11473. POP EBP
  11474. JMP [_wglCopyContext]
  11475. end;
  11476. end;
  11477. var
  11478. _wglCreateContext: Pointer;
  11479. function wglCreateContext;
  11480. begin
  11481. GetProcedureAddress(_wglCreateContext, opengl32, 'wglCreateContext');
  11482. asm
  11483. MOV ESP, EBP
  11484. POP EBP
  11485. JMP [_wglCreateContext]
  11486. end;
  11487. end;
  11488. var
  11489. _wglCreateLayerContext: Pointer;
  11490. function wglCreateLayerContext;
  11491. begin
  11492. GetProcedureAddress(_wglCreateLayerContext, opengl32, 'wglCreateLayerContext');
  11493. asm
  11494. MOV ESP, EBP
  11495. POP EBP
  11496. JMP [_wglCreateLayerContext]
  11497. end;
  11498. end;
  11499. var
  11500. _wglDeleteContext: Pointer;
  11501. function wglDeleteContext;
  11502. begin
  11503. GetProcedureAddress(_wglDeleteContext, opengl32, 'wglDeleteContext');
  11504. asm
  11505. MOV ESP, EBP
  11506. POP EBP
  11507. JMP [_wglDeleteContext]
  11508. end;
  11509. end;
  11510. var
  11511. _wglGetCurrentContext: Pointer;
  11512. function wglGetCurrentContext;
  11513. begin
  11514. GetProcedureAddress(_wglGetCurrentContext, opengl32, 'wglGetCurrentContext');
  11515. asm
  11516. MOV ESP, EBP
  11517. POP EBP
  11518. JMP [_wglGetCurrentContext]
  11519. end;
  11520. end;
  11521. var
  11522. _wglGetCurrentDC: Pointer;
  11523. function wglGetCurrentDC;
  11524. begin
  11525. GetProcedureAddress(_wglGetCurrentDC, opengl32, 'wglGetCurrentDC');
  11526. asm
  11527. MOV ESP, EBP
  11528. POP EBP
  11529. JMP [_wglGetCurrentDC]
  11530. end;
  11531. end;
  11532. var
  11533. _wglGetProcAddress: Pointer;
  11534. function wglGetProcAddress;
  11535. begin
  11536. GetProcedureAddress(_wglGetProcAddress, opengl32, 'wglGetProcAddress');
  11537. asm
  11538. MOV ESP, EBP
  11539. POP EBP
  11540. JMP [_wglGetProcAddress]
  11541. end;
  11542. end;
  11543. var
  11544. _wglMakeCurrent: Pointer;
  11545. function wglMakeCurrent;
  11546. begin
  11547. GetProcedureAddress(_wglMakeCurrent, opengl32, 'wglMakeCurrent');
  11548. asm
  11549. MOV ESP, EBP
  11550. POP EBP
  11551. JMP [_wglMakeCurrent]
  11552. end;
  11553. end;
  11554. var
  11555. _wglShareLists: Pointer;
  11556. function wglShareLists;
  11557. begin
  11558. GetProcedureAddress(_wglShareLists, opengl32, 'wglShareLists');
  11559. asm
  11560. MOV ESP, EBP
  11561. POP EBP
  11562. JMP [_wglShareLists]
  11563. end;
  11564. end;
  11565. var
  11566. _wglUseFontBitmapsA: Pointer;
  11567. function wglUseFontBitmapsA;
  11568. begin
  11569. GetProcedureAddress(_wglUseFontBitmapsA, opengl32, 'wglUseFontBitmapsA');
  11570. asm
  11571. MOV ESP, EBP
  11572. POP EBP
  11573. JMP [_wglUseFontBitmapsA]
  11574. end;
  11575. end;
  11576. var
  11577. _wglUseFontBitmapsW: Pointer;
  11578. function wglUseFontBitmapsW;
  11579. begin
  11580. GetProcedureAddress(_wglUseFontBitmapsW, opengl32, 'wglUseFontBitmapsW');
  11581. asm
  11582. MOV ESP, EBP
  11583. POP EBP
  11584. JMP [_wglUseFontBitmapsW]
  11585. end;
  11586. end;
  11587. var
  11588. _wglUseFontBitmaps: Pointer;
  11589. function wglUseFontBitmaps;
  11590. begin
  11591. GetProcedureAddress(_wglUseFontBitmaps, opengl32, 'wglUseFontBitmaps' + AWSuffix);
  11592. asm
  11593. MOV ESP, EBP
  11594. POP EBP
  11595. JMP [_wglUseFontBitmaps]
  11596. end;
  11597. end;
  11598. var
  11599. _SwapBuffers: Pointer;
  11600. function SwapBuffers;
  11601. begin
  11602. GetProcedureAddress(_SwapBuffers, opengl32, 'SwapBuffers');
  11603. asm
  11604. MOV ESP, EBP
  11605. POP EBP
  11606. JMP [_SwapBuffers]
  11607. end;
  11608. end;
  11609. var
  11610. _wglUseFontOutlinesA: Pointer;
  11611. function wglUseFontOutlinesA;
  11612. begin
  11613. GetProcedureAddress(_wglUseFontOutlinesA, opengl32, 'wglUseFontOutlinesA');
  11614. asm
  11615. MOV ESP, EBP
  11616. POP EBP
  11617. JMP [_wglUseFontOutlinesA]
  11618. end;
  11619. end;
  11620. var
  11621. _wglUseFontOutlinesW: Pointer;
  11622. function wglUseFontOutlinesW;
  11623. begin
  11624. GetProcedureAddress(_wglUseFontOutlinesW, opengl32, 'wglUseFontOutlinesW');
  11625. asm
  11626. MOV ESP, EBP
  11627. POP EBP
  11628. JMP [_wglUseFontOutlinesW]
  11629. end;
  11630. end;
  11631. var
  11632. _wglUseFontOutlines: Pointer;
  11633. function wglUseFontOutlines;
  11634. begin
  11635. GetProcedureAddress(_wglUseFontOutlines, opengl32, 'wglUseFontOutlines' + AWSuffix);
  11636. asm
  11637. MOV ESP, EBP
  11638. POP EBP
  11639. JMP [_wglUseFontOutlines]
  11640. end;
  11641. end;
  11642. var
  11643. _wglDescribeLayerPlane: Pointer;
  11644. function wglDescribeLayerPlane;
  11645. begin
  11646. GetProcedureAddress(_wglDescribeLayerPlane, opengl32, 'wglDescribeLayerPlane');
  11647. asm
  11648. MOV ESP, EBP
  11649. POP EBP
  11650. JMP [_wglDescribeLayerPlane]
  11651. end;
  11652. end;
  11653. var
  11654. _wglSetLayerPaletteEntries: Pointer;
  11655. function wglSetLayerPaletteEntries;
  11656. begin
  11657. GetProcedureAddress(_wglSetLayerPaletteEntries, opengl32, 'wglSetLayerPaletteEntries');
  11658. asm
  11659. MOV ESP, EBP
  11660. POP EBP
  11661. JMP [_wglSetLayerPaletteEntries]
  11662. end;
  11663. end;
  11664. var
  11665. _wglGetLayerPaletteEntries: Pointer;
  11666. function wglGetLayerPaletteEntries;
  11667. begin
  11668. GetProcedureAddress(_wglGetLayerPaletteEntries, opengl32, 'wglGetLayerPaletteEntries');
  11669. asm
  11670. MOV ESP, EBP
  11671. POP EBP
  11672. JMP [_wglGetLayerPaletteEntries]
  11673. end;
  11674. end;
  11675. var
  11676. _wglRealizeLayerPalette: Pointer;
  11677. function wglRealizeLayerPalette;
  11678. begin
  11679. GetProcedureAddress(_wglRealizeLayerPalette, opengl32, 'wglRealizeLayerPalette');
  11680. asm
  11681. MOV ESP, EBP
  11682. POP EBP
  11683. JMP [_wglRealizeLayerPalette]
  11684. end;
  11685. end;
  11686. var
  11687. _wglSwapLayerBuffers: Pointer;
  11688. function wglSwapLayerBuffers;
  11689. begin
  11690. GetProcedureAddress(_wglSwapLayerBuffers, opengl32, 'wglSwapLayerBuffers');
  11691. asm
  11692. MOV ESP, EBP
  11693. POP EBP
  11694. JMP [_wglSwapLayerBuffers]
  11695. end;
  11696. end;
  11697. var
  11698. _wglSwapMultipleBuffers: Pointer;
  11699. function wglSwapMultipleBuffers;
  11700. begin
  11701. GetProcedureAddress(_wglSwapMultipleBuffers, opengl32, 'wglSwapMultipleBuffers');
  11702. asm
  11703. MOV ESP, EBP
  11704. POP EBP
  11705. JMP [_wglSwapMultipleBuffers]
  11706. end;
  11707. end;
  11708. {$ELSE}
  11709. function AddFontResourceA; external gdi32 name 'AddFontResourceA';
  11710. function AddFontResourceW; external gdi32 name 'AddFontResourceW';
  11711. function AddFontResource; external gdi32 name 'AddFontResource' + AWSuffix;
  11712. function AnimatePalette; external gdi32 name 'AnimatePalette';
  11713. function Arc; external gdi32 name 'Arc';
  11714. function BitBlt; external gdi32 name 'BitBlt';
  11715. function CancelDC; external gdi32 name 'CancelDC';
  11716. function Chord; external gdi32 name 'Chord';
  11717. function ChoosePixelFormat; external gdi32 name 'ChoosePixelFormat';
  11718. function CloseMetaFile; external gdi32 name 'CloseMetaFile';
  11719. function CombineRgn; external gdi32 name 'CombineRgn';
  11720. function CopyMetaFileA; external gdi32 name 'CopyMetaFileA';
  11721. function CopyMetaFileW; external gdi32 name 'CopyMetaFileW';
  11722. function CopyMetaFile; external gdi32 name 'CopyMetaFile' + AWSuffix;
  11723. function CreateBitmap; external gdi32 name 'CreateBitmap';
  11724. function CreateBitmapIndirect; external gdi32 name 'CreateBitmapIndirect';
  11725. function CreateBrushIndirect; external gdi32 name 'CreateBrushIndirect';
  11726. function CreateCompatibleBitmap; external gdi32 name 'CreateCompatibleBitmap';
  11727. function CreateDiscardableBitmap; external gdi32 name 'CreateDiscardableBitmap';
  11728. function CreateCompatibleDC; external gdi32 name 'CreateCompatibleDC';
  11729. function CreateDCA; external gdi32 name 'CreateDCA';
  11730. function CreateDCW; external gdi32 name 'CreateDCW';
  11731. function CreateDC; external gdi32 name 'CreateDC' + AWSuffix;
  11732. function CreateDIBitmap; external gdi32 name 'CreateDIBitmap';
  11733. function CreateDIBPatternBrush; external gdi32 name 'CreateDIBPatternBrush';
  11734. function CreateDIBPatternBrushPt; external gdi32 name 'CreateDIBPatternBrushPt';
  11735. function CreateEllipticRgn; external gdi32 name 'CreateEllipticRgn';
  11736. function CreateEllipticRgnIndirect; external gdi32 name 'CreateEllipticRgnIndirect';
  11737. function CreateFontIndirectA; external gdi32 name 'CreateFontIndirectA';
  11738. function CreateFontIndirectW; external gdi32 name 'CreateFontIndirectW';
  11739. function CreateFontIndirect; external gdi32 name 'CreateFontIndirect' + AWSuffix;
  11740. function CreateFontA; external gdi32 name 'CreateFontA';
  11741. function CreateFontW; external gdi32 name 'CreateFontW';
  11742. function CreateFont; external gdi32 name 'CreateFont' + AWSuffix;
  11743. function CreateHatchBrush; external gdi32 name 'CreateHatchBrush';
  11744. function CreateICA; external gdi32 name 'CreateICA';
  11745. function CreateICW; external gdi32 name 'CreateICW';
  11746. function CreateIC; external gdi32 name 'CreateIC' + AWSuffix;
  11747. function CreateMetaFileA; external gdi32 name 'CreateMetaFileA';
  11748. function CreateMetaFileW; external gdi32 name 'CreateMetaFileW';
  11749. function CreateMetaFile; external gdi32 name 'CreateMetaFile' + AWSuffix;
  11750. function CreatePalette; external gdi32 name 'CreatePalette';
  11751. function CreatePen; external gdi32 name 'CreatePen';
  11752. function CreatePenIndirect; external gdi32 name 'CreatePenIndirect';
  11753. function CreatePolyPolygonRgn; external gdi32 name 'CreatePolyPolygonRgn';
  11754. function CreatePatternBrush; external gdi32 name 'CreatePatternBrush';
  11755. function CreateRectRgn; external gdi32 name 'CreateRectRgn';
  11756. function CreateRectRgnIndirect; external gdi32 name 'CreateRectRgnIndirect';
  11757. function CreateRoundRectRgn; external gdi32 name 'CreateRoundRectRgn';
  11758. function CreateScalableFontResourceA; external gdi32 name 'CreateScalableFontResourceA';
  11759. function CreateScalableFontResourceW; external gdi32 name 'CreateScalableFontResourceW';
  11760. function CreateScalableFontResource; external gdi32 name 'CreateScalableFontResource' + AWSuffix;
  11761. function CreateSolidBrush; external gdi32 name 'CreateSolidBrush';
  11762. function DeleteDC; external gdi32 name 'DeleteDC';
  11763. function DeleteMetaFile; external gdi32 name 'DeleteMetaFile';
  11764. function DeleteObject; external gdi32 name 'DeleteObject';
  11765. function DescribePixelFormat; external gdi32 name 'DescribePixelFormat';
  11766. function DeviceCapabilitiesA; external winspool32 name 'DeviceCapabilitiesA';
  11767. function DeviceCapabilitiesW; external winspool32 name 'DeviceCapabilitiesW';
  11768. function DeviceCapabilities; external winspool32 name 'DeviceCapabilities' + AWSuffix;
  11769. function DrawEscape; external gdi32 name 'DrawEscape';
  11770. function Ellipse; external gdi32 name 'Ellipse';
  11771. function EnumFontFamiliesExA; external gdi32 name 'EnumFontFamiliesExA';
  11772. function EnumFontFamiliesExW; external gdi32 name 'EnumFontFamiliesExW';
  11773. function EnumFontFamiliesEx; external gdi32 name 'EnumFontFamiliesEx' + AWSuffix;
  11774. function EnumFontFamiliesA; external gdi32 name 'EnumFontFamiliesA';
  11775. function EnumFontFamiliesW; external gdi32 name 'EnumFontFamiliesW';
  11776. function EnumFontFamilies; external gdi32 name 'EnumFontFamilies' + AWSuffix;
  11777. function EnumFontsA; external gdi32 name 'EnumFontsA';
  11778. function EnumFontsW; external gdi32 name 'EnumFontsW';
  11779. function EnumFonts; external gdi32 name 'EnumFonts' + AWSuffix;
  11780. function EnumObjects; external gdi32 name 'EnumObjects';
  11781. function EqualRgn; external gdi32 name 'EqualRgn';
  11782. function Escape; external gdi32 name 'Escape';
  11783. function ExtEscape; external gdi32 name 'ExtEscape';
  11784. function ExcludeClipRect; external gdi32 name 'ExcludeClipRect';
  11785. function ExtCreateRegion; external gdi32 name 'ExtCreateRegion';
  11786. function ExtFloodFill; external gdi32 name 'ExtFloodFill';
  11787. function FillRgn; external gdi32 name 'FillRgn';
  11788. function FloodFill; external gdi32 name 'FloodFill';
  11789. function FrameRgn; external gdi32 name 'FrameRgn';
  11790. function GetROP2; external gdi32 name 'GetROP2';
  11791. function GetAspectRatioFilterEx; external gdi32 name 'GetAspectRatioFilterEx';
  11792. function GetBkColor; external gdi32 name 'GetBkColor';
  11793. function GetDCBrushColor; external gdi32 name 'GetDCBrushColor';
  11794. function GetDCPenColor; external gdi32 name 'GetDCPenColor';
  11795. function GetBkMode; external gdi32 name 'GetBkMode';
  11796. function GetBitmapBits; external gdi32 name 'GetBitmapBits';
  11797. function GetBitmapDimensionEx; external gdi32 name 'GetBitmapDimensionEx';
  11798. function GetBoundsRect; external gdi32 name 'GetBoundsRect';
  11799. function GetBrushOrgEx; external gdi32 name 'GetBrushOrgEx';
  11800. function GetCharWidthA; external gdi32 name 'GetCharWidthA';
  11801. function GetCharWidthW; external gdi32 name 'GetCharWidthW';
  11802. function GetCharWidth; external gdi32 name 'GetCharWidth' + AWSuffix;
  11803. function GetCharWidth32A; external gdi32 name 'GetCharWidth32A';
  11804. function GetCharWidth32W; external gdi32 name 'GetCharWidth32W';
  11805. function GetCharWidth32; external gdi32 name 'GetCharWidth32' + AWSuffix;
  11806. function GetCharWidthFloatA; external gdi32 name 'GetCharWidthFloatA';
  11807. function GetCharWidthFloatW; external gdi32 name 'GetCharWidthFloatW';
  11808. function GetCharWidthFloat; external gdi32 name 'GetCharWidthFloat' + AWSuffix;
  11809. function GetCharABCWidthsA; external gdi32 name 'GetCharABCWidthsA';
  11810. function GetCharABCWidthsW; external gdi32 name 'GetCharABCWidthsW';
  11811. function GetCharABCWidths; external gdi32 name 'GetCharABCWidths' + AWSuffix;
  11812. function GetCharABCWidthsFloatA; external gdi32 name 'GetCharABCWidthsFloatA';
  11813. function GetCharABCWidthsFloatW; external gdi32 name 'GetCharABCWidthsFloatW';
  11814. function GetCharABCWidthsFloat; external gdi32 name 'GetCharABCWidthsFloat' + AWSuffix;
  11815. function GetClipBox; external gdi32 name 'GetClipBox';
  11816. function GetClipRgn; external gdi32 name 'GetClipRgn';
  11817. function GetMetaRgn; external gdi32 name 'GetMetaRgn';
  11818. function GetCurrentObject; external gdi32 name 'GetCurrentObject';
  11819. function GetCurrentPositionEx; external gdi32 name 'GetCurrentPositionEx';
  11820. function GetDeviceCaps; external gdi32 name 'GetDeviceCaps';
  11821. function GetDIBits; external gdi32 name 'GetDIBits';
  11822. function GetFontData; external gdi32 name 'GetFontData';
  11823. function GetGlyphOutlineA; external gdi32 name 'GetGlyphOutlineA';
  11824. function GetGlyphOutlineW; external gdi32 name 'GetGlyphOutlineW';
  11825. function GetGlyphOutline; external gdi32 name 'GetGlyphOutline' + AWSuffix;
  11826. function GetGraphicsMode; external gdi32 name 'GetGraphicsMode';
  11827. function GetMapMode; external gdi32 name 'GetMapMode';
  11828. function GetMetaFileBitsEx; external gdi32 name 'GetMetaFileBitsEx';
  11829. function GetMetaFileA; external gdi32 name 'GetMetaFileA';
  11830. function GetMetaFileW; external gdi32 name 'GetMetaFileW';
  11831. function GetMetaFile; external gdi32 name 'GetMetaFile' + AWSuffix;
  11832. function GetNearestColor; external gdi32 name 'GetNearestColor';
  11833. function GetNearestPaletteIndex; external gdi32 name 'GetNearestPaletteIndex';
  11834. function GetObjectType; external gdi32 name 'GetObjectType';
  11835. function GetOutlineTextMetricsA; external gdi32 name 'GetOutlineTextMetricsA';
  11836. function GetOutlineTextMetricsW; external gdi32 name 'GetOutlineTextMetricsW';
  11837. function GetOutlineTextMetrics; external gdi32 name 'GetOutlineTextMetrics' + AWSuffix;
  11838. function GetPaletteEntries; external gdi32 name 'GetPaletteEntries';
  11839. function GetPixel; external gdi32 name 'GetPixel';
  11840. function GetPixelFormat; external gdi32 name 'GetPixelFormat';
  11841. function GetPolyFillMode; external gdi32 name 'GetPolyFillMode';
  11842. function GetRasterizerCaps; external gdi32 name 'GetRasterizerCaps';
  11843. function GetRandomRgn; external gdi32 name 'GetRandomRgn';
  11844. function GetRegionData; external gdi32 name 'GetRegionData';
  11845. function GetRgnBox; external gdi32 name 'GetRgnBox';
  11846. function GetStockObject; external gdi32 name 'GetStockObject';
  11847. function GetStretchBltMode; external gdi32 name 'GetStretchBltMode';
  11848. function GetSystemPaletteEntries; external gdi32 name 'GetSystemPaletteEntries';
  11849. function GetSystemPaletteUse; external gdi32 name 'GetSystemPaletteUse';
  11850. function GetTextCharacterExtra; external gdi32 name 'GetTextCharacterExtra';
  11851. function GetTextAlign; external gdi32 name 'GetTextAlign';
  11852. function GetTextColor; external gdi32 name 'GetTextColor';
  11853. function GetTextExtentPointA; external gdi32 name 'GetTextExtentPointA';
  11854. function GetTextExtentPointW; external gdi32 name 'GetTextExtentPointW';
  11855. function GetTextExtentPoint; external gdi32 name 'GetTextExtentPoint' + AWSuffix;
  11856. function GetTextExtentPoint32A; external gdi32 name 'GetTextExtentPoint32A';
  11857. function GetTextExtentPoint32W; external gdi32 name 'GetTextExtentPoint32W';
  11858. function GetTextExtentPoint32; external gdi32 name 'GetTextExtentPoint32' + AWSuffix;
  11859. function GetTextExtentExPointA; external gdi32 name 'GetTextExtentExPointA';
  11860. function GetTextExtentExPointW; external gdi32 name 'GetTextExtentExPointW';
  11861. function GetTextExtentExPoint; external gdi32 name 'GetTextExtentExPoint' + AWSuffix;
  11862. function GetTextCharset; external gdi32 name 'GetTextCharset';
  11863. function GetTextCharsetInfo; external gdi32 name 'GetTextCharsetInfo';
  11864. function TranslateCharsetInfo; external gdi32 name 'TranslateCharsetInfo';
  11865. function GetFontLanguageInfo; external gdi32 name 'GetFontLanguageInfo';
  11866. function GetCharacterPlacementA; external gdi32 name 'GetCharacterPlacementA';
  11867. function GetCharacterPlacementW; external gdi32 name 'GetCharacterPlacementW';
  11868. function GetCharacterPlacement; external gdi32 name 'GetCharacterPlacement' + AWSuffix;
  11869. function GetFontUnicodeRanges; external gdi32 name 'GetFontUnicodeRanges';
  11870. function GetGlyphIndicesA; external gdi32 name 'GetGlyphIndicesA';
  11871. function GetGlyphIndicesW; external gdi32 name 'GetGlyphIndicesW';
  11872. function GetGlyphIndices; external gdi32 name 'GetGlyphIndices' + AWSuffix;
  11873. function GetTextExtentPointI; external gdi32 name 'GetTextExtentPointI';
  11874. function GetTextExtentExPointI; external gdi32 name 'GetTextExtentExPointI';
  11875. function GetCharWidthI; external gdi32 name 'GetCharWidthI';
  11876. function GetCharABCWidthsI; external gdi32 name 'GetCharABCWidthsI';
  11877. function AddFontResourceExA; external gdi32 name 'AddFontResourceExA';
  11878. function AddFontResourceExW; external gdi32 name 'AddFontResourceExW';
  11879. function AddFontResourceEx; external gdi32 name 'AddFontResourceEx' + AWSuffix;
  11880. function RemoveFontResourceExA; external gdi32 name 'RemoveFontResourceExA';
  11881. function RemoveFontResourceExW; external gdi32 name 'RemoveFontResourceExW';
  11882. function RemoveFontResourceEx; external gdi32 name 'RemoveFontResourceEx' + AWSuffix;
  11883. function AddFontMemResourceEx; external gdi32 name 'AddFontMemResourceEx';
  11884. function RemoveFontMemResourceEx; external gdi32 name 'RemoveFontMemResourceEx';
  11885. function CreateFontIndirectExA; external gdi32 name 'CreateFontIndirectExA';
  11886. function CreateFontIndirectExW; external gdi32 name 'CreateFontIndirectExW';
  11887. function CreateFontIndirectEx; external gdi32 name 'CreateFontIndirectEx' + AWSuffix;
  11888. function GetViewportExtEx; external gdi32 name 'GetViewportExtEx';
  11889. function GetViewportOrgEx; external gdi32 name 'GetViewportOrgEx';
  11890. function GetWindowExtEx; external gdi32 name 'GetWindowExtEx';
  11891. function GetWindowOrgEx; external gdi32 name 'GetWindowOrgEx';
  11892. function IntersectClipRect; external gdi32 name 'IntersectClipRect';
  11893. function InvertRgn; external gdi32 name 'InvertRgn';
  11894. function LineDDA; external gdi32 name 'LineDDA';
  11895. function LineTo; external gdi32 name 'LineTo';
  11896. function MaskBlt; external gdi32 name 'MaskBlt';
  11897. function PlgBlt; external gdi32 name 'PlgBlt';
  11898. function OffsetClipRgn; external gdi32 name 'OffsetClipRgn';
  11899. function OffsetRgn; external gdi32 name 'OffsetRgn';
  11900. function PatBlt; external gdi32 name 'PatBlt';
  11901. function Pie; external gdi32 name 'Pie';
  11902. function PlayMetaFile; external gdi32 name 'PlayMetaFile';
  11903. function PaintRgn; external gdi32 name 'PaintRgn';
  11904. function PolyPolygon; external gdi32 name 'PolyPolygon';
  11905. function PtInRegion; external gdi32 name 'PtInRegion';
  11906. function PtVisible; external gdi32 name 'PtVisible';
  11907. function RectInRegion; external gdi32 name 'RectInRegion';
  11908. function RectVisible; external gdi32 name 'RectVisible';
  11909. function Rectangle; external gdi32 name 'Rectangle';
  11910. function RestoreDC; external gdi32 name 'RestoreDC';
  11911. function ResetDCA; external gdi32 name 'ResetDCA';
  11912. function ResetDCW; external gdi32 name 'ResetDCW';
  11913. function ResetDC; external gdi32 name 'ResetDC' + AWSuffix;
  11914. function RealizePalette; external gdi32 name 'RealizePalette';
  11915. function RemoveFontResourceA; external gdi32 name 'RemoveFontResourceA';
  11916. function RemoveFontResourceW; external gdi32 name 'RemoveFontResourceW';
  11917. function RemoveFontResource; external gdi32 name 'RemoveFontResource' + AWSuffix;
  11918. function RoundRect; external gdi32 name 'RoundRect';
  11919. function ResizePalette; external gdi32 name 'ResizePalette';
  11920. function SaveDC; external gdi32 name 'SaveDC';
  11921. function SelectClipRgn; external gdi32 name 'SelectClipRgn';
  11922. function ExtSelectClipRgn; external gdi32 name 'ExtSelectClipRgn';
  11923. function SetMetaRgn; external gdi32 name 'SetMetaRgn';
  11924. function SelectObject; external gdi32 name 'SelectObject';
  11925. function SelectPalette; external gdi32 name 'SelectPalette';
  11926. function SetBkColor; external gdi32 name 'SetBkColor';
  11927. function SetDCBrushColor; external gdi32 name 'SetDCBrushColor';
  11928. function SetDCPenColor; external gdi32 name 'SetDCPenColor';
  11929. function SetBkMode; external gdi32 name 'SetBkMode';
  11930. function SetBitmapBits; external gdi32 name 'SetBitmapBits';
  11931. function SetBoundsRect; external gdi32 name 'SetBoundsRect';
  11932. function SetDIBits; external gdi32 name 'SetDIBits';
  11933. function SetDIBitsToDevice; external gdi32 name 'SetDIBitsToDevice';
  11934. function SetMapperFlags; external gdi32 name 'SetMapperFlags';
  11935. function SetGraphicsMode; external gdi32 name 'SetGraphicsMode';
  11936. function SetMapMode; external gdi32 name 'SetMapMode';
  11937. function SetLayout; external gdi32 name 'SetLayout';
  11938. function GetLayout; external gdi32 name 'GetLayout';
  11939. function SetMetaFileBitsEx; external gdi32 name 'SetMetaFileBitsEx';
  11940. function SetPaletteEntries; external gdi32 name 'SetPaletteEntries';
  11941. function SetPixel; external gdi32 name 'SetPixel';
  11942. function SetPixelV; external gdi32 name 'SetPixelV';
  11943. function SetPixelFormat; external gdi32 name 'SetPixelFormat';
  11944. function SetPolyFillMode; external gdi32 name 'SetPolyFillMode';
  11945. function StretchBlt; external gdi32 name 'StretchBlt';
  11946. function SetRectRgn; external gdi32 name 'SetRectRgn';
  11947. function StretchDIBits; external gdi32 name 'StretchDIBits';
  11948. function SetROP2; external gdi32 name 'SetROP2';
  11949. function SetStretchBltMode; external gdi32 name 'SetStretchBltMode';
  11950. function SetSystemPaletteUse; external gdi32 name 'SetSystemPaletteUse';
  11951. function SetTextCharacterExtra; external gdi32 name 'SetTextCharacterExtra';
  11952. function SetTextColor; external gdi32 name 'SetTextColor';
  11953. function SetTextAlign; external gdi32 name 'SetTextAlign';
  11954. function SetTextJustification; external gdi32 name 'SetTextJustification';
  11955. function UpdateColors; external gdi32 name 'UpdateColors';
  11956. function AlphaBlend; external msimg32 name 'AlphaBlend';
  11957. function TransparentBlt; external msimg32 name 'TransparentBlt';
  11958. function GradientFill; external msimg32 name 'GradientFill';
  11959. function PlayMetaFileRecord; external gdi32 name 'PlayMetaFileRecord';
  11960. function EnumMetaFile; external gdi32 name 'EnumMetaFile';
  11961. function CloseEnhMetaFile; external gdi32 name 'CloseEnhMetaFile';
  11962. function CopyEnhMetaFileA; external gdi32 name 'CopyEnhMetaFileA';
  11963. function CopyEnhMetaFileW; external gdi32 name 'CopyEnhMetaFileW';
  11964. function CopyEnhMetaFile; external gdi32 name 'CopyEnhMetaFile' + AWSuffix;
  11965. function CreateEnhMetaFileA; external gdi32 name 'CreateEnhMetaFileA';
  11966. function CreateEnhMetaFileW; external gdi32 name 'CreateEnhMetaFileW';
  11967. function CreateEnhMetaFile; external gdi32 name 'CreateEnhMetaFile' + AWSuffix;
  11968. function DeleteEnhMetaFile; external gdi32 name 'DeleteEnhMetaFile';
  11969. function EnumEnhMetaFile; external gdi32 name 'EnumEnhMetaFile';
  11970. function GetEnhMetaFileA; external gdi32 name 'GetEnhMetaFileA';
  11971. function GetEnhMetaFileW; external gdi32 name 'GetEnhMetaFileW';
  11972. function GetEnhMetaFile; external gdi32 name 'GetEnhMetaFile' + AWSuffix;
  11973. function GetEnhMetaFileBits; external gdi32 name 'GetEnhMetaFileBits';
  11974. function GetEnhMetaFileDescriptionA; external gdi32 name 'GetEnhMetaFileDescriptionA';
  11975. function GetEnhMetaFileDescriptionW; external gdi32 name 'GetEnhMetaFileDescriptionW';
  11976. function GetEnhMetaFileDescription; external gdi32 name 'GetEnhMetaFileDescription' + AWSuffix;
  11977. function GetEnhMetaFileHeader; external gdi32 name 'GetEnhMetaFileHeader';
  11978. function GetEnhMetaFilePaletteEntries; external gdi32 name 'GetEnhMetaFilePaletteEntries';
  11979. function GetEnhMetaFilePixelFormat; external gdi32 name 'GetEnhMetaFilePixelFormat';
  11980. function GetWinMetaFileBits; external gdi32 name 'GetWinMetaFileBits';
  11981. function PlayEnhMetaFile; external gdi32 name 'PlayEnhMetaFile';
  11982. function PlayEnhMetaFileRecord; external gdi32 name 'PlayEnhMetaFileRecord';
  11983. function SetEnhMetaFileBits; external gdi32 name 'SetEnhMetaFileBits';
  11984. function SetWinMetaFileBits; external gdi32 name 'SetWinMetaFileBits';
  11985. function GdiComment; external gdi32 name 'GdiComment';
  11986. function GetTextMetricsA; external gdi32 name 'GetTextMetricsA';
  11987. function GetTextMetricsW; external gdi32 name 'GetTextMetricsW';
  11988. function GetTextMetrics; external gdi32 name 'GetTextMetrics' + AWSuffix;
  11989. function AngleArc; external gdi32 name 'AngleArc';
  11990. function PolyPolyline; external gdi32 name 'PolyPolyline';
  11991. function GetWorldTransform; external gdi32 name 'GetWorldTransform';
  11992. function SetWorldTransform; external gdi32 name 'SetWorldTransform';
  11993. function ModifyWorldTransform; external gdi32 name 'ModifyWorldTransform';
  11994. function CombineTransform; external gdi32 name 'CombineTransform';
  11995. function CreateDIBSection; external gdi32 name 'CreateDIBSection';
  11996. function GetDIBColorTable; external gdi32 name 'GetDIBColorTable';
  11997. function SetDIBColorTable; external gdi32 name 'SetDIBColorTable';
  11998. function SetColorAdjustment; external gdi32 name 'SetColorAdjustment';
  11999. function GetColorAdjustment; external gdi32 name 'GetColorAdjustment';
  12000. function CreateHalftonePalette; external gdi32 name 'CreateHalftonePalette';
  12001. function StartDocA; external gdi32 name 'StartDocA';
  12002. function StartDocW; external gdi32 name 'StartDocW';
  12003. function StartDoc; external gdi32 name 'StartDoc' + AWSuffix;
  12004. function EndDoc; external gdi32 name 'EndDoc';
  12005. function StartPage; external gdi32 name 'StartPage';
  12006. function EndPage; external gdi32 name 'EndPage';
  12007. function AbortDoc; external gdi32 name 'AbortDoc';
  12008. function SetAbortProc; external gdi32 name 'SetAbortProc';
  12009. function AbortPath; external gdi32 name 'AbortPath';
  12010. function ArcTo; external gdi32 name 'ArcTo';
  12011. function BeginPath; external gdi32 name 'BeginPath';
  12012. function CloseFigure; external gdi32 name 'CloseFigure';
  12013. function EndPath; external gdi32 name 'EndPath';
  12014. function FillPath; external gdi32 name 'FillPath';
  12015. function FlattenPath; external gdi32 name 'FlattenPath';
  12016. function GetPath; external gdi32 name 'GetPath';
  12017. function PathToRegion; external gdi32 name 'PathToRegion';
  12018. function PolyDraw; external gdi32 name 'PolyDraw';
  12019. function SelectClipPath; external gdi32 name 'SelectClipPath';
  12020. function SetArcDirection; external gdi32 name 'SetArcDirection';
  12021. function SetMiterLimit; external gdi32 name 'SetMiterLimit';
  12022. function StrokeAndFillPath; external gdi32 name 'StrokeAndFillPath';
  12023. function StrokePath; external gdi32 name 'StrokePath';
  12024. function WidenPath; external gdi32 name 'WidenPath';
  12025. function ExtCreatePen; external gdi32 name 'ExtCreatePen';
  12026. function GetMiterLimit; external gdi32 name 'GetMiterLimit';
  12027. function GetArcDirection; external gdi32 name 'GetArcDirection';
  12028. function GetObjectA; external gdi32 name 'GetObjectA';
  12029. function GetObjectW; external gdi32 name 'GetObjectW';
  12030. function GetObject; external gdi32 name 'GetObject' + AWSuffix;
  12031. function MoveToEx; external gdi32 name 'MoveToEx';
  12032. function TextOutA; external gdi32 name 'TextOutA';
  12033. function TextOutW; external gdi32 name 'TextOutW';
  12034. function TextOut; external gdi32 name 'TextOut' + AWSuffix;
  12035. function ExtTextOutA; external gdi32 name 'ExtTextOutA';
  12036. function ExtTextOutW; external gdi32 name 'ExtTextOutW';
  12037. function ExtTextOut; external gdi32 name 'ExtTextOut' + AWSuffix;
  12038. function PolyTextOutA; external gdi32 name 'PolyTextOutA';
  12039. function PolyTextOutW; external gdi32 name 'PolyTextOutW';
  12040. function PolyTextOut; external gdi32 name 'PolyTextOut' + AWSuffix;
  12041. function CreatePolygonRgn; external gdi32 name 'CreatePolygonRgn';
  12042. function DPtoLP; external gdi32 name 'DPtoLP';
  12043. function LPtoDP; external gdi32 name 'LPtoDP';
  12044. function Polygon; external gdi32 name 'Polygon';
  12045. function Polyline; external gdi32 name 'Polyline';
  12046. function PolyBezier; external gdi32 name 'PolyBezier';
  12047. function PolyBezierTo; external gdi32 name 'PolyBezierTo';
  12048. function PolylineTo; external gdi32 name 'PolylineTo';
  12049. function SetViewportExtEx; external gdi32 name 'SetViewportExtEx';
  12050. function SetViewportOrgEx; external gdi32 name 'SetViewportOrgEx';
  12051. function SetWindowExtEx; external gdi32 name 'SetWindowExtEx';
  12052. function SetWindowOrgEx; external gdi32 name 'SetWindowOrgEx';
  12053. function OffsetViewportOrgEx; external gdi32 name 'OffsetViewportOrgEx';
  12054. function OffsetWindowOrgEx; external gdi32 name 'OffsetWindowOrgEx';
  12055. function ScaleViewportExtEx; external gdi32 name 'ScaleViewportExtEx';
  12056. function ScaleWindowExtEx; external gdi32 name 'ScaleWindowExtEx';
  12057. function SetBitmapDimensionEx; external gdi32 name 'SetBitmapDimensionEx';
  12058. function SetBrushOrgEx; external gdi32 name 'SetBrushOrgEx';
  12059. function GetTextFaceA; external gdi32 name 'GetTextFaceA';
  12060. function GetTextFaceW; external gdi32 name 'GetTextFaceW';
  12061. function GetTextFace; external gdi32 name 'GetTextFace' + AWSuffix;
  12062. function GetKerningPairsA; external gdi32 name 'GetKerningPairsA';
  12063. function GetKerningPairsW; external gdi32 name 'GetKerningPairsW';
  12064. function GetKerningPairs; external gdi32 name 'GetKerningPairs' + AWSuffix;
  12065. function GetDCOrgEx; external gdi32 name 'GetDCOrgEx';
  12066. function FixBrushOrgEx; external gdi32 name 'FixBrushOrgEx';
  12067. function UnrealizeObject; external gdi32 name 'UnrealizeObject';
  12068. function GdiFlush; external gdi32 name 'GdiFlush';
  12069. function GdiSetBatchLimit; external gdi32 name 'GdiSetBatchLimit';
  12070. function GdiGetBatchLimit; external gdi32 name 'GdiGetBatchLimit';
  12071. function SetICMMode; external gdi32 name 'SetICMMode';
  12072. function CheckColorsInGamut; external gdi32 name 'CheckColorsInGamut';
  12073. function GetColorSpace; external gdi32 name 'GetColorSpace';
  12074. function GetLogColorSpaceA; external gdi32 name 'GetLogColorSpaceA';
  12075. function GetLogColorSpaceW; external gdi32 name 'GetLogColorSpaceW';
  12076. function GetLogColorSpace; external gdi32 name 'GetLogColorSpace' + AWSuffix;
  12077. function CreateColorSpaceA; external gdi32 name 'CreateColorSpaceA';
  12078. function CreateColorSpaceW; external gdi32 name 'CreateColorSpaceW';
  12079. function CreateColorSpace; external gdi32 name 'CreateColorSpace' + AWSuffix;
  12080. function SetColorSpace; external gdi32 name 'SetColorSpace';
  12081. function DeleteColorSpace; external gdi32 name 'DeleteColorSpace';
  12082. function GetICMProfileA; external gdi32 name 'GetICMProfileA';
  12083. function GetICMProfileW; external gdi32 name 'GetICMProfileW';
  12084. function GetICMProfile; external gdi32 name 'GetICMProfile' + AWSuffix;
  12085. function SetICMProfileA; external gdi32 name 'SetICMProfileA';
  12086. function SetICMProfileW; external gdi32 name 'SetICMProfileW';
  12087. function SetICMProfile; external gdi32 name 'SetICMProfile' + AWSuffix;
  12088. function GetDeviceGammaRamp; external gdi32 name 'GetDeviceGammaRamp';
  12089. function SetDeviceGammaRamp; external gdi32 name 'SetDeviceGammaRamp';
  12090. function ColorMatchToTarget; external gdi32 name 'ColorMatchToTarget';
  12091. function EnumICMProfilesA; external gdi32 name 'EnumICMProfilesA';
  12092. function EnumICMProfilesW; external gdi32 name 'EnumICMProfilesW';
  12093. function EnumICMProfiles; external gdi32 name 'EnumICMProfiles' + AWSuffix;
  12094. function UpdateICMRegKeyA; external gdi32 name 'UpdateICMRegKeyA';
  12095. function UpdateICMRegKeyW; external gdi32 name 'UpdateICMRegKeyW';
  12096. function UpdateICMRegKey; external gdi32 name 'UpdateICMRegKey' + AWSuffix;
  12097. function ColorCorrectPalette; external gdi32 name 'ColorCorrectPalette';
  12098. function wglCopyContext; external opengl32 name 'wglCopyContext';
  12099. function wglCreateContext; external opengl32 name 'wglCreateContext';
  12100. function wglCreateLayerContext; external opengl32 name 'wglCreateLayerContext';
  12101. function wglDeleteContext; external opengl32 name 'wglDeleteContext';
  12102. function wglGetCurrentContext; external opengl32 name 'wglGetCurrentContext';
  12103. function wglGetCurrentDC; external opengl32 name 'wglGetCurrentDC';
  12104. function wglGetProcAddress; external opengl32 name 'wglGetProcAddress';
  12105. function wglMakeCurrent; external opengl32 name 'wglMakeCurrent';
  12106. function wglShareLists; external opengl32 name 'wglShareLists';
  12107. function wglUseFontBitmapsA; external opengl32 name 'wglUseFontBitmapsA';
  12108. function wglUseFontBitmapsW; external opengl32 name 'wglUseFontBitmapsW';
  12109. function wglUseFontBitmaps; external opengl32 name 'wglUseFontBitmaps' + AWSuffix;
  12110. function SwapBuffers; external opengl32 name 'SwapBuffers';
  12111. function wglUseFontOutlinesA; external opengl32 name 'wglUseFontOutlinesA';
  12112. function wglUseFontOutlinesW; external opengl32 name 'wglUseFontOutlinesW';
  12113. function wglUseFontOutlines; external opengl32 name 'wglUseFontOutlines' + AWSuffix;
  12114. function wglDescribeLayerPlane; external opengl32 name 'wglDescribeLayerPlane';
  12115. function wglSetLayerPaletteEntries; external opengl32 name 'wglSetLayerPaletteEntries';
  12116. function wglGetLayerPaletteEntries; external opengl32 name 'wglGetLayerPaletteEntries';
  12117. function wglRealizeLayerPalette; external opengl32 name 'wglRealizeLayerPalette';
  12118. function wglSwapLayerBuffers; external opengl32 name 'wglSwapLayerBuffers';
  12119. function wglSwapMultipleBuffers; external opengl32 name 'wglSwapMultipleBuffers';
  12120. {$ENDIF DYNAMIC_LINK}
  12121. end.