Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962#ifndef _WINGDI_H#define _WINGDI_H#define _WINGDI_
#ifndef NOGDI
#ifdef __cplusplusextern "C" {#endif
#ifdef _MSC_VER#pragma warning(push)#pragma warning(disable:4201) // nameless struct or union#pragma warning(disable:4820) // padding after member#endif
/* Get/SetSystemPaletteUse() values */#define SYSPAL_ERROR 0#define SYSPAL_STATIC 1#define SYSPAL_NOSTATIC 2#define SYSPAL_NOSTATIC256 3
#define WINGDIAPI
#define NTM_NONNEGATIVE_AC 0x00010000#define NTM_PS_OPENTYPE 0x00020000#define NTM_TT_OPENTYPE 0x00040000#define NTM_MULTIPLEMASTER 0x00080000#define NTM_TYPE1 0x00100000#define NTM_DSIG 0x00200000
#define AC_SRC_OVER 0#define AC_SRC_ALPHA 1#define BI_RGB 0#define BI_RLE8 1#define BI_RLE4 2#define BI_BITFIELDS 3#define BI_JPEG 4#define BI_PNG 5#define LF_FACESIZE 32#define LF_FULLFACESIZE 64#define CA_NEGATIVE 1#define CA_LOG_FILTER 2#define ILLUMINANT_DEVICE_DEFAULT 0#define ILLUMINANT_A 1#define ILLUMINANT_B 2#define ILLUMINANT_C 3#define ILLUMINANT_D50 4#define ILLUMINANT_D55 5#define ILLUMINANT_D65 6#define ILLUMINANT_D75 7#define ILLUMINANT_F2 8#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2#define ILLUMINANT_TUNGSTEN ILLUMINANT_A#define ILLUMINANT_DAYLIGHT ILLUMINANT_C#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2#define ILLUMINANT_NTSC ILLUMINANT_C#define RGB_GAMMA_MIN 2500#define RGB_GAMMA_MAX 65000#define REFERENCE_WHITE_MIN 6000#define REFERENCE_WHITE_MAX 10000#define REFERENCE_BLACK_MIN 0#define REFERENCE_BLACK_MAX 4000#define COLOR_ADJ_MIN (-100)#define COLOR_ADJ_MAX 100#define CCHDEVICENAME 32#define CCHFORMNAME 32#define DI_COMPAT 4#define DI_DEFAULTSIZE 8#define DI_IMAGE 2#define DI_MASK 1#define DI_NORMAL 3#define DI_APPBANDING 1#define DI_NOMIRROR 16#define EMR_HEADER 1#define EMR_POLYBEZIER 2#define EMR_POLYGON 3#define EMR_POLYLINE 4#define EMR_POLYBEZIERTO 5#define EMR_POLYLINETO 6#define EMR_POLYPOLYLINE 7#define EMR_POLYPOLYGON 8#define EMR_SETWINDOWEXTEX 9#define EMR_SETWINDOWORGEX 10#define EMR_SETVIEWPORTEXTEX 11#define EMR_SETVIEWPORTORGEX 12#define EMR_SETBRUSHORGEX 13#define EMR_EOF 14#define EMR_SETPIXELV 15#define EMR_SETMAPPERFLAGS 16#define EMR_SETMAPMODE 17#define EMR_SETBKMODE 18#define EMR_SETPOLYFILLMODE 19#define EMR_SETROP2 20#define EMR_SETSTRETCHBLTMODE 21#define EMR_SETTEXTALIGN 22#define EMR_SETCOLORADJUSTMENT 23#define EMR_SETTEXTCOLOR 24#define EMR_SETBKCOLOR 25#define EMR_OFFSETCLIPRGN 26#define EMR_MOVETOEX 27#define EMR_SETMETARGN 28#define EMR_EXCLUDECLIPRECT 29#define EMR_INTERSECTCLIPRECT 30#define EMR_SCALEVIEWPORTEXTEX 31#define EMR_SCALEWINDOWEXTEX 32#define EMR_SAVEDC 33#define EMR_RESTOREDC 34#define EMR_SETWORLDTRANSFORM 35#define EMR_MODIFYWORLDTRANSFORM 36#define EMR_SELECTOBJECT 37#define EMR_CREATEPEN 38#define EMR_CREATEBRUSHINDIRECT 39#define EMR_DELETEOBJECT 40#define EMR_ANGLEARC 41#define EMR_ELLIPSE 42#define EMR_RECTANGLE 43#define EMR_ROUNDRECT 44#define EMR_ARC 45#define EMR_CHORD 46#define EMR_PIE 47#define EMR_SELECTPALETTE 48#define EMR_CREATEPALETTE 49#define EMR_SETPALETTEENTRIES 50#define EMR_RESIZEPALETTE 51#define EMR_REALIZEPALETTE 52#define EMR_EXTFLOODFILL 53#define EMR_LINETO 54#define EMR_ARCTO 55#define EMR_POLYDRAW 56#define EMR_SETARCDIRECTION 57#define EMR_SETMITERLIMIT 58#define EMR_BEGINPATH 59#define EMR_ENDPATH 60#define EMR_CLOSEFIGURE 61#define EMR_FILLPATH 62#define EMR_STROKEANDFILLPATH 63#define EMR_STROKEPATH 64#define EMR_FLATTENPATH 65#define EMR_WIDENPATH 66#define EMR_SELECTCLIPPATH 67#define EMR_ABORTPATH 68#define EMR_GDICOMMENT 70#define EMR_FILLRGN 71#define EMR_FRAMERGN 72#define EMR_INVERTRGN 73#define EMR_PAINTRGN 74#define EMR_EXTSELECTCLIPRGN 75#define EMR_BITBLT 76#define EMR_STRETCHBLT 77#define EMR_MASKBLT 78#define EMR_PLGBLT 79#define EMR_SETDIBITSTODEVICE 80#define EMR_STRETCHDIBITS 81#define EMR_EXTCREATEFONTINDIRECTW 82#define EMR_EXTTEXTOUTA 83#define EMR_EXTTEXTOUTW 84#define EMR_POLYBEZIER16 85#define EMR_POLYGON16 86#define EMR_POLYLINE16 87#define EMR_POLYBEZIERTO16 88#define EMR_POLYLINETO16 89#define EMR_POLYPOLYLINE16 90#define EMR_POLYPOLYGON16 91#define EMR_POLYDRAW16 92#define EMR_CREATEMONOBRUSH 93#define EMR_CREATEDIBPATTERNBRUSHPT 94#define EMR_EXTCREATEPEN 95#define EMR_POLYTEXTOUTA 96#define EMR_POLYTEXTOUTW 97#define EMR_SETICMMODE 98#define EMR_CREATECOLORSPACE 99#define EMR_SETCOLORSPACE 100#define EMR_DELETECOLORSPACE 101#define EMR_GLSRECORD 102#define EMR_GLSBOUNDEDRECORD 103#define EMR_PIXELFORMAT 104#if (_WIN32_WINNT >= 0x0500)#define EMR_DRAWESCAPE 105#define EMR_EXTESCAPE 106#define EMR_STARTDOC 107#define EMR_SMALLTEXTOUT 108#define EMR_FORCEUFIMAPPING 109#define EMR_NAMEDESCAPE 110#define EMR_COLORCORRECTPALETTE 111#define EMR_SETICMPROFILEA 112#define EMR_SETICMPROFILEW 113#define EMR_ALPHABLEND 114#define EMR_ALPHADIBBLEND 115#define EMR_SETLAYOUT 115#define EMR_TRANSPARENTBLT 116#define EMR_TRANSPARENTDIB 117#define EMR_RESERVED_117 117#define EMR_GRADIENTFILL 118#define EMR_SETLINKEDUFIS 119#define EMR_SETTEXTJUSTIFICATION 120#define EMR_COLORMATCHTOTARGETW 121#define EMR_CREATECOLORSPACEW 122
#define EMR_MIN 1#define EMR_MAX 122
#endif#define ENHMETA_SIGNATURE 1179469088#define EPS_SIGNATURE 0x46535045#if (_WIN32_WINNT >= 0x0500)#define FR_PRIVATE 0x10#define FR_NOT_ENUM 0x20#endif#define META_SETBKCOLOR 0x201#define META_SETBKMODE 0x102#define META_SETMAPMODE 0x103#define META_SETROP2 0x104#define META_SETRELABS 0x105#define META_SETPOLYFILLMODE 0x106#define META_SETSTRETCHBLTMODE 0x107#define META_SETTEXTCHAREXTRA 0x108#define META_SETLAYOUT 0x149#define META_SETTEXTCOLOR 0x209#define META_SETTEXTJUSTIFICATION 0x20A#define META_SETWINDOWORG 0x20B#define META_SETWINDOWEXT 0x20C#define META_SETVIEWPORTORG 0x20D#define META_SETVIEWPORTEXT 0x20E#define META_OFFSETWINDOWORG 0x20F#define META_SCALEWINDOWEXT 0x410#define META_OFFSETVIEWPORTORG 0x211#define META_SCALEVIEWPORTEXT 0x412#define META_LINETO 0x213#define META_MOVETO 0x214#define META_EXCLUDECLIPRECT 0x415#define META_INTERSECTCLIPRECT 0x416#define META_ARC 0x817#define META_ELLIPSE 0x418#define META_FLOODFILL 0x419#define META_PIE 0x81A#define META_RECTANGLE 0x41B#define META_ROUNDRECT 0x61C#define META_PATBLT 0x61D#define META_SAVEDC 0x1E#define META_SETPIXEL 0x41F#define META_OFFSETCLIPRGN 0x220#define META_TEXTOUT 0x521#define META_BITBLT 0x922#define META_STRETCHBLT 0xB23#define META_POLYGON 0x324#define META_POLYLINE 0x325#define META_ESCAPE 0x626#define META_RESTOREDC 0x127#define META_FILLREGION 0x228#define META_FRAMEREGION 0x429#define META_INVERTREGION 0x12A#define META_PAINTREGION 0x12B#define META_SELECTCLIPREGION 0x12C#define META_SELECTOBJECT 0x12D#define META_SETTEXTALIGN 0x12E#define META_CHORD 0x830#define META_SETMAPPERFLAGS 0x231#define META_EXTTEXTOUT 0xa32#define META_SETDIBTODEV 0xd33#define META_SELECTPALETTE 0x234#define META_REALIZEPALETTE 0x35#define META_ANIMATEPALETTE 0x436#define META_SETPALENTRIES 0x37#define META_POLYPOLYGON 0x538#define META_RESIZEPALETTE 0x139#define META_DIBBITBLT 0x940#define META_DIBSTRETCHBLT 0xb41#define META_DIBCREATEPATTERNBRUSH 0x142#define META_STRETCHDIB 0xf43#define META_EXTFLOODFILL 0x548#define META_DELETEOBJECT 0x1f0#define META_CREATEPALETTE 0xf7#define META_CREATEPATTERNBRUSH 0x1F9#define META_CREATEPENINDIRECT 0x2FA#define META_CREATEFONTINDIRECT 0x2FB#define META_CREATEBRUSHINDIRECT 0x2FC#define META_CREATEREGION 0x6FF#define META_DRAWTEXT 0x062F#define META_RESETDC 0x014C#define META_STARTDOC 0x014D#define META_STARTPAGE 0x004F#define META_ENDPAGE 0x0050#define META_ABORTDOC 0x0052#define META_ENDDOC 0x005E#define META_CREATEBRUSH 0x00F8#define META_CREATEBITMAPINDIRECT 0x02FD#define META_CREATEBITMAP 0x06FE#define PT_MOVETO 6#define PT_LINETO 2#define PT_BEZIERTO 4#define PT_CLOSEFIGURE 1#define ELF_VENDOR_SIZE 4#define ELF_VERSION 0#define ELF_CULTURE_LATIN 0#define PFD_TYPE_RGBA 0#define PFD_TYPE_COLORINDEX 1#define PFD_MAIN_PLANE 0#define PFD_OVERLAY_PLANE 1#define PFD_UNDERLAY_PLANE (-1)#define PFD_DOUBLEBUFFER 1#define PFD_STEREO 2#define PFD_DRAW_TO_WINDOW 4#define PFD_DRAW_TO_BITMAP 8#define PFD_SUPPORT_GDI 16#define PFD_SUPPORT_OPENGL 32#define PFD_GENERIC_FORMAT 64#define PFD_NEED_PALETTE 128#define PFD_NEED_SYSTEM_PALETTE 0x00000100#define PFD_SWAP_EXCHANGE 0x00000200#define PFD_SWAP_COPY 0x00000400#define PFD_SWAP_LAYER_BUFFERS 0x00000800#define PFD_GENERIC_ACCELERATED 0x00001000#define PFD_SUPPORT_COMPOSITION 0x00008000#define PFD_DEPTH_DONTCARE 0x20000000#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000#define PFD_STEREO_DONTCARE 0x80000000#define SP_ERROR (-1)#define SP_OUTOFDISK (-4)#define SP_OUTOFMEMORY (-5)#define SP_USERABORT (-3)#define SP_APPABORT (-2)#define BLACKNESS 0x42#define NOTSRCERASE 0x1100A6#define NOTSRCCOPY 0x330008#define SRCERASE 0x440328#define DSTINVERT 0x550009#define PATINVERT 0x5A0049#define SRCINVERT 0x660046#define SRCAND 0x8800C6#define MERGEPAINT 0xBB0226#define MERGECOPY 0xC000CA#define SRCCOPY 0xCC0020#define SRCPAINT 0xEE0086#define PATCOPY 0xF00021#define PATPAINT 0xFB0A09#define WHITENESS 0xFF0062#define R2_BLACK 1#define R2_COPYPEN 13#define R2_MASKNOTPEN 3#define R2_MASKPEN 9#define R2_MASKPENNOT 5#define R2_MERGENOTPEN 12#define R2_MERGEPEN 15#define R2_MERGEPENNOT 14#define R2_NOP 11#define R2_NOT 6#define R2_NOTCOPYPEN 4#define R2_NOTMASKPEN 8#define R2_NOTMERGEPEN 2#define R2_NOTXORPEN 10#define R2_WHITE 16#define R2_XORPEN 7#define CM_OUT_OF_GAMUT 255#define CM_IN_GAMUT 0#define RGN_AND 1#define RGN_COPY 5#define RGN_DIFF 4#define RGN_OR 2#define RGN_XOR 3#define NULLREGION 1#define SIMPLEREGION 2#define COMPLEXREGION 3#define ERROR 0#define CBM_INIT 4#define DIB_PAL_COLORS 1#define DIB_RGB_COLORS 0#define FW_DONTCARE 0#define FW_THIN 100#define FW_EXTRALIGHT 200#define FW_ULTRALIGHT FW_EXTRALIGHT#define FW_LIGHT 300#define FW_NORMAL 400#define FW_REGULAR 400#define FW_MEDIUM 500#define FW_SEMIBOLD 600#define FW_DEMIBOLD FW_SEMIBOLD#define FW_BOLD 700#define FW_EXTRABOLD 800#define FW_ULTRABOLD FW_EXTRABOLD#define FW_HEAVY 900#define FW_BLACK FW_HEAVY#define ANSI_CHARSET 0#define DEFAULT_CHARSET 1#define SYMBOL_CHARSET 2#define SHIFTJIS_CHARSET 128#define HANGEUL_CHARSET 129#define HANGUL_CHARSET 129#define GB2312_CHARSET 134#define CHINESEBIG5_CHARSET 136#define GREEK_CHARSET 161#define TURKISH_CHARSET 162#define HEBREW_CHARSET 177#define ARABIC_CHARSET 178#define BALTIC_CHARSET 186#define RUSSIAN_CHARSET 204#define THAI_CHARSET 222#define EE_CHARSET 238#define EASTEUROPE_CHARSET 238#define OEM_CHARSET 255#define JOHAB_CHARSET 130#define VIETNAMESE_CHARSET 163#define MAC_CHARSET 77/* I don't know if the values of *_CHARSET macros are defined in Windows * or if we can choose them as we want. -- srtxg */#define VISCII_CHARSET (BYTE)240 /* viscii1.1-1 */#define TCVN_CHARSET (BYTE)241 /* tcvn-0 */#define KOI8_CHARSET (BYTE)242 /* koi8-{r,u,ru} */#define ISO3_CHARSET (BYTE)243 /* iso8859-3 */#define ISO4_CHARSET (BYTE)244 /* iso8859-4 */#define ISO10_CHARSET (BYTE)245 /* iso8859-10 */#define CELTIC_CHARSET (BYTE)246 /* iso8859-14 */
#define OUT_DEFAULT_PRECIS 0#define OUT_STRING_PRECIS 1#define OUT_CHARACTER_PRECIS 2#define OUT_STROKE_PRECIS 3#define OUT_TT_PRECIS 4#define OUT_DEVICE_PRECIS 5#define OUT_RASTER_PRECIS 6#define OUT_TT_ONLY_PRECIS 7#define OUT_OUTLINE_PRECIS 8#define OUT_SCREEN_OUTLINE_PRECIS 9#define OUT_PS_ONLY_PRECIS 10#define CLIP_DEFAULT_PRECIS 0#define CLIP_CHARACTER_PRECIS 1#define CLIP_STROKE_PRECIS 2#define CLIP_MASK 15#define CLIP_LH_ANGLES 16#define CLIP_TT_ALWAYS 32#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)#define CLIP_DFA_DISABLE 64#endif#define CLIP_EMBEDDED 128#define DEFAULT_QUALITY 0#define DRAFT_QUALITY 1#define PROOF_QUALITY 2#define NONANTIALIASED_QUALITY 3#define ANTIALIASED_QUALITY 4#define CLEARTYPE_QUALITY 5#define CLEARTYPE_NATURAL_QUALITY 6#define DEFAULT_PITCH 0#define FIXED_PITCH 1#define VARIABLE_PITCH 2#define MONO_FONT 8#define FF_DECORATIVE 80#define FF_DONTCARE 0#define FF_MODERN 48#define FF_ROMAN 16#define FF_SCRIPT 64#define FF_SWISS 32#define PANOSE_COUNT 10#define PAN_FAMILYTYPE_INDEX 0#define PAN_SERIFSTYLE_INDEX 1#define PAN_WEIGHT_INDEX 2#define PAN_PROPORTION_INDEX 3#define PAN_CONTRAST_INDEX 4#define PAN_STROKEVARIATION_INDEX 5#define PAN_ARMSTYLE_INDEX 6#define PAN_LETTERFORM_INDEX 7#define PAN_MIDLINE_INDEX 8#define PAN_XHEIGHT_INDEX 9#define PAN_CULTURE_LATIN 0#define PAN_ANY 0#define PAN_NO_FIT 1#define PAN_FAMILY_TEXT_DISPLAY 2#define PAN_FAMILY_SCRIPT 3#define PAN_FAMILY_DECORATIVE 4#define PAN_FAMILY_PICTORIAL 5#define PAN_SERIF_COVE 2#define PAN_SERIF_OBTUSE_COVE 3#define PAN_SERIF_SQUARE_COVE 4#define PAN_SERIF_OBTUSE_SQUARE_COVE 5#define PAN_SERIF_SQUARE 6#define PAN_SERIF_THIN 7#define PAN_SERIF_BONE 8#define PAN_SERIF_EXAGGERATED 9#define PAN_SERIF_TRIANGLE 10#define PAN_SERIF_NORMAL_SANS 11#define PAN_SERIF_OBTUSE_SANS 12#define PAN_SERIF_PERP_SANS 13#define PAN_SERIF_FLARED 14#define PAN_SERIF_ROUNDED 15#define PAN_WEIGHT_VERY_LIGHT 2#define PAN_WEIGHT_LIGHT 3#define PAN_WEIGHT_THIN 4#define PAN_WEIGHT_BOOK 5#define PAN_WEIGHT_MEDIUM 6#define PAN_WEIGHT_DEMI 7#define PAN_WEIGHT_BOLD 8#define PAN_WEIGHT_HEAVY 9#define PAN_WEIGHT_BLACK 10#define PAN_WEIGHT_NORD 11#define PAN_PROP_OLD_STYLE 2#define PAN_PROP_MODERN 3#define PAN_PROP_EVEN_WIDTH 4#define PAN_PROP_EXPANDED 5#define PAN_PROP_CONDENSED 6#define PAN_PROP_VERY_EXPANDED 7#define PAN_PROP_VERY_CONDENSED 8#define PAN_PROP_MONOSPACED 9#define PAN_CONTRAST_NONE 2#define PAN_CONTRAST_VERY_LOW 3#define PAN_CONTRAST_LOW 4#define PAN_CONTRAST_MEDIUM_LOW 5#define PAN_CONTRAST_MEDIUM 6#define PAN_CONTRAST_MEDIUM_HIGH 7#define PAN_CONTRAST_HIGH 8#define PAN_CONTRAST_VERY_HIGH 9#define PAN_STROKE_GRADUAL_DIAG 2#define PAN_STROKE_GRADUAL_TRAN 3#define PAN_STROKE_GRADUAL_VERT 4#define PAN_STROKE_GRADUAL_HORZ 5#define PAN_STROKE_RAPID_VERT 6#define PAN_STROKE_RAPID_HORZ 7#define PAN_STROKE_INSTANT_VERT 8#define PAN_STRAIGHT_ARMS_HORZ 2#define PAN_STRAIGHT_ARMS_WEDGE 3#define PAN_STRAIGHT_ARMS_VERT 4#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6#define PAN_BENT_ARMS_HORZ 7#define PAN_BENT_ARMS_WEDGE 8#define PAN_BENT_ARMS_VERT 9#define PAN_BENT_ARMS_SINGLE_SERIF 10#define PAN_BENT_ARMS_DOUBLE_SERIF 11#define PAN_LETT_NORMAL_CONTACT 2#define PAN_LETT_NORMAL_WEIGHTED 3#define PAN_LETT_NORMAL_BOXED 4#define PAN_LETT_NORMAL_FLATTENED 5#define PAN_LETT_NORMAL_ROUNDED 6#define PAN_LETT_NORMAL_OFF_CENTER 7#define PAN_LETT_NORMAL_SQUARE 8#define PAN_LETT_OBLIQUE_CONTACT 9#define PAN_LETT_OBLIQUE_WEIGHTED 10#define PAN_LETT_OBLIQUE_BOXED 11#define PAN_LETT_OBLIQUE_FLATTENED 12#define PAN_LETT_OBLIQUE_ROUNDED 13#define PAN_LETT_OBLIQUE_OFF_CENTER 14#define PAN_LETT_OBLIQUE_SQUARE 15#define PAN_MIDLINE_STANDARD_TRIMMED 2#define PAN_MIDLINE_STANDARD_POINTED 3#define PAN_MIDLINE_STANDARD_SERIFED 4#define PAN_MIDLINE_HIGH_TRIMMED 5#define PAN_MIDLINE_HIGH_POINTED 6#define PAN_MIDLINE_HIGH_SERIFED 7#define PAN_MIDLINE_CONSTANT_TRIMMED 8#define PAN_MIDLINE_CONSTANT_POINTED 9#define PAN_MIDLINE_CONSTANT_SERIFED 10#define PAN_MIDLINE_LOW_TRIMMED 11#define PAN_MIDLINE_LOW_POINTED 12#define PAN_MIDLINE_LOW_SERIFED 13#define PAN_XHEIGHT_CONSTANT_SMALL 2#define PAN_XHEIGHT_CONSTANT_STD 3#define PAN_XHEIGHT_CONSTANT_LARGE 4#define PAN_XHEIGHT_DUCKING_SMALL 5#define PAN_XHEIGHT_DUCKING_STD 6#define PAN_XHEIGHT_DUCKING_LARGE 7#define FS_LATIN1 1#define FS_LATIN2 2#define FS_CYRILLIC 4#define FS_GREEK 8#define FS_TURKISH 16#define FS_HEBREW 32#define FS_ARABIC 64#define FS_BALTIC 128#define FS_VIETNAMESE 256#define FS_THAI 0x10000#define FS_JISJAPAN 0x20000#define FS_CHINESESIMP 0x40000#define FS_WANSUNG 0x80000#define FS_CHINESETRAD 0x100000#define FS_JOHAB 0x200000#define FS_SYMBOL 0x80000000#define HS_BDIAGONAL 3#define HS_CROSS 4#define HS_DIAGCROSS 5#define HS_FDIAGONAL 2#define HS_HORIZONTAL 0#define HS_VERTICAL 1#define HS_API_MAX 12#define PS_GEOMETRIC 65536#define PS_COSMETIC 0#define PS_ALTERNATE 8#define PS_SOLID 0#define PS_DASH 1#define PS_DOT 2#define PS_DASHDOT 3#define PS_DASHDOTDOT 4#define PS_NULL 5#define PS_USERSTYLE 7#define PS_INSIDEFRAME 6#define PS_ENDCAP_ROUND 0#define PS_ENDCAP_SQUARE 256#define PS_ENDCAP_FLAT 512#define PS_JOIN_BEVEL 4096#define PS_JOIN_MITER 8192#define PS_JOIN_ROUND 0#define PS_JOIN_MASK 0x0000F000#define PS_STYLE_MASK 15#define PS_ENDCAP_MASK 3840#define PS_TYPE_MASK 983040#define ALTERNATE 1#define WINDING 2#define POLYFILL_LAST 2#define DC_BINNAMES 12#define DC_BINS 6#define DC_COPIES 18#define DC_DRIVER 11#define DC_DATATYPE_PRODUCED 21#define DC_DUPLEX 7#define DC_EMF_COMPLIANT 20#define DC_ENUMRESOLUTIONS 13#define DC_EXTRA 9#define DC_FIELDS 1#define DC_FILEDEPENDENCIES 14#define DC_MAXEXTENT 5#define DC_MINEXTENT 4#define DC_ORIENTATION 17#define DC_PAPERNAMES 16#define DC_PAPERS 2#define DC_PAPERSIZE 3#define DC_SIZE 8#define DC_TRUETYPE 15#define DCTT_BITMAP 1#define DCTT_DOWNLOAD 2#define DCTT_SUBDEV 4#define DCTT_DOWNLOAD_OUTLINE 8#define DC_VERSION 10#define DC_BINADJUST 19#define DC_EMF_COMPLIANT 20#define DC_DATATYPE_PRODUCED 21#define DC_MANUFACTURER 23#define DC_MODEL 24#define DCBA_FACEUPNONE 0#define DCBA_FACEUPCENTER 1#define DCBA_FACEUPLEFT 2#define DCBA_FACEUPRIGHT 3#define DCBA_FACEDOWNNONE 256#define DCBA_FACEDOWNCENTER 257#define DCBA_FACEDOWNLEFT 258#define DCBA_FACEDOWNRIGHT 259#define FLOODFILLBORDER 0#define FLOODFILLSURFACE 1#define ETO_GRAYED 0x00001#define ETO_OPAQUE 0x00002#define ETO_CLIPPED 0x00004#if (WINVER >= 0x0400)#define ETO_GLYPH_INDEX 0x00010#define ETO_RTLREADING 0x00080#define ETO_NUMERICSLOCAL 0x00400#define ETO_NUMERICSLATIN 0x00800#define ETO_IGNORELANGUAGE 0x01000#endif#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)#define ETO_PDY 0x02000#endif#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)#define ETO_REVERSE_INDEX_MAP 0x10000#endif#define GDICOMMENT_WINDOWS_METAFILE (-2147483647)#define GDICOMMENT_BEGINGROUP 2#define GDICOMMENT_ENDGROUP 3#define GDICOMMENT_MULTIFORMATS 1073741828#define GDICOMMENT_IDENTIFIER 1128875079#define AD_COUNTERCLOCKWISE 1#define AD_CLOCKWISE 2#define RDH_RECTANGLES 1#define GCPCLASS_LATIN 1#define GCPCLASS_HEBREW 2#define GCPCLASS_ARABIC 2#define GCPCLASS_NEUTRAL 3#define GCPCLASS_LOCALNUMBER 4#define GCPCLASS_LATINNUMBER 5#define GCPCLASS_LATINNUMERICTERMINATOR 6#define GCPCLASS_LATINNUMERICSEPARATOR 7#define GCPCLASS_NUMERICSEPARATOR 8#define GCPCLASS_PREBOUNDLTR 128#define GCPCLASS_PREBOUNDRTL 64#define GCPCLASS_POSTBOUNDLTR 32#define GCPCLASS_POSTBOUNDRTL 16#define GCPGLYPH_LINKBEFORE 0x8000#define GCPGLYPH_LINKAFTER 0x4000#define DCB_DISABLE 8#define DCB_ENABLE 4#define DCB_RESET 1#define DCB_SET 3#define DCB_ACCUMULATE 2#define DCB_DIRTY 2#define OBJ_BRUSH 2#define OBJ_PEN 1#define OBJ_PAL 5#define OBJ_FONT 6#define OBJ_BITMAP 7#define OBJ_EXTPEN 11#define OBJ_REGION 8#define OBJ_DC 3#define OBJ_MEMDC 10#define OBJ_METAFILE 9#define OBJ_METADC 4#define OBJ_ENHMETAFILE 13#define OBJ_ENHMETADC 12#define OBJ_COLORSPACE 14#define DRIVERVERSION 0#define TECHNOLOGY 2#define DT_PLOTTER 0#define DT_RASDISPLAY 1#define DT_RASPRINTER 2#define DT_RASCAMERA 3#define DT_CHARSTREAM 4#define DT_METAFILE 5#define DT_DISPFILE 6#define HORZSIZE 4#define VERTSIZE 6#define HORZRES 8#define VERTRES 10#define LOGPIXELSX 88#define LOGPIXELSY 90#define BITSPIXEL 12#define PLANES 14#define NUMBRUSHES 16#define NUMPENS 18#define NUMFONTS 22#define NUMCOLORS 24#define NUMMARKERS 20#define ASPECTX 40#define ASPECTY 42#define ASPECTXY 44#define PDEVICESIZE 26#define CLIPCAPS 36#define SIZEPALETTE 104#define NUMRESERVED 106#define COLORRES 108#define PHYSICALWIDTH 110#define PHYSICALHEIGHT 111#define PHYSICALOFFSETX 112#define PHYSICALOFFSETY 113#define SCALINGFACTORX 114#define SCALINGFACTORY 115#define VREFRESH 116#define DESKTOPHORZRES 118#define DESKTOPVERTRES 117#define BLTALIGNMENT 119#define RASTERCAPS 38#define RC_BANDING 2#define RC_BITBLT 1#define RC_BITMAP64 8#define RC_DI_BITMAP 128#define RC_DIBTODEV 512#define RC_FLOODFILL 4096#define RC_GDI20_OUTPUT 16#define RC_PALETTE 256#define RC_SCALING 4#define RC_STRETCHBLT 2048#define RC_STRETCHDIB 8192#define RC_DEVBITS 0x8000#define RC_OP_DX_OUTPUT 0x4000#define CURVECAPS 28#define CC_NONE 0#define CC_CIRCLES 1#define CC_PIE 2#define CC_CHORD 4#define CC_ELLIPSES 8#define CC_WIDE 16#define CC_STYLED 32#define CC_WIDESTYLED 64#define CC_INTERIORS 128#define CC_ROUNDRECT 256#define LINECAPS 30#define LC_NONE 0#define LC_POLYLINE 2#define LC_MARKER 4#define LC_POLYMARKER 8#define LC_WIDE 16#define LC_STYLED 32#define LC_WIDESTYLED 64#define LC_INTERIORS 128#define POLYGONALCAPS 32#define RC_BANDING 2#define RC_BIGFONT 1024#define RC_BITBLT 1#define RC_BITMAP64 8#define RC_DEVBITS 0x8000#define RC_DI_BITMAP 128#define RC_GDI20_OUTPUT 16#define RC_GDI20_STATE 32#define RC_NONE 0#define RC_OP_DX_OUTPUT 0x4000#define RC_PALETTE 256#define RC_SAVEBITMAP 64#define RC_SCALING 4#define PC_NONE 0#define PC_POLYGON 1#define PC_POLYPOLYGON 256#define PC_PATHS 512#define PC_RECTANGLE 2#define PC_WINDPOLYGON 4#define PC_SCANLINE 8#define PC_TRAPEZOID 4#define PC_WIDE 16#define PC_STYLED 32#define PC_WIDESTYLED 64#define PC_INTERIORS 128#define PC_PATHS 512#define TEXTCAPS 34#define TC_OP_CHARACTER 1#define TC_OP_STROKE 2#define TC_CP_STROKE 4#define TC_CR_90 8#define TC_CR_ANY 16#define TC_SF_X_YINDEP 32#define TC_SA_DOUBLE 64#define TC_SA_INTEGER 128#define TC_SA_CONTIN 256#define TC_EA_DOUBLE 512#define TC_IA_ABLE 1024#define TC_UA_ABLE 2048#define TC_SO_ABLE 4096#define TC_RA_ABLE 8192#define TC_VA_ABLE 16384#define TC_RESERVED 32768#define TC_SCROLLBLT 65536/* CLIPCAPS */#define CP_NONE 0#define CP_RECTANGLE 1#define CP_REGION 2#define GCP_DBCS 1#define GCP_ERROR 0x8000#define GCP_CLASSIN 0x80000#define GCP_DIACRITIC 256#define GCP_DISPLAYZWG 0x400000#define GCP_GLYPHSHAPE 16#define GCP_JUSTIFY 0x10000#define GCP_JUSTIFYIN 0x200000#define GCP_KASHIDA 1024#define GCP_LIGATE 32#define GCP_MAXEXTENT 0x100000#define GCP_NEUTRALOVERRIDE 0x2000000#define GCP_NUMERICOVERRIDE 0x1000000#define GCP_NUMERICSLATIN 0x4000000#define GCP_NUMERICSLOCAL 0x8000000#define GCP_REORDER 2#define GCP_SYMSWAPOFF 0x800000#define GCP_USEKERNING 8#define FLI_GLYPHS 0x40000#define FLI_MASK 0x103b#define GGO_METRICS 0#define GGO_BITMAP 1#define GGO_NATIVE 2#define GGO_BEZIER 3#define GGO_GRAY2_BITMAP 4#define GGO_GRAY4_BITMAP 5#define GGO_GRAY8_BITMAP 6#define GGO_GLYPH_INDEX 128#define GGO_UNHINTED 256#ifdef __WINESRC__#define WINE_GGO_GRAY16_BITMAP 0x10#define WINE_GGO_HRGB_BITMAP 0x11#define WINE_GGO_HBGR_BITMAP 0x12#define WINE_GGO_VRGB_BITMAP 0x13#define WINE_GGO_VBGR_BITMAP 0x14#endif#define GM_COMPATIBLE 1#define GM_ADVANCED 2#define GM_LAST 2#define MM_ANISOTROPIC 8#define MM_HIENGLISH 5#define MM_HIMETRIC 3#define MM_ISOTROPIC 7#define MM_LOENGLISH 4#define MM_LOMETRIC 2#define MM_TEXT 1#define MM_TWIPS 6#define MM_MAX_FIXEDSCALE MM_TWIPS#define MM_MIN MM_TEXT#define MM_MAX MM_ANISOTROPIC#define ABSOLUTE 1#define RELATIVE 2#define PC_EXPLICIT 2#define PC_NOCOLLAPSE 4#define PC_RESERVED 1#define CLR_INVALID 0xFFFFFFFF#define PT_MOVETO 6#define PT_LINETO 2#define PT_BEZIERTO 4#define PT_CLOSEFIGURE 1#define TT_AVAILABLE 1#define TT_ENABLED 2
#ifdef __WINESRC__#define WINE_TT_SUBPIXEL_RENDERING_ENABLED 0x4000#define WINE_TT_HINTER_ENABLED 0x8000#endif
#define BLACK_BRUSH 4#define DKGRAY_BRUSH 3#define GRAY_BRUSH 2#define HOLLOW_BRUSH 5#define LTGRAY_BRUSH 1#define NULL_BRUSH 5#define WHITE_BRUSH 0#define BLACK_PEN 7#define NULL_PEN 8#define WHITE_PEN 6#define ANSI_FIXED_FONT 11#define ANSI_VAR_FONT 12#define DEVICE_DEFAULT_FONT 14#define DEFAULT_GUI_FONT 17#define OEM_FIXED_FONT 10#define SYSTEM_FONT 13#define SYSTEM_FIXED_FONT 16#define DEFAULT_PALETTE 15#if (_WIN32_WINNT >= 0x0500)#define DC_BRUSH 18#define DC_PEN 19#endif#if (_WIN32_WINNT >= 0x0500)#define STOCK_LAST 19#elif (WINVER >= 0x0400)#define STOCK_LAST 17#else#define STOCK_LAST 16#endif#define SYSPAL_NOSTATIC 2#define SYSPAL_STATIC 1#define SYSPAL_ERROR 0#define TA_BASELINE 24#define TA_BOTTOM 8#define TA_TOP 0#define TA_CENTER 6#define TA_LEFT 0#define TA_RIGHT 2#define TA_RTLREADING 256#define TA_NOUPDATECP 0#define TA_UPDATECP 1#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)#define VTA_BASELINE 24#define VTA_CENTER 6#define VTA_LEFT TA_BOTTOM#define VTA_RIGHT TA_TOP#define VTA_BOTTOM TA_RIGHT#define VTA_TOP TA_LEFT#define MWT_IDENTITY 1#define MWT_LEFTMULTIPLY 2#define MWT_RIGHTMULTIPLY 3#define MWT_MIN MWT_IDENTITY#define MWT_MAX MWT_RIGHTMULTIPLY#define OPAQUE 2#define TRANSPARENT 1#define BKMODE_LAST 2#define BLACKONWHITE 1#define WHITEONBLACK 2#define COLORONCOLOR 3#define HALFTONE 4#define MAXSTRETCHBLTMODE 4#define STRETCH_ANDSCANS 1#define STRETCH_DELETESCANS 3#define STRETCH_HALFTONE 4#define STRETCH_ORSCANS 2#define TCI_SRCCHARSET 1#define TCI_SRCCODEPAGE 2#define TCI_SRCFONTSIG 3#define TCI_SRCLOCALE 4096#if (_WIN32_WINNT >= 0x0500)#define SHADEBLENDCAPS 120#define COLORMGMTCAPS 121/* SHADEBLENDCAPS */#define SB_NONE 0x00000000#define SB_CONST_ALPHA 0x00000001#define SB_PIXEL_ALPHA 0x00000002#define SB_PREMULT_ALPHA 0x00000004#define SB_GRAD_RECT 0x00000010#define SB_GRAD_TRI 0x00000020/* Color Management caps */#define CM_NONE 0x00000000#define CM_DEVICE_ICM 0x00000001#define CM_GAMMA_RAMP 0x00000002#define CM_CMYK_COLOR 0x00000004#endif#define ICM_ON 2#define ICM_OFF 1#define ICM_QUERY 3
#if (WINVER >= 0x0400)typedef struct _DRAWPATRECT { POINT ptPosition; POINT ptSize; WORD wStyle; WORD wPattern;} DRAWPATRECT, *PDRAWPATRECT;#endif
#define NEWFRAME 1#define ABORTDOC 2#define NEXTBAND 3#define SETCOLORTABLE 4#define GETCOLORTABLE 5#define FLUSHOUTPUT 6#define DRAFTMODE 7#define QUERYESCSUPPORT 8#define SETABORTPROC 9#define STARTDOC 10#define ENDDOC 11#define GETPHYSPAGESIZE 12#define GETPRINTINGOFFSET 13#define GETSCALINGFACTOR 14#define MFCOMMENT 15#define GETPENWIDTH 16#define SETCOPYCOUNT 17#define SELECTPAPERSOURCE 18#define DEVICEDATA 19#define PASSTHROUGH 19#define GETTECHNOLGY 20#define GETTECHNOLOGY 20#define SETLINECAP 21#define SETLINEJOIN 22#define SETMITERLIMIT 23#define BANDINFO 24#define DRAWPATTERNRECT 25#define GETVECTORPENSIZE 26#define GETVECTORBRUSHSIZE 27#define ENABLEDUPLEX 28#define GETSETPAPERBINS 29#define GETSETPRINTORIENT 30#define ENUMPAPERBINS 31#define SETDIBSCALING 32#define EPSPRINTING 33#define ENUMPAPERMETRICS 34#define GETSETPAPERMETRICS 35#define POSTSCRIPT_DATA 37#define POSTSCRIPT_IGNORE 38#define MOUSETRAILS 39#define GETDEVICEUNITS 42#define GETEXTENDEDTEXTMETRICS 256#define GETEXTENTTABLE 257#define GETPAIRKERNTABLE 258#define GETTRACKKERNTABLE 259#define EXTTEXTOUT 512#define GETFACENAME 513#define DOWNLOADFACE 514#define ENABLERELATIVEWIDTHS 768#define ENABLEPAIRKERNING 769#define SETKERNTRACK 770#define SETALLJUSTVALUES 771#define SETCHARSET 772#define STRETCHBLT 2048#define METAFILE_DRIVER 2049#define GETSETSCREENPARAMS 3072#define QUERYDIBSUPPORT 3073#define BEGIN_PATH 4096#define CLIP_TO_PATH 4097#define END_PATH 4098#define EXT_DEVICE_CAPS 4099#define RESTORE_CTM 4100#define SAVE_CTM 4101#define SET_ARC_DIRECTION 4102#define SET_BACKGROUND_COLOR 4103#define SET_POLY_MODE 4104#define SET_SCREEN_ANGLE 4105#define SET_SPREAD 4106#define TRANSFORM_CTM 4107#define SET_CLIP_BOX 4108#define SET_BOUNDS 4109#define SET_MIRROR_MODE 4110#define OPENCHANNEL 4110#define DOWNLOADHEADER 4111#define CLOSECHANNEL 4112#define POSTSCRIPT_PASSTHROUGH 4115#define ENCAPSULATED_POSTSCRIPT 4116#define POSTSCRIPT_IDENTIFY 4117#define POSTSCRIPT_INJECTION 4118#define CHECKJPEGFORMAT 4119#define CHECKPNGFORMAT 4120#define GET_PS_FEATURESETTING 4121#define SPCLPASSTHROUGH2 4568#define QDI_SETDIBITS 1#define QDI_GETDIBITS 2#define QDI_DIBTOSCREEN 4#define QDI_STRETCHDIB 8#define SP_NOTREPORTED 0x4000#define PR_JOBSTATUS 0#define ASPECT_FILTERING 1#define GS_8BIT_INDICES 0x00000001#define GGI_MARK_NONEXISTING_GLYPHS 0X0001#define BS_SOLID 0#define BS_NULL 1#define BS_HOLLOW 1#define BS_HATCHED 2#define BS_PATTERN 3#define BS_INDEXED 4#define BS_DIBPATTERN 5#define BS_DIBPATTERNPT 6#define BS_PATTERN8X8 7#define BS_DIBPATTERN8X8 8#define BS_MONOPATTERN 9#define LCS_CALIBRATED_RGB 0#define LCS_DEVICE_RGB 1#define LCS_DEVICE_CMYK 2#define LCS_GM_BUSINESS 1#define LCS_GM_GRAPHICS 2#define LCS_GM_IMAGES 4#define LCS_GM_ABS_COLORIMETRIC 8#define LCS_SIGNATURE 0x50534F43 // 'PSOC'#define LCS_sRGB 'sRGB'#define LCS_WINDOWS_COLOR_SPACE 'Win '#define RASTER_FONTTYPE 1#define DEVICE_FONTTYPE 2#define TRUETYPE_FONTTYPE 4#define DMORIENT_PORTRAIT 1#define DMORIENT_LANDSCAPE 2#define DMPAPER_FIRST 1#define DMPAPER_LETTER 1#define DMPAPER_LETTERSMALL 2#define DMPAPER_TABLOID 3#define DMPAPER_LEDGER 4#define DMPAPER_LEGAL 5#define DMPAPER_STATEMENT 6#define DMPAPER_EXECUTIVE 7#define DMPAPER_A3 8#define DMPAPER_A4 9#define DMPAPER_A4SMALL 10#define DMPAPER_A5 11#define DMPAPER_B4 12#define DMPAPER_B5 13#define DMPAPER_FOLIO 14#define DMPAPER_QUARTO 15#define DMPAPER_10X14 16#define DMPAPER_11X17 17#define DMPAPER_NOTE 18#define DMPAPER_ENV_9 19#define DMPAPER_ENV_10 20#define DMPAPER_ENV_11 21#define DMPAPER_ENV_12 22#define DMPAPER_ENV_14 23#define DMPAPER_CSHEET 24#define DMPAPER_DSHEET 25#define DMPAPER_ESHEET 26#define DMPAPER_ENV_DL 27#define DMPAPER_ENV_C5 28#define DMPAPER_ENV_C3 29#define DMPAPER_ENV_C4 30#define DMPAPER_ENV_C6 31#define DMPAPER_ENV_C65 32#define DMPAPER_ENV_B4 33#define DMPAPER_ENV_B5 34#define DMPAPER_ENV_B6 35#define DMPAPER_ENV_ITALY 36#define DMPAPER_ENV_MONARCH 37#define DMPAPER_ENV_PERSONAL 38#define DMPAPER_FANFOLD_US 39#define DMPAPER_FANFOLD_STD_GERMAN 40#define DMPAPER_FANFOLD_LGL_GERMAN 41#define DMPAPER_ISO_B4 42#define DMPAPER_JAPANESE_POSTCARD 43#define DMPAPER_9X11 44#define DMPAPER_10X11 45#define DMPAPER_15X11 46#define DMPAPER_ENV_INVITE 47#define DMPAPER_RESERVED_48 48#define DMPAPER_RESERVED_49 49#define DMPAPER_LETTER_EXTRA 50#define DMPAPER_LEGAL_EXTRA 51#define DMPAPER_TABLOID_EXTRA 52#define DMPAPER_A4_EXTRA 53#define DMPAPER_LETTER_TRANSVERSE 54#define DMPAPER_A4_TRANSVERSE 55#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56#define DMPAPER_A_PLUS 57#define DMPAPER_B_PLUS 58#define DMPAPER_LETTER_PLUS 59#define DMPAPER_A4_PLUS 60#define DMPAPER_A5_TRANSVERSE 61#define DMPAPER_B5_TRANSVERSE 62#define DMPAPER_A3_EXTRA 63#define DMPAPER_A5_EXTRA 64#define DMPAPER_B5_EXTRA 65#define DMPAPER_A2 66#define DMPAPER_A3_TRANSVERSE 67#define DMPAPER_A3_EXTRA_TRANSVERSE 68#define DMPAPER_LAST 68#define DMPAPER_USER 256#define DMBIN_FIRST 1#define DMBIN_UPPER 1#define DMBIN_ONLYONE 1#define DMBIN_LOWER 2#define DMBIN_MIDDLE 3#define DMBIN_MANUAL 4#define DMBIN_ENVELOPE 5#define DMBIN_ENVMANUAL 6#define DMBIN_AUTO 7#define DMBIN_TRACTOR 8#define DMBIN_SMALLFMT 9#define DMBIN_LARGEFMT 10#define DMBIN_LARGECAPACITY 11#define DMBIN_CASSETTE 14#define DMBIN_FORMSOURCE 15#define DMBIN_LAST 15#define DMBIN_USER 256#define DMRES_DRAFT (-1)#define DMRES_LOW (-2)#define DMRES_MEDIUM (-3)#define DMRES_HIGH (-4)#define DMCOLOR_MONOCHROME 1#define DMCOLOR_COLOR 2#define DMDUP_SIMPLEX 1#define DMDUP_VERTICAL 2#define DMDUP_HORIZONTAL 3#define DMTT_BITMAP 1#define DMTT_DOWNLOAD 2#define DMTT_SUBDEV 3#define DMTT_DOWNLOAD_OUTLINE 4#define DMCOLLATE_FALSE 0#define DMCOLLATE_TRUE 1
#define DMDO_DEFAULT 0#define DMDO_90 1#define DMDO_180 2#define DMDO_270 3
#define DMDFO_DEFAULT 0#define DMDFO_STRETCH 1#define DMDFO_CENTER 2
#define DM_GRAYSCALE 0x00000001#define DM_INTERLACED 0x00000002#define DMDISPLAYFLAGS_TEXTMODE 0x00000004
#define DM_UPDATE 1#define DM_COPY 2#define DM_PROMPT 4#define DM_MODIFY 8#define DM_IN_BUFFER DM_MODIFY#define DM_IN_PROMPT DM_PROMPT#define DM_OUT_BUFFER DM_COPY#define DM_OUT_DEFAULT DM_UPDATE
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)#define DM_SPECVERSION 0x0401#elif (WINVER >= 0x0400)#define DM_SPECVERSION 0x0400#else#define DM_SPECVERSION 0x0320#endif
#define DM_ORIENTATION 0x00000001#define DM_PAPERSIZE 0x00000002#define DM_PAPERLENGTH 0x00000004#define DM_PAPERWIDTH 0x00000008#define DM_SCALE 0x00000010#define DM_POSITION 0x00000020#define DM_NUP 0x00000040#define DM_DISPLAYORIENTATION 0x00000080#define DM_COPIES 0x00000100#define DM_DEFAULTSOURCE 0x00000200#define DM_PRINTQUALITY 0x00000400#define DM_COLOR 0x00000800#define DM_DUPLEX 0x00001000#define DM_YRESOLUTION 0x00002000#define DM_TTOPTION 0x00004000#define DM_COLLATE 0x00008000#define DM_FORMNAME 0x00010000#define DM_LOGPIXELS 0x00020000#define DM_BITSPERPEL 0x00040000#define DM_PELSWIDTH 0x00080000#define DM_PELSHEIGHT 0x00100000#define DM_DISPLAYFLAGS 0x00200000#define DM_DISPLAYFREQUENCY 0x00400000#define DM_ICMMETHOD 0x00800000#define DM_ICMINTENT 0x01000000#define DM_MEDIATYPE 0x02000000#define DM_DITHERTYPE 0x04000000#define DM_PANNINGWIDTH 0x08000000#define DM_PANNINGHEIGHT 0x10000000#if (WINVER >= 0x0501)#define DM_DISPLAYFIXEDOUTPUT 0x20000000#endif
#define QDC_ALL_PATHS 0x00000001
#define DMICMMETHOD_NONE 1#define DMICMMETHOD_SYSTEM 2#define DMICMMETHOD_DRIVER 3#define DMICMMETHOD_DEVICE 4#define DMICMMETHOD_USER 256#define DMICM_SATURATE 1#define DMICM_CONTRAST 2#define DMICM_COLORMETRIC 3#define DMICM_USER 256#define DMMEDIA_STANDARD 1#define DMMEDIA_TRANSPARENCY 2#define DMMEDIA_GLOSSY 3#define DMMEDIA_USER 256#define DMDITHER_NONE 1#define DMDITHER_COARSE 2#define DMDITHER_FINE 3#define DMDITHER_LINEART 4#define DMDITHER_ERRORDIFFUSION 5#define DMDITHER_RESERVED6 6#define DMDITHER_RESERVED7 7#define DMDITHER_RESERVED8 8#define DMDITHER_RESERVED9 9#define DMDITHER_GRAYSCALE 10#define DMDITHER_USER 256#define GDI_ERROR 0xFFFFFFFF#define HGDI_ERROR ((HANDLE)GDI_ERROR)#define TMPF_FIXED_PITCH 1#define TMPF_VECTOR 2#define TMPF_TRUETYPE 4#define TMPF_DEVICE 8#define NTM_ITALIC 1#define NTM_BOLD 32#define NTM_REGULAR 64#define TT_POLYGON_TYPE 24#define TT_PRIM_LINE 1#define TT_PRIM_QSPLINE 2#define TT_PRIM_CSPLINE 3#define FONTMAPPER_MAX 10#define ENHMETA_STOCK_OBJECT 0x80000000#define WGL_FONT_LINES 0#define WGL_FONT_POLYGONS 1#define LPD_DOUBLEBUFFER 1#define LPD_STEREO 2#define LPD_SUPPORT_GDI 16#define LPD_SUPPORT_OPENGL 32#define LPD_SHARE_DEPTH 64#define LPD_SHARE_STENCIL 128#define LPD_SHARE_ACCUM 256#define LPD_SWAP_EXCHANGE 512#define LPD_SWAP_COPY 1024#define LPD_TRANSPARENT 4096#define LPD_TYPE_RGBA 0#define LPD_TYPE_COLORINDEX 1#define WGL_SWAP_MAIN_PLANE 1#define WGL_SWAP_OVERLAY1 2#define WGL_SWAP_OVERLAY2 4#define WGL_SWAP_OVERLAY3 8#define WGL_SWAP_OVERLAY4 16#define WGL_SWAP_OVERLAY5 32#define WGL_SWAP_OVERLAY6 64#define WGL_SWAP_OVERLAY7 128#define WGL_SWAP_OVERLAY8 256#define WGL_SWAP_OVERLAY9 512#define WGL_SWAP_OVERLAY10 1024#define WGL_SWAP_OVERLAY11 2048#define WGL_SWAP_OVERLAY12 4096#define WGL_SWAP_OVERLAY13 8192#define WGL_SWAP_OVERLAY14 16384#define WGL_SWAP_OVERLAY15 32768#define WGL_SWAP_UNDERLAY1 65536#define WGL_SWAP_UNDERLAY2 0x20000#define WGL_SWAP_UNDERLAY3 0x40000#define WGL_SWAP_UNDERLAY4 0x80000#define WGL_SWAP_UNDERLAY5 0x100000#define WGL_SWAP_UNDERLAY6 0x200000#define WGL_SWAP_UNDERLAY7 0x400000#define WGL_SWAP_UNDERLAY8 0x800000#define WGL_SWAP_UNDERLAY9 0x1000000#define WGL_SWAP_UNDERLAY10 0x2000000#define WGL_SWAP_UNDERLAY11 0x4000000#define WGL_SWAP_UNDERLAY12 0x8000000#define WGL_SWAP_UNDERLAY13 0x10000000#define WGL_SWAP_UNDERLAY14 0x20000000#define WGL_SWAP_UNDERLAY15 0x40000000#define AC_SRC_OVER 0#define LAYOUT_LTR 0#define LAYOUT_RTL 1 // Right to left#define LAYOUT_BTT 2 // Bottom to top#define LAYOUT_VBH 4 // Vertical before horizontal#define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)#define LAYOUT_BITMAPORIENTATIONPRESERVED 8#define CAPTUREBLT 0x40000000#define NOMIRRORBITMAP 0x80000000#if (WINVER > 0x400)#define CS_ENABLE 0x00000001#define CS_DISABLE 0x00000002#define CS_DELETE_TRANSFORM 0x00000003#endif
#if (WINVER > 0x500)#define GRADIENT_FILL_RECT_H 0x00#define GRADIENT_FILL_RECT_V 0x01#define GRADIENT_FILL_TRIANGLE 0x02#define GRADIENT_FILL_OP_FLAG 0xff#define COLORMATCHTOTARGET_EMBEDED 0x00000001#define CREATECOLORSPACE_EMBEDED 0x00000001#define SETICMPROFILE_EMBEDED 0x00000001#endif
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010#define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
#if (_WIN32_WINNT >= 0x500)#define DISPLAY_DEVICE_REMOVABLE 0x00000020#define DISPLAY_DEVICE_RDPUDD 0x01000000#define DISPLAY_DEVICE_DISCONNECT 0x02000000#define DISPLAY_DEVICE_REMOTE 0x04000000
#define DISPLAY_DEVICE_ACTIVE 0x00000001#define DISPLAY_DEVICE_ATTACHED 0x00000002#endif // (_WIN32_WINNT >= 0x500)
#if (_WIN32_WINNT >= 0x600)#define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000#endif // (_WIN32_WINNT >= 0x600)
#if (_WIN32_WINNT >= 0x602)#define DISPLAY_DEVICE_ACC_DRIVER 0x00000040#endif // (_WIN32_WINNT >= 0x602)
#if (WINVER >= 0x601)#define DISPLAYCONFIG_PATH_ACTIVE 0x00000001#define DISPLAYCONFIG_PATH_PREFERRED_UNSCALED 0x00000004#define DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 0x00000008#define DISPLAYCONFIG_PATH_BOOST_REFRESH_RATE 0x00000010#define DISPLAYCONFIG_PATH_VALID_FLAGS 0x0000001D#define DISPLAYCONFIG_PATH_MODE_IDX_INVALID 0xFFFFFFFF#define DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID 0x0000FFFF#define DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID 0x0000FFFF#define DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID 0x0000FFFF#define DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID 0x0000FFFF#define DISPLAYCONFIG_SOURCE_IN_USE 0x00000001#define DISPLAYCONFIG_TARGET_IN_USE 0x00000001#define DISPLAYCONFIG_TARGET_FORCIBLE 0x00000002#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT 0x00000004#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH 0x00000008#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM 0x00000010#define DISPLAYCONFIG_TARGET_IS_HMD 0x00000020
#define QDC_ALL_PATHS 0x00000001#define QDC_ONLY_ACTIVE_PATHS 0x00000002#define QDC_DATABASE_CURRENT 0x00000004#define QDC_VIRTUAL_MODE_AWARE 0x00000010#define QDC_INCLUDE_HMD 0x00000020#define QDC_VIRTUAL_REFRESH_RATE_AWARE 0x00000040
#define SDC_TOPOLOGY_INTERNAL 0x00000001#define SDC_TOPOLOGY_CLONE 0x00000002#define SDC_TOPOLOGY_EXTEND 0x00000004#define SDC_TOPOLOGY_EXTERNAL 0x00000008#define SDC_TOPOLOGY_SUPPLIED 0x00000010#define SDC_USE_DATABASE_CURRENT (SDC_TOPOLOGY_INTERNAL | SDC_TOPOLOGY_CLONE | SDC_TOPOLOGY_EXTEND | SDC_TOPOLOGY_EXTERNAL)#define SDC_USE_SUPPLIED_DISPLAY_CONFIG 0x00000020#define SDC_VALIDATE 0x00000040#define SDC_APPLY 0x00000080#define SDC_NO_OPTIMIZATION 0x00000100#define SDC_SAVE_TO_DATABASE 0x00000200#define SDC_ALLOW_CHANGES 0x00000400#define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800#define SDC_FORCE_MODE_ENUMERATION 0x00001000#define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000#define SDC_VIRTUAL_MODE_AWARE 0x00008000#define SDC_VIRTUAL_REFRESH_RATE_AWARE 0x00020000
typedef struct DISPLAYCONFIG_RATIONAL{ UINT32 Numerator; UINT32 Denominator;} DISPLAYCONFIG_RATIONAL;
typedef enum{ DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
typedef enum{ DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED, DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3, DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_SCANLINE_ORDERING;
typedef struct DISPLAYCONFIG_2DREGION{ UINT32 cx; UINT32 cy;} DISPLAYCONFIG_2DREGION;
typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO{ UINT64 pixelRate; DISPLAYCONFIG_RATIONAL hSyncFreq; DISPLAYCONFIG_RATIONAL vSyncFreq; DISPLAYCONFIG_2DREGION activeSize; DISPLAYCONFIG_2DREGION totalSize; union { struct { UINT32 videoStandard : 16; UINT32 vSyncFreqDivider : 6; UINT32 reserved : 10; } AdditionalSignalInfo; UINT32 videoStandard; } DUMMYUNIONNAME; DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;} DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
typedef enum{ DISPLAYCONFIG_SCALING_IDENTITY = 1, DISPLAYCONFIG_SCALING_CENTERED, DISPLAYCONFIG_SCALING_STRETCHED, DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX, DISPLAYCONFIG_SCALING_CUSTOM, DISPLAYCONFIG_SCALING_PREFERRED = 128, DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_SCALING;
typedef enum{ DISPLAYCONFIG_ROTATION_IDENTITY = 1, DISPLAYCONFIG_ROTATION_ROTATE90, DISPLAYCONFIG_ROTATION_ROTATE180, DISPLAYCONFIG_ROTATION_ROTATE270, DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_ROTATION;
typedef enum{ DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1, DISPLAYCONFIG_MODE_INFO_TYPE_TARGET, DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE, DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_MODE_INFO_TYPE;
typedef enum{ DISPLAYCONFIG_PIXELFORMAT_8BPP = 1, DISPLAYCONFIG_PIXELFORMAT_16BPP, DISPLAYCONFIG_PIXELFORMAT_24BPP, DISPLAYCONFIG_PIXELFORMAT_32BPP, DISPLAYCONFIG_PIXELFORMAT_NONGDI, DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_PIXELFORMAT;
typedef struct DISPLAYCONFIG_SOURCE_MODE{ UINT32 width; UINT32 height; DISPLAYCONFIG_PIXELFORMAT pixelFormat; POINTL position;} DISPLAYCONFIG_SOURCE_MODE;
typedef struct DISPLAYCONFIG_TARGET_MODE{ DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo;} DISPLAYCONFIG_TARGET_MODE;
typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO{ POINTL PathSourceSize; RECTL DesktopImageRegion; RECTL DesktopImageClip;} DISPLAYCONFIG_DESKTOP_IMAGE_INFO;
typedef struct DISPLAYCONFIG_MODE_INFO{ DISPLAYCONFIG_MODE_INFO_TYPE infoType; UINT32 id; LUID adapterId; union { DISPLAYCONFIG_TARGET_MODE targetMode; DISPLAYCONFIG_SOURCE_MODE sourceMode; DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo; } DUMMYUNIONNAME;} DISPLAYCONFIG_MODE_INFO;
typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO{ LUID adapterId; UINT32 id; union { UINT32 modeInfoIdx; struct { UINT32 cloneGroupId : 16; UINT32 sourceModeInfoIdx : 16; } DUMMYSTRUCTNAME; } DUMMYUNIONNAME; UINT32 statusFlags;} DISPLAYCONFIG_PATH_SOURCE_INFO;
typedef struct DISPLAYCONFIG_PATH_TARGET_INFO{ LUID adapterId; UINT32 id; union { UINT32 modeInfoIdx; struct { UINT32 desktopModeInfoIdx : 16; UINT32 targetModeInfoIdx : 16; } DUMMYSTRUCTNAME; } DUMMYUNIONNAME; DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; DISPLAYCONFIG_ROTATION rotation; DISPLAYCONFIG_SCALING scaling; DISPLAYCONFIG_RATIONAL refreshRate; DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; BOOL targetAvailable; UINT32 statusFlags;} DISPLAYCONFIG_PATH_TARGET_INFO;
typedef struct DISPLAYCONFIG_PATH_INFO{ DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo; DISPLAYCONFIG_PATH_TARGET_INFO targetInfo; UINT32 flags;} DISPLAYCONFIG_PATH_INFO;
typedef enum DISPLAYCONFIG_TOPOLOGY_ID{ DISPLAYCONFIG_TOPOLOGY_INTERNAL = 1, DISPLAYCONFIG_TOPOLOGY_CLONE = 2, DISPLAYCONFIG_TOPOLOGY_EXTEND = 4, DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 8, DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_TOPOLOGY_ID;
typedef enum{ DISPLAYCONFIG_DEVICE_INFO_SET_SOURCE_DPI_SCALE = -4, // Needed for Wine's tests DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_DPI_SCALE = -3, // Needed for Wine's tests
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE, DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME, DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE, DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION, DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION, DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO, DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE, DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL, DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION, DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION, DISPLAYCONFIG_DEVICE_INFO_SET_RESERVED1, DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO_2, DISPLAYCONFIG_DEVICE_INFO_SET_HDR_STATE, DISPLAYCONFIG_DEVICE_INFO_SET_WCG_STATE, DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_DEVICE_INFO_TYPE;
typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER{ DISPLAYCONFIG_DEVICE_INFO_TYPE type; UINT32 size; LUID adapterId; UINT32 id;} DISPLAYCONFIG_DEVICE_INFO_HEADER;
typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; WCHAR viewGdiDeviceName[CCHDEVICENAME];} DISPLAYCONFIG_SOURCE_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS{ union { struct { UINT32 friendlyNameFromEdid : 1; UINT32 friendlyNameForced : 1; UINT32 edidIdsValid : 1; UINT32 reserved : 29; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYUNIONNAME;} DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags; DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; UINT16 edidManufactureId; UINT16 edidProductCodeId; UINT32 connectorInstance; WCHAR monitorFriendlyDeviceName[64]; WCHAR monitorDevicePath[128];} DISPLAYCONFIG_TARGET_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; UINT32 width; UINT32 height; DISPLAYCONFIG_TARGET_MODE targetMode;} DISPLAYCONFIG_TARGET_PREFERRED_MODE;
typedef struct DISPLAYCONFIG_ADAPTER_NAME{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; WCHAR adapterDevicePath[128];} DISPLAYCONFIG_ADAPTER_NAME;
typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;} DISPLAYCONFIG_TARGET_BASE_TYPE;
typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 bootPersistenceOn : 1; UINT32 reserved : 31; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYUNIONNAME;} DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 disableMonitorVirtualResolution : 1; UINT32 reserved : 31; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYSTRUCTNAME;} DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION;
typedef enum _DISPLAYCONFIG_COLOR_ENCODING{ DISPLAYCONFIG_COLOR_ENCODING_RGB, DISPLAYCONFIG_COLOR_ENCODING_YCBCR444, DISPLAYCONFIG_COLOR_ENCODING_YCBCR422, DISPLAYCONFIG_COLOR_ENCODING_YCBCR420, DISPLAYCONFIG_COLOR_ENCODING_INTENSITY, DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xFFFFFFFF} DISPLAYCONFIG_COLOR_ENCODING;
typedef struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 advancedColorSupported : 1; UINT32 advancedColorEnabled : 1; UINT32 wideColorEnforced : 1; UINT32 advancedColorForceDisabled : 1; UINT32 reserved :28; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYUNIONNAME; DISPLAYCONFIG_COLOR_ENCODING colorEncoding; UINT32 bitsPerColorChannel;} DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO;
typedef struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 enableAdvancedColor :1; UINT32 reserved :31; } DUMMYSTRUCTNAME; UINT32 value; }DUMMYUNIONNAME;} DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE;
typedef struct _DISPLAYCONFIG_SDR_WHITE_LEVEL{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; ULONG SDRWhiteLevel;} DISPLAYCONFIG_SDR_WHITE_LEVEL;
typedef struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 isSpecializationEnabled : 1; UINT32 isSpecializationAvailableForMonitor : 1; UINT32 isSpecializationAvailableForSystem : 1; UINT32 reserved : 29; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYUNIONNAME;} DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION;
typedef struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION{ DISPLAYCONFIG_DEVICE_INFO_HEADER header; union { struct { UINT32 isSpecializationEnabled : 1; UINT32 reserved : 31; } DUMMYSTRUCTNAME; UINT32 value; } DUMMYUNIONNAME; GUID specializationType; GUID specializationSubType; WCHAR specializationApplicationName[128];} DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION;#endif // (WINVER >= 0x601)
#ifndef RC_INVOKEDtypedef struct _ABC { int abcA; UINT abcB; int abcC;} ABC, *PABC, *LPABC;typedef struct _ABCFLOAT { FLOAT abcfA; FLOAT abcfB; FLOAT abcfC;} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits;} BITMAP,*PBITMAP,*LPBITMAP;typedef struct tagBITMAPCOREHEADER { DWORD bcSize; WORD bcWidth; WORD bcHeight; WORD bcPlanes; WORD bcBitCount;} BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;#include "pshpack1.h"typedef struct tagRGBTRIPLE { BYTE rgbtBlue; BYTE rgbtGreen; BYTE rgbtRed;} RGBTRIPLE,*LPRGBTRIPLE;#include "poppack.h"#include "pshpack2.h"typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits;} BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;#include "poppack.h"typedef struct _BITMAPCOREINFO { BITMAPCOREHEADER bmciHeader; RGBTRIPLE bmciColors[1];} BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant;} BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved;} RGBQUAD,*LPRGBQUAD;typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1];} BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;typedef long FXPT16DOT16,*LPFXPT16DOT16;typedef long FXPT2DOT30,*LPFXPT2DOT30;typedef struct tagCIEXYZ { FXPT2DOT30 ciexyzX; FXPT2DOT30 ciexyzY; FXPT2DOT30 ciexyzZ;} CIEXYZ,*LPCIEXYZ;typedef struct tagCIEXYZTRIPLE { CIEXYZ ciexyzRed; CIEXYZ ciexyzGreen; CIEXYZ ciexyzBlue;} CIEXYZTRIPLE,*LPCIEXYZTRIPLE;typedef struct { DWORD bV4Size; LONG bV4Width; LONG bV4Height; WORD bV4Planes; WORD bV4BitCount; DWORD bV4V4Compression; DWORD bV4SizeImage; LONG bV4XPelsPerMeter; LONG bV4YPelsPerMeter; DWORD bV4ClrUsed; DWORD bV4ClrImportant; DWORD bV4RedMask; DWORD bV4GreenMask; DWORD bV4BlueMask; DWORD bV4AlphaMask; DWORD bV4CSType; CIEXYZTRIPLE bV4Endpoints; DWORD bV4GammaRed; DWORD bV4GammaGreen; DWORD bV4GammaBlue;} BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;#if (WINVER >= 0x500)typedef struct { DWORD bV5Size; LONG bV5Width; LONG bV5Height; WORD bV5Planes; WORD bV5BitCount; DWORD bV5Compression; DWORD bV5SizeImage; LONG bV5XPelsPerMeter; LONG bV5YPelsPerMeter; DWORD bV5ClrUsed; DWORD bV5ClrImportant; DWORD bV5RedMask; DWORD bV5GreenMask; DWORD bV5BlueMask; DWORD bV5AlphaMask; DWORD bV5CSType; CIEXYZTRIPLE bV5Endpoints; DWORD bV5GammaRed; DWORD bV5GammaGreen; DWORD bV5GammaBlue; DWORD bV5Intent; DWORD bV5ProfileData; DWORD bV5ProfileSize; DWORD bV5Reserved;} BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;#endiftypedef struct tagFONTSIGNATURE { DWORD fsUsb[4]; DWORD fsCsb[2];} FONTSIGNATURE, *PFONTSIGNATURE,*LPFONTSIGNATURE;typedef struct tagCHARSETINFO { UINT ciCharset; UINT ciACP; FONTSIGNATURE fs;} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;typedef struct tagCOLORADJUSTMENT { WORD caSize; WORD caFlags; WORD caIlluminantIndex; WORD caRedGamma; WORD caGreenGamma; WORD caBlueGamma; WORD caReferenceBlack; WORD caReferenceWhite; SHORT caContrast; SHORT caBrightness; SHORT caColorfulness; SHORT caRedGreenTint;} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;typedef struct _devicemodeA { BYTE dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; _ANONYMOUS_UNION union { _ANONYMOUS_STRUCT struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; } DUMMYSTRUCTNAME1; struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; } DUMMYSTRUCTNAME2; } DUMMYUNIONNAME1; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BYTE dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; _ANONYMOUS_UNION union { DWORD dmDisplayFlags; DWORD dmNup; } DUMMYUNIONNAME2; DWORD dmDisplayFrequency;#if(WINVER >= 0x0400) DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2;#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) DWORD dmPanningWidth; DWORD dmPanningHeight;#endif#endif /* WINVER >= 0x0400 */} DEVMODEA,*LPDEVMODEA,*PDEVMODEA;typedef struct _devicemodeW { WCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; _ANONYMOUS_UNION union { _ANONYMOUS_STRUCT struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; } DUMMYSTRUCTNAME1; struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; } DUMMYSTRUCTNAME2; } DUMMYUNIONNAME1; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; WCHAR dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; _ANONYMOUS_UNION union { DWORD dmDisplayFlags; DWORD dmNup; } DUMMYUNIONNAME2; DWORD dmDisplayFrequency;#if(WINVER >= 0x0400) DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2;#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) DWORD dmPanningWidth; DWORD dmPanningHeight;#endif#endif /* WINVER >= 0x0400 */} DEVMODEW,*LPDEVMODEW,*PDEVMODEW,*NPDEVMODEW;typedef struct tagDIBSECTION { BITMAP dsBm; BITMAPINFOHEADER dsBmih; DWORD dsBitfields[3]; HANDLE dshSection; DWORD dsOffset;} DIBSECTION,*PDIBSECTION,*LPDIBSECTION;typedef struct _DOCINFOA { int cbSize; LPCSTR lpszDocName; LPCSTR lpszOutput; LPCSTR lpszDatatype; DWORD fwType;} DOCINFOA,*LPDOCINFOA;typedef struct _DOCINFOW { int cbSize; LPCWSTR lpszDocName; LPCWSTR lpszOutput; LPCWSTR lpszDatatype; DWORD fwType;} DOCINFOW,*LPDOCINFOW;typedef struct tagEMR { DWORD iType; DWORD nSize;} EMR,*PEMR;
#if(WINVER >= 0x0400)typedef struct tagEMRGLSRECORD { EMR emr; DWORD cbData; BYTE Data[1];} EMRGLSRECORD, *PEMRGLSRECORD;typedef struct tagEMRGLSBOUNDEDRECORD { EMR emr; RECTL rclBounds; DWORD cbData; BYTE Data[1];} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;#endiftypedef struct tagEMRANGLEARC { EMR emr; POINTL ptlCenter; DWORD nRadius; FLOAT eStartAngle; FLOAT eSweepAngle;} EMRANGLEARC,*PEMRANGLEARC;typedef struct tagEMRARC { EMR emr; RECTL rclBox; POINTL ptlStart; POINTL ptlEnd;} EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;typedef struct _XFORM { FLOAT eM11; FLOAT eM12; FLOAT eM21; FLOAT eM22; FLOAT eDx; FLOAT eDy;} XFORM,*PXFORM,*LPXFORM;typedef struct tagEMRBITBLT { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; COLORREF crBkColorSrc; DWORD iUsageSrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc;} EMRBITBLT,*PEMRBITBLT;typedef struct tagLOGBRUSH { UINT lbStyle; COLORREF lbColor; ULONG_PTR lbHatch;} LOGBRUSH,*PLOGBRUSH,*LPLOGBRUSH;typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;typedef struct tagLOGBRUSH32 { UINT lbStyle; COLORREF lbColor; ULONG lbHatch;} LOGBRUSH32, *PLOGBRUSH32;typedef struct tagEMRCREATEBRUSHINDIRECT { EMR emr; DWORD ihBrush; LOGBRUSH32 lb;} EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;typedef LONG LCSCSTYPE;typedef LONG LCSGAMUTMATCH;typedef struct tagLOGCOLORSPACEA { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; CHAR lcsFilename[MAX_PATH];} LOGCOLORSPACEA,*LPLOGCOLORSPACEA;typedef struct tagLOGCOLORSPACEW { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; WCHAR lcsFilename[MAX_PATH];} LOGCOLORSPACEW,*LPLOGCOLORSPACEW;typedef struct tagEMRCREATECOLORSPACEW { EMR emr; DWORD ihCS; LOGCOLORSPACEW lcs; DWORD dwFlags; DWORD cbData; BYTE Data[1];} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;typedef struct tagEMRCREATECOLORSPACE { EMR emr; DWORD ihCS; LOGCOLORSPACEA lcs;} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;typedef struct tagEMRCREATEDIBPATTERNBRUSHPT { EMR emr; DWORD ihBrush; DWORD iUsage; DWORD offBmi; DWORD cbBmi; DWORD offBits; DWORD cbBits;} EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;typedef struct tagEMRCREATEMONOBRUSH { EMR emr; DWORD ihBrush; DWORD iUsage; DWORD offBmi; DWORD cbBmi; DWORD offBits; DWORD cbBits;} EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
#ifndef _PALETTEENTRY_DEFINED#define _PALETTEENTRY_DEFINEDtypedef struct tagPALETTEENTRY { BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags;} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;#endif
#ifndef _LOGPALETTE_DEFINED#define _LOGPALETTE_DEFINEDtypedef struct tagLOGPALETTE { WORD palVersion; WORD palNumEntries; _Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];} LOGPALETTE, *NPLOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;#endif
typedef struct tagEMRCREATEPALETTE { EMR emr; DWORD ihPal; LOGPALETTE lgpl;} EMRCREATEPALETTE,*PEMRCREATEPALETTE;typedef struct tagLOGPEN { UINT lopnStyle; POINT lopnWidth; COLORREF lopnColor;} LOGPEN,*PLOGPEN,*LPLOGPEN;typedef struct tagEMRCREATEPEN { EMR emr; DWORD ihPen; LOGPEN lopn;} EMRCREATEPEN,*PEMRCREATEPEN;typedef struct tagEMRELLIPSE { EMR emr; RECTL rclBox;} EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;typedef struct tagEMREOF { EMR emr; DWORD nPalEntries; DWORD offPalEntries; DWORD nSizeLast;} EMREOF,*PEMREOF;typedef struct tagEMREXCLUDECLIPRECT { EMR emr; RECTL rclClip;} EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;typedef struct tagPANOSE { BYTE bFamilyType; BYTE bSerifStyle; BYTE bWeight; BYTE bProportion; BYTE bContrast; BYTE bStrokeVariation; BYTE bArmStyle; BYTE bLetterform; BYTE bMidline; BYTE bXHeight;} PANOSE, *LPPANOSE;typedef struct tagLOGFONTA { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; CHAR lfFaceName[LF_FACESIZE];} LOGFONTA,*PLOGFONTA,*LPLOGFONTA;typedef struct tagLOGFONTW { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; WCHAR lfFaceName[LF_FACESIZE];} LOGFONTW,*PLOGFONTW,*LPLOGFONTW;typedef struct tagEXTLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE]; DWORD elfVersion; DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[ELF_VENDOR_SIZE]; DWORD elfCulture; PANOSE elfPanose;} EXTLOGFONTA,*PEXTLOGFONTA,*LPEXTLOGFONTA;typedef struct tagEXTLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE]; DWORD elfVersion; DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[ELF_VENDOR_SIZE]; DWORD elfCulture; PANOSE elfPanose;} EXTLOGFONTW,*PEXTLOGFONTW,*LPEXTLOGFONTW;typedef struct tagEMREXTCREATEFONTINDIRECTW { EMR emr; DWORD ihFont; EXTLOGFONTW elfw;} EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;typedef struct tagEXTLOGPEN { DWORD elpPenStyle; DWORD elpWidth; UINT elpBrushStyle; COLORREF elpColor; ULONG_PTR elpHatch; DWORD elpNumEntries; DWORD elpStyleEntry[1];} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN,*NPEXTLOGPEN;typedef struct tagEMREXTCREATEPEN { EMR emr; DWORD ihPen; DWORD offBmi; DWORD cbBmi; DWORD offBits; DWORD cbBits; EXTLOGPEN elp;} EMREXTCREATEPEN,*PEMREXTCREATEPEN;typedef struct tagEMREXTFLOODFILL { EMR emr; POINTL ptlStart; COLORREF crColor; DWORD iMode;} EMREXTFLOODFILL,*PEMREXTFLOODFILL;typedef struct tagEMREXTSELECTCLIPRGN { EMR emr; DWORD cbRgnData; DWORD iMode; BYTE RgnData[1];} EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;typedef struct tagEMRTEXT { POINTL ptlReference; DWORD nChars; DWORD offString; DWORD fOptions; RECTL rcl; DWORD offDx;} EMRTEXT,*PEMRTEXT;typedef struct tagEMREXTTEXTOUTA { EMR emr; RECTL rclBounds; DWORD iGraphicsMode; FLOAT exScale; FLOAT eyScale; EMRTEXT emrtext;} EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;typedef struct tagEMRFILLPATH { EMR emr; RECTL rclBounds;} EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;typedef struct tagEMRFILLRGN { EMR emr; RECTL rclBounds; DWORD cbRgnData; DWORD ihBrush; BYTE RgnData[1];} EMRFILLRGN,*PEMRFILLRGN;typedef struct tagEMRFORMAT { DWORD dSignature; DWORD nVersion; DWORD cbData; DWORD offData;} EMRFORMAT, *PEMRFORMAT;
typedef struct tagEMRSETCOLORSPACE{ EMR emr; DWORD ihCS;} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE, EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
typedef struct tagEMRFRAMERGN { EMR emr; RECTL rclBounds; DWORD cbRgnData; DWORD ihBrush; SIZEL szlStroke; BYTE RgnData[1];} EMRFRAMERGN,*PEMRFRAMERGN;typedef struct tagEMRGDICOMMENT { EMR emr; DWORD cbData; BYTE Data[1];} EMRGDICOMMENT,*PEMRGDICOMMENT;typedef struct tagEMRINVERTRGN { EMR emr; RECTL rclBounds; DWORD cbRgnData; BYTE RgnData[1];} EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;typedef struct tagEMRLINETO { EMR emr; POINTL ptl;} EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;typedef struct tagEMRMASKBLT { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; COLORREF crBkColorSrc; DWORD iUsageSrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; LONG xMask; LONG yMask; DWORD iUsageMask; DWORD offBmiMask; DWORD cbBmiMask; DWORD offBitsMask; DWORD cbBitsMask;} EMRMASKBLT,*PEMRMASKBLT;typedef struct tagEMRMODIFYWORLDTRANSFORM { EMR emr; XFORM xform; DWORD iMode;} EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;typedef struct tagEMROFFSETCLIPRGN { EMR emr; POINTL ptlOffset;} EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;typedef struct tagEMRPLGBLT { EMR emr; RECTL rclBounds; POINTL aptlDest[3]; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; XFORM xformSrc; COLORREF crBkColorSrc; DWORD iUsageSrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; LONG xMask; LONG yMask; DWORD iUsageMask; DWORD offBmiMask; DWORD cbBmiMask; DWORD offBitsMask; DWORD cbBitsMask;} EMRPLGBLT,*PEMRPLGBLT;typedef struct tagEMRPOLYDRAW { EMR emr; RECTL rclBounds; DWORD cptl; POINTL aptl[1]; BYTE abTypes[1];} EMRPOLYDRAW,*PEMRPOLYDRAW;typedef struct tagEMRPOLYDRAW16 { EMR emr; RECTL rclBounds; DWORD cpts; POINTS apts[1]; BYTE abTypes[1];} EMRPOLYDRAW16,*PEMRPOLYDRAW16;typedef struct tagEMRPOLYLINE { EMR emr; RECTL rclBounds; DWORD cptl; POINTL aptl[1];} EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;typedef struct tagEMRPOLYLINE16 { EMR emr; RECTL rclBounds; DWORD cpts; POINTS apts[1];} EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;typedef struct tagEMRPOLYPOLYLINE { EMR emr; RECTL rclBounds; DWORD nPolys; DWORD cptl; DWORD aPolyCounts[1]; POINTL aptl[1];} EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;typedef struct tagEMRPOLYPOLYLINE16 { EMR emr; RECTL rclBounds; DWORD nPolys; DWORD cpts; DWORD aPolyCounts[1]; POINTS apts[1];} EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;typedef struct tagEMRPOLYTEXTOUTA { EMR emr; RECTL rclBounds; DWORD iGraphicsMode; FLOAT exScale; FLOAT eyScale; LONG cStrings; EMRTEXT aemrtext[1];} EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;typedef struct tagEMRRESIZEPALETTE { EMR emr; DWORD ihPal; DWORD cEntries;} EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;typedef struct tagEMRRESTOREDC { EMR emr; LONG iRelative;} EMRRESTOREDC,*PEMRRESTOREDC;typedef struct tagEMRROUNDRECT { EMR emr; RECTL rclBox; SIZEL szlCorner;} EMRROUNDRECT,*PEMRROUNDRECT;typedef struct tagEMRSCALEVIEWPORTEXTEX { EMR emr; LONG xNum; LONG xDenom; LONG yNum; LONG yDenom;} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
typedef struct tagEMRSELECTOBJECT { EMR emr; DWORD ihObject;} EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;typedef struct tagEMRSELECTPALETTE { EMR emr; DWORD ihPal;} EMRSELECTPALETTE,*PEMRSELECTPALETTE;typedef struct tagEMRSETARCDIRECTION { EMR emr; DWORD iArcDirection;} EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;typedef struct tagEMRSETTEXTCOLOR { EMR emr; COLORREF crColor;} EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;typedef struct tagEMRSETCOLORADJUSTMENT { EMR emr; COLORADJUSTMENT ColorAdjustment;} EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;typedef struct tagEMRSETDIBITSTODEVICE { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; DWORD iUsageSrc; DWORD iStartScan; DWORD cScans;} EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;typedef struct tagEMRSETMAPPERFLAGS { EMR emr; DWORD dwFlags;} EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;typedef struct tagEMRSETMITERLIMIT { EMR emr; FLOAT eMiterLimit;} EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;typedef struct tagEMRSETPALETTEENTRIES { EMR emr; DWORD ihPal; DWORD iStart; DWORD cEntries; PALETTEENTRY aPalEntries[1];} EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;typedef struct tagEMRSETPIXELV { EMR emr; POINTL ptlPixel; COLORREF crColor;} EMRSETPIXELV,*PEMRSETPIXELV;typedef struct tagEMRSETVIEWPORTEXTEX { EMR emr; SIZEL szlExtent;} EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;typedef struct tagEMRSETVIEWPORTORGEX { EMR emr; POINTL ptlOrigin;} EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;typedef struct tagEMRSETWORLDTRANSFORM { EMR emr; XFORM xform;} EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;typedef struct tagEMRSTRETCHBLT { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; COLORREF crBkColorSrc; DWORD iUsageSrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; LONG cxSrc; LONG cySrc;} EMRSTRETCHBLT,*PEMRSTRETCHBLT;typedef struct tagEMRALPHABLEND { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; COLORREF crBkColorSrc; DWORD iUsageSrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; LONG cxSrc; LONG cySrc;} EMRALPHABLEND, *PEMRALPHABLEND;typedef struct tagEMRSTRETCHDIBITS { EMR emr; RECTL rclBounds; LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; DWORD cbBmiSrc; DWORD offBitsSrc; DWORD cbBitsSrc; DWORD iUsageSrc; DWORD dwRop; LONG cxDest; LONG cyDest;} EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;typedef struct tagABORTPATH { EMR emr;} EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;typedef struct tagEMRSELECTCLIPPATH { EMR emr; DWORD iMode;} EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH, EMRSETBKMODE,*PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE, EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE, EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN,#if(WINVER >= 0x0500) EMRSETLAYOUT, *PEMRSETLAYOUT,#endif *PEMRSETTEXTALIGN;
#include "pshpack2.h"typedef struct tagMETAHEADER { WORD mtType; WORD mtHeaderSize; WORD mtVersion; DWORD mtSize; WORD mtNoObjects; DWORD mtMaxRecord; WORD mtNoParameters;} METAHEADER,*PMETAHEADER,*LPMETAHEADER;#include "poppack.h"typedef struct tagENHMETAHEADER { DWORD iType; DWORD nSize; RECTL rclBounds; RECTL rclFrame; DWORD dSignature; DWORD nVersion; DWORD nBytes; DWORD nRecords; WORD nHandles; WORD sReserved; DWORD nDescription; DWORD offDescription; DWORD nPalEntries; SIZEL szlDevice; SIZEL szlMillimeters;#if (WINVER >= 0x0400) DWORD cbPixelFormat; DWORD offPixelFormat; DWORD bOpenGL;#endif#if (WINVER >= 0x0500) SIZEL szlMicrometers;#endif} ENHMETAHEADER,*PENHMETAHEADER,*LPENHMETAHEADER;typedef struct tagMETARECORD { DWORD rdSize; WORD rdFunction; WORD rdParm[1];} METARECORD,*PMETARECORD,*LPMETARECORD;typedef struct tagENHMETARECORD { DWORD iType; DWORD nSize; DWORD dParm[1];} ENHMETARECORD,*LPENHMETARECORD;typedef struct tagHANDLETABLE { HGDIOBJ objectHandle[1];} HANDLETABLE,*PHANDLETABLE, *LPHANDLETABLE;
#ifndef _TEXTMETRIC_DEFINED#define _TEXTMETRIC_DEFINEDtypedef struct tagTEXTMETRICA { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; BYTE tmFirstChar; BYTE tmLastChar; BYTE tmDefaultChar; BYTE tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet;} TEXTMETRICA,*PTEXTMETRICA,*LPTEXTMETRICA;typedef struct tagTEXTMETRICW { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; WCHAR tmFirstChar; WCHAR tmLastChar; WCHAR tmDefaultChar; WCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet;} TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW;#endif
typedef struct _RGNDATAHEADER { DWORD dwSize; DWORD iType; DWORD nCount; DWORD nRgnSize; RECT rcBound;} RGNDATAHEADER, *PRGNDATAHEADER;typedef struct _RGNDATA { RGNDATAHEADER rdh; char Buffer[1];} RGNDATA,*PRGNDATA, *LPRGNDATA;/* for GetRandomRgn */#define SYSRGN 4typedef struct tagGCP_RESULTSA { DWORD lStructSize; LPSTR lpOutString; UINT *lpOrder; INT *lpDx; INT *lpCaretPos; LPSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; UINT nMaxFit;} GCP_RESULTSA,*LPGCP_RESULTSA;typedef struct tagGCP_RESULTSW { DWORD lStructSize; LPWSTR lpOutString; UINT *lpOrder; INT *lpDx; INT *lpCaretPos; LPWSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; UINT nMaxFit;} GCP_RESULTSW,*LPGCP_RESULTSW;typedef struct _GLYPHMETRICS { UINT gmBlackBoxX; UINT gmBlackBoxY; POINT gmptGlyphOrigin; short gmCellIncX; short gmCellIncY;} GLYPHMETRICS,*LPGLYPHMETRICS;#if (_WIN32_WINNT >= 0x0500)typedef struct tagWCRANGE{ WCHAR wcLow; USHORT cGlyphs;} WCRANGE, *PWCRANGE, *LPWCRANGE;typedef struct tagGLYPHSET{ DWORD cbThis; DWORD flAccel; DWORD cGlyphsSupported; DWORD cRanges; WCRANGE ranges[1];} GLYPHSET, *PGLYPHSET, *LPGLYPHSET;#endiftypedef struct tagKERNINGPAIR { WORD wFirst; WORD wSecond; int iKernAmount;} KERNINGPAIR,*LPKERNINGPAIR;typedef struct _FIXED { WORD fract; short value;} FIXED;typedef struct _MAT2 { FIXED eM11; FIXED eM12; FIXED eM21; FIXED eM22;} MAT2,*LPMAT2;typedef struct _OUTLINETEXTMETRICA { UINT otmSize; TEXTMETRICA otmTextMetrics; BYTE otmFiller; PANOSE otmPanoseNumber; UINT otmfsSelection; UINT otmfsType; int otmsCharSlopeRise; int otmsCharSlopeRun; int otmItalicAngle; UINT otmEMSquare; int otmAscent; int otmDescent; UINT otmLineGap; UINT otmsCapEmHeight; UINT otmsXHeight; RECT otmrcFontBox; int otmMacAscent; int otmMacDescent; UINT otmMacLineGap; UINT otmusMinimumPPEM; POINT otmptSubscriptSize; POINT otmptSubscriptOffset; POINT otmptSuperscriptSize; POINT otmptSuperscriptOffset; UINT otmsStrikeoutSize; int otmsStrikeoutPosition; int otmsUnderscoreSize; int otmsUnderscorePosition; PSTR otmpFamilyName; PSTR otmpFaceName; PSTR otmpStyleName; PSTR otmpFullName;} OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;typedef struct _OUTLINETEXTMETRICW { UINT otmSize; TEXTMETRICW otmTextMetrics; BYTE otmFiller; PANOSE otmPanoseNumber; UINT otmfsSelection; UINT otmfsType; int otmsCharSlopeRise; int otmsCharSlopeRun; int otmItalicAngle; UINT otmEMSquare; int otmAscent; int otmDescent; UINT otmLineGap; UINT otmsCapEmHeight; UINT otmsXHeight; RECT otmrcFontBox; int otmMacAscent; int otmMacDescent; UINT otmMacLineGap; UINT otmusMinimumPPEM; POINT otmptSubscriptSize; POINT otmptSubscriptOffset; POINT otmptSuperscriptSize; POINT otmptSuperscriptOffset; UINT otmsStrikeoutSize; int otmsStrikeoutPosition; int otmsUnderscoreSize; int otmsUnderscorePosition; PSTR otmpFamilyName; PSTR otmpFaceName; PSTR otmpStyleName; PSTR otmpFullName;} OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;typedef struct _RASTERIZER_STATUS { short nSize; short wFlags; short nLanguageID;} RASTERIZER_STATUS,*LPRASTERIZER_STATUS;typedef struct _POLYTEXTA { int x; int y; UINT n; LPCSTR lpstr; UINT uiFlags; RECT rcl; int *pdx;} POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;typedef struct _POLYTEXTW { int x; int y; UINT n; LPCWSTR lpstr; UINT uiFlags; RECT rcl; int *pdx;} POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;typedef struct tagPIXELFORMATDESCRIPTOR { WORD nSize; WORD nVersion; DWORD dwFlags; BYTE iPixelType; BYTE cColorBits; BYTE cRedBits; BYTE cRedShift; BYTE cGreenBits; BYTE cGreenShift; BYTE cBlueBits; BYTE cBlueShift; BYTE cAlphaBits; BYTE cAlphaShift; BYTE cAccumBits; BYTE cAccumRedBits; BYTE cAccumGreenBits; BYTE cAccumBlueBits; BYTE cAccumAlphaBits; BYTE cDepthBits; BYTE cStencilBits; BYTE cAuxBuffers; BYTE iLayerType; BYTE bReserved; DWORD dwLayerMask; DWORD dwVisibleMask; DWORD dwDamageMask;} PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
typedef struct tagEMRPIXELFORMAT{ EMR emr; PIXELFORMATDESCRIPTOR pfd;} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
typedef struct tagMETAFILEPICT { LONG mm; LONG xExt; LONG yExt; HMETAFILE hMF;} METAFILEPICT,*LPMETAFILEPICT;typedef struct tagLOCALESIGNATURE { DWORD lsUsb[4]; DWORD lsCsbDefault[2]; DWORD lsCsbSupported[2];} LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;typedef LONG LCSTYPE;#include "pshpack4.h"typedef struct tagNEWTEXTMETRICA { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; BYTE tmFirstChar; BYTE tmLastChar; BYTE tmDefaultChar; BYTE tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; DWORD ntmFlags; UINT ntmSizeEM; UINT ntmCellHeight; UINT ntmAvgWidth;} NEWTEXTMETRICA,*PNEWTEXTMETRICA,*LPNEWTEXTMETRICA;typedef struct tagNEWTEXTMETRICW { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; WCHAR tmFirstChar; WCHAR tmLastChar; WCHAR tmDefaultChar; WCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; DWORD ntmFlags; UINT ntmSizeEM; UINT ntmCellHeight; UINT ntmAvgWidth;} NEWTEXTMETRICW,*PNEWTEXTMETRICW,*LPNEWTEXTMETRICW;#include "poppack.h"typedef struct tagNEWTEXTMETRICEXA { NEWTEXTMETRICA ntmTm; FONTSIGNATURE ntmFontSig;} NEWTEXTMETRICEXA;typedef struct tagNEWTEXTMETRICEXW { NEWTEXTMETRICW ntmTm; FONTSIGNATURE ntmFontSig;} NEWTEXTMETRICEXW;typedef struct tagPELARRAY { LONG paXCount; LONG paYCount; LONG paXExt; LONG paYExt; BYTE paRGBs;} PELARRAY,*PPELARRAY,*LPPELARRAY;typedef struct tagENUMLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE];} ENUMLOGFONTA,*LPENUMLOGFONTA;typedef struct tagENUMLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE];} ENUMLOGFONTW,*LPENUMLOGFONTW;typedef struct tagENUMLOGFONTEXA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE]; BYTE elfScript[LF_FACESIZE];} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;typedef struct tagENUMLOGFONTEXW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE]; WCHAR elfScript[LF_FACESIZE];} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;typedef struct tagPOINTFX { FIXED x; FIXED y;} POINTFX,*LPPOINTFX;typedef struct tagTTPOLYCURVE { WORD wType; WORD cpfx; POINTFX apfx[1];} TTPOLYCURVE,*LPTTPOLYCURVE;typedef struct tagTTPOLYGONHEADER { DWORD cb; DWORD dwType; POINTFX pfxStart;} TTPOLYGONHEADER,*LPTTPOLYGONHEADER;typedef struct _POINTFLOAT { FLOAT x; FLOAT y;} POINTFLOAT,*PPOINTFLOAT;typedef struct _GLYPHMETRICSFLOAT { FLOAT gmfBlackBoxX; FLOAT gmfBlackBoxY; POINTFLOAT gmfptGlyphOrigin; FLOAT gmfCellIncX; FLOAT gmfCellIncY;} GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;typedef struct tagLAYERPLANEDESCRIPTOR { WORD nSize; WORD nVersion; DWORD dwFlags; BYTE iPixelType; BYTE cColorBits; BYTE cRedBits; BYTE cRedShift; BYTE cGreenBits; BYTE cGreenShift; BYTE cBlueBits; BYTE cBlueShift; BYTE cAlphaBits; BYTE cAlphaShift; BYTE cAccumBits; BYTE cAccumRedBits; BYTE cAccumGreenBits; BYTE cAccumBlueBits; BYTE cAccumAlphaBits; BYTE cDepthBits; BYTE cStencilBits; BYTE cAuxBuffers; BYTE iLayerPlane; BYTE bReserved; COLORREF crTransparent;} LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR;typedef struct _BLENDFUNCTION { BYTE BlendOp; BYTE BlendFlags; BYTE SourceConstantAlpha; BYTE AlphaFormat;} BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;#define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))#define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))#define MM_MAX_NUMAXES 16typedef struct _DESIGNVECTOR { DWORD dvReserved; DWORD dvNumAxes; LONG dvValues[MM_MAX_NUMAXES];} DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR;typedef struct tagENUMLOGFONTEXDVA{ ENUMLOGFONTEXA elfEnumLogfontEx; DESIGNVECTOR elfDesignVector;} ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, *LPENUMLOGFONTEXDVA;typedef struct tagENUMLOGFONTEXDVW{ ENUMLOGFONTEXW elfEnumLogfontEx; DESIGNVECTOR elfDesignVector;} ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, *LPENUMLOGFONTEXDVW;typedef USHORT COLOR16;typedef struct _TRIVERTEX { LONG x; LONG y; COLOR16 Red; COLOR16 Green; COLOR16 Blue; COLOR16 Alpha;} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;typedef struct tagEMRGRADIENTFILL { EMR emr; RECTL rclBounds; DWORD nVer; DWORD nTri; ULONG ulMode; TRIVERTEX Ver[1];} EMRGRADIENTFILL, *PEMRGRADIENTFILL;typedef struct _GRADIENT_TRIANGLE { ULONG Vertex1; ULONG Vertex2; ULONG Vertex3;} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;typedef struct _GRADIENT_RECT { ULONG UpperLeft; ULONG LowerRight;}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;typedef struct _DISPLAY_DEVICEA { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD StateFlags; CHAR DeviceID[128]; CHAR DeviceKey[128];} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;typedef struct _DISPLAY_DEVICEW { DWORD cb; WCHAR DeviceName[32]; WCHAR DeviceString[128]; DWORD StateFlags; WCHAR DeviceID[128]; WCHAR DeviceKey[128];} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;#define MM_MAX_AXES_NAMELEN 16typedef struct _AXISINFOA{ LONG axMinValue; LONG axMaxValue; BYTE axAxisName[MM_MAX_AXES_NAMELEN];} AXISINFOA, *PAXISINFOA, *LPAXISINFOA;typedef struct _AXISINFOW{ LONG axMinValue; LONG axMaxValue; WCHAR axAxisName[MM_MAX_AXES_NAMELEN];} AXISINFOW, *PAXISINFOW, *LPAXISINFOW;typedef struct _AXESLISTA{ DWORD axlReserved; DWORD axlNumAxes; AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];} AXESLISTA, *PAXESLISTA, *LPAXESLISTA;typedef struct _AXESLISTW{ DWORD axlReserved; DWORD axlNumAxes; AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];} AXESLISTW, *PAXESLISTW, *LPAXESLISTW;typedef struct _ENUMTEXTMETRICA{ NEWTEXTMETRICEXA etmNewTextMetricEx; AXESLISTA etmAxesList;} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA;typedef struct _ENUMTEXTMETRICW{ NEWTEXTMETRICEXW etmNewTextMetricEx; AXESLISTW etmAxesList;} ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW;
#if defined(STRICT)
#if !defined(NOTEXTMETRIC)
typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
#else
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
#endif
#ifdef UNICODE#define OLDFONTENUMPROC OLDFONTENUMPROCW#else#define OLDFONTENUMPROC OLDFONTENUMPROCA#endif
typedef OLDFONTENUMPROCA FONTENUMPROCA;typedef OLDFONTENUMPROCW FONTENUMPROCW;
#ifdef UNICODEtypedef FONTENUMPROCW FONTENUMPROC;#elsetypedef FONTENUMPROCA FONTENUMPROC;#endif
typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
#else // defined(STRICT)
typedef FARPROC OLDFONTENUMPROC;typedef FARPROC FONTENUMPROCA;typedef FARPROC FONTENUMPROCW;
#ifdef UNICODEtypedef FONTENUMPROCW FONTENUMPROC;#elsetypedef FONTENUMPROCA FONTENUMPROC;#endif
typedef FARPROC GOBJENUMPROC;typedef FARPROC LINEDDAPROC;
#endif
typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
typedef int(CALLBACK *MFENUMPROC)( _In_ HDC hdc, _In_reads_(nObj) HANDLETABLE FAR* lpht, _In_ METARECORD FAR* lpMR, _In_ int nObj, _In_opt_ LPARAM param);
typedef int(CALLBACK *ENHMFENUMPROC)( _In_ HDC hdc, _In_reads_(nHandles) HANDLETABLE FAR* lpht, _In_ CONST ENHMETARECORD * lpmr, _In_ int nHandles, _In_opt_ LPARAM data);
typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA);
#define GetRValue(rgb) ((BYTE)(rgb))#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))#define GetBValue(rgb) ((BYTE)((rgb)>>16))#define GetAValue(rgb) ((BYTE)((rgb)>>24))
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))#define RGBA(r,g,b,a) ((COLORREF)((((DWORD)(BYTE)(a))<<24) | RGB(r,g,b)))#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
#define MAKEPOINTS(l) (*((POINTS*)&(l)))#define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f))
INTWINAPIAbortDoc( _In_ HDC hdc);
BOOLWINAPIAbortPath( _In_ HDC hdc);
intWINAPIAddFontResourceA( _In_ LPCSTR pszFilename);
intWINAPIAddFontResourceW( _In_ LPCWSTR pszFilename);
HANDLEWINAPIAddFontMemResourceEx( _In_reads_bytes_(cjSize) PVOID pvFileView, _In_ DWORD cjSize, _Reserved_ PVOID pvResrved, _In_ DWORD* pNumFonts);
INTWINAPIAddFontResourceExA( _In_ LPCSTR pszFilename, _In_ DWORD fl, _Reserved_ PVOID pvReserved);
INTWINAPIAddFontResourceExW( _In_ LPCWSTR pszFilename, _In_ DWORD fl, _Reserved_ PVOID pvReserved);
BOOLWINAPIAngleArc( _In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ DWORD dwRadius, _In_ FLOAT eStartAngle, _In_ FLOAT eSweepAngle);
BOOLWINAPIAnimatePalette( _In_ HPALETTE hPal, _In_ UINT iStartIndex, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY *ppe);
BOOLWINAPIArc( _In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom, _In_ INT xStartArc, _In_ INT yStartArc, _In_ INT xEndArc, _In_ INT yEndArc);
BOOLWINAPIArcTo( _In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom, _In_ INT xRadial1, _In_ INT yRadial1, _In_ INT xRadial2, _In_ INT yRadial2);
BOOLWINAPIBeginPath( _In_ HDC hdc);
BOOLWINAPIBitBlt( _In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cxDest, _In_ INT cyDest, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD dwRop);
BOOLWINAPICancelDC( _In_ HDC hdc);
BOOLWINAPICheckColorsInGamut( _In_ HDC hdc, _In_reads_(nCount) LPVOID pRGBTriple, _Out_writes_bytes_(nCount) LPVOID pvBuffer, _In_ DWORD nCount);
BOOLWINAPIChord( _In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom, _In_ INT xRadial1, _In_ INT yRadial1, _In_ INT xRadial2, _In_ INT yRadial2);
intWINAPIChoosePixelFormat( _In_ HDC hdc, _In_ const PIXELFORMATDESCRIPTOR* ppfd);
HENHMETAFILEWINAPICloseEnhMetaFile( _In_ HDC hdc);
BOOLWINAPICloseFigure( _In_ HDC hdc);
HMETAFILEWINAPICloseMetaFile( _In_ HDC hdc);
BOOLWINAPIColorMatchToTarget( _In_ HDC hdc, _In_ HDC hdcTarget, _In_ DWORD uAction);
intWINAPICombineRgn( _In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode);
BOOLWINAPICombineTransform( _Out_ LPXFORM pxformResult, _In_ const XFORM* pxform1, _In_ const XFORM* pxform2);
HENHMETAFILEWINAPICopyEnhMetaFileA( _In_ HENHMETAFILE hemfSrc, _In_opt_ LPCSTR pszFile);
HENHMETAFILEWINAPICopyEnhMetaFileW( _In_ HENHMETAFILE hemfSrc, _In_opt_ LPCWSTR pszFile);
HMETAFILEWINAPICopyMetaFileA( _In_ HMETAFILE hmfSrc, _In_opt_ LPCSTR pszFile);
HMETAFILEWINAPICopyMetaFileW( _In_ HMETAFILE hmfSrc, _In_opt_ LPCWSTR pszFile);
HBITMAPWINAPICreateBitmap( _In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID* pvBits);
HBITMAPWINAPICreateBitmapIndirect( _In_ const BITMAP* pbm);
HBRUSHWINAPICreateBrushIndirect( _In_ const LOGBRUSH* plb);
HCOLORSPACEWINAPICreateColorSpaceA( _In_ LPLOGCOLORSPACEA pLogColorSpace);
HCOLORSPACEWINAPICreateColorSpaceW( _In_ LPLOGCOLORSPACEW pLogColorSpace);
HBITMAPWINAPICreateCompatibleBitmap( _In_ HDC hdc, _In_ INT cx, _In_ INT cy);
HDCWINAPICreateCompatibleDC( _In_opt_ HDC hdc);
HDCWINAPICreateDCA( _In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR pszDevice, _In_opt_ LPCSTR pszOutput, _In_opt_ const DEVMODEA* pdmInit);
HDCWINAPICreateDCW( _In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR psz, _In_opt_ const DEVMODEW* pdmInit);
HBITMAPWINAPICreateDIBitmap( _In_ HDC hdc, _In_opt_ const BITMAPINFOHEADER* pbmih, _In_ DWORD fdwInit, _In_opt_ const VOID* pvInit, _In_opt_ const BITMAPINFO* pbmi, _In_ UINT uUsage);
HBRUSHWINAPICreateDIBPatternBrush( _In_ HGLOBAL hglbDIBPacked, _In_ UINT uUsage);
HBRUSHWINAPICreateDIBPatternBrushPt( _In_ const VOID* pvPackedDIB, _In_ UINT uUsage);
#define GDI_WIDTHBYTES(bits) ((DWORD)(((bits) + 31) & (~31)) / 8)#define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)#define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)#define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1) * (GDI__DIBSIZE(bi)) : GDI__DIBSIZE(bi))
_Success_(return != NULL)HBITMAPWINAPICreateDIBSection( _In_opt_ HDC hdc, _In_ const BITMAPINFO *pbmi, _In_ UINT usage, _When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(GDI_DIBSIZE((pbmi->bmiHeader)))) _When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->bmiHeader).biSizeImage)) VOID **ppvBits, _In_opt_ HANDLE hSection, _In_ DWORD offset);
HBITMAP WINAPI CreateDiscardableBitmap(_In_ HDC, _In_ int, _In_ int);HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int);HRGN WINAPI CreateEllipticRgnIndirect(_In_ LPCRECT);HDC WINAPI CreateEnhMetaFileA(_In_opt_ HDC, _In_opt_ LPCSTR, _In_opt_ LPCRECT, _In_opt_ LPCSTR);HDC WINAPI CreateEnhMetaFileW(_In_opt_ HDC, _In_opt_ LPCWSTR, _In_opt_ LPCRECT, _In_opt_ LPCWSTR);HFONT WINAPI CreateFontA(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR);HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR);HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA*);HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW*);HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *);HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *);HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC);HBRUSH WINAPI CreateHatchBrush(_In_ int, _In_ COLORREF);HDC WINAPI CreateICA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ const DEVMODEA*);HDC WINAPI CreateICW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ const DEVMODEW*);HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR);HDC WINAPI CreateMetaFileW(_In_opt_ LPCWSTR);
HPALETTEWINAPICreatePalette( _In_reads_(_Inexpressible_(2*sizeof(WORD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) const LOGPALETTE*);
HBRUSH WINAPI CreatePatternBrush(_In_ HBITMAP);HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF);HPEN WINAPI CreatePenIndirect(_In_ const LOGPEN*);
HRGNWINAPICreatePolygonRgn( _In_reads_(cPoint) const POINT *pptl, _In_ int cPoint, _In_ int iMode);
HRGNWINAPICreatePolyPolygonRgn( _In_ const POINT *pptl, _In_reads_(cPoly) const INT *pc, _In_ int cPoly, _In_ int iMode);
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int);HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT);HRGN WINAPI CreateRoundRectRgn(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);BOOL WINAPI CreateScalableFontResourceA(_In_ DWORD, _In_ LPCSTR, _In_ LPCSTR, _In_opt_ LPCSTR);BOOL WINAPI CreateScalableFontResourceW(_In_ DWORD, _In_ LPCWSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR);HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF);BOOL WINAPI DeleteColorSpace(_In_ HCOLORSPACE);BOOL WINAPI DeleteDC(_In_ HDC);BOOL WINAPI DeleteEnhMetaFile(_In_opt_ HENHMETAFILE);BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE);BOOL WINAPI DeleteObject(_In_ HGDIOBJ);
intWINAPIDescribePixelFormat( _In_ HDC hdc, _In_ int iPixelFormat, _In_ UINT nBytes, _Out_writes_bytes_opt_(nBytes) LPPIXELFORMATDESCRIPTOR ppfd);
DWORDWINAPIDeviceCapabilitiesA( _In_ LPCSTR pDevice, _In_opt_ LPCSTR pPort, _In_ WORD fwCapability, _Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput, _In_opt_ const DEVMODEA *pDevMode);
DWORDWINAPIDeviceCapabilitiesW( _In_ LPCWSTR pDevice, _In_opt_ LPCWSTR pPort, _In_ WORD fwCapability, _Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput, _In_opt_ const DEVMODEW *pDevMode);
BOOLWINAPIDPtoLP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c);
intWINAPIDrawEscape( _In_ HDC hdc, _In_ int iEscape, _In_ int cjIn, _In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
BOOL WINAPI Ellipse(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);int WINAPI EndDoc(_In_ HDC);int WINAPI EndPage(_In_ HDC);BOOL WINAPI EndPath(_In_ HDC);BOOL WINAPI EnumEnhMetaFile(_In_opt_ HDC, _In_ HENHMETAFILE, _In_ ENHMFENUMPROC, _In_opt_ PVOID, _In_opt_ LPCRECT);int WINAPI EnumFontFamiliesA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);int WINAPI EnumFontFamiliesW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);int WINAPI EnumFontFamiliesExA(_In_ HDC, _In_ PLOGFONTA, _In_ FONTENUMPROCA, _In_ LPARAM, _In_ DWORD);int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD);int WINAPI EnumFontsA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM);int WINAPI EnumFontsW(_In_ HDC, _In_opt_ LPCWSTR, _In_ FONTENUMPROCW, _In_ LPARAM);int WINAPI EnumICMProfilesA(_In_ HDC, _In_ ICMENUMPROCA, _In_opt_ LPARAM);int WINAPI EnumICMProfilesW(_In_ HDC, _In_ ICMENUMPROCW, _In_opt_ LPARAM);BOOL WINAPI EnumMetaFile(_In_ HDC, _In_ HMETAFILE, _In_ MFENUMPROC, _In_opt_ LPARAM);int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM);BOOL WINAPI EqualRgn(_In_ HRGN, _In_ HRGN);
intWINAPIEscape( _In_ HDC hdc, _In_ int iEscape, _In_ int cjIn, _In_reads_bytes_opt_(cjIn) LPCSTR pvIn, _Out_opt_ LPVOID pvOut);
int WINAPI ExcludeClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);int WINAPI ExcludeUpdateRgn(HDC,HWND);
HPENWINAPIExtCreatePen( _In_ DWORD iPenStyle, _In_ DWORD cWidth, _In_ const LOGBRUSH *plbrush, _In_ DWORD cStyle, _In_reads_opt_(cStyle) const DWORD *pstyle);
HRGNWINAPIExtCreateRegion( _In_opt_ const XFORM *lpx, _In_ DWORD nCount, _In_reads_bytes_(nCount) const RGNDATA *lpData);
intWINAPIExtEscape( _In_ HDC hdc, _In_ int iEscape, _In_ int cjInput, _In_reads_bytes_opt_(cjInput) LPCSTR lpInData, _In_ int cjOutput, _Out_writes_bytes_opt_(cjOutput) LPSTR lpOutData);
BOOL WINAPI ExtFloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF, _In_ UINT);int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int);
BOOLWINAPIExtTextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx);
BOOLWINAPIExtTextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx);
BOOL WINAPI FillPath(_In_ HDC);int WINAPI FillRect(HDC,LPCRECT,HBRUSH);int WINAPI FillRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH);BOOL WINAPI FixBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _In_opt_ LPPOINT);BOOL WINAPI FlattenPath(_In_ HDC);BOOL WINAPI FloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);BOOL WINAPI FrameRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH, _In_ int, _In_ int);BOOL WINAPI GdiAlphaBlend(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BLENDFUNCTION);
BOOLWINAPIGdiComment( _In_ HDC hdc, _In_ UINT nSize, _In_reads_bytes_(nSize) const BYTE *lpData);
DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);BOOL WINAPI GdiFlush(void);LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);DWORD WINAPI GdiGetCodePage(HDC);DWORD WINAPI GdiGetBatchLimit(void);DWORD WINAPI GdiSetBatchLimit(_In_ DWORD);
BOOLWINAPIGdiGradientFill( _In_ HDC hdc, _In_reads_(nVertex) PTRIVERTEX pVertex, _In_ ULONG nVertex, _In_ PVOID pMesh, _In_ ULONG nCount, _In_ ULONG ulMode);
BOOL WINAPI GdiTransparentBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT);BOOL WINAPI GdiIsMetaFileDC(HDC);
#define GetKValue(cmyk) ((BYTE)(cmyk))#define GetYValue(cmyk) ((BYTE)((cmyk)>> 8))#define GetMValue(cmyk) ((BYTE)((cmyk)>>16))#define GetCValue(cmyk) ((BYTE)((cmyk)>>24))#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
int WINAPI GetArcDirection(_In_ HDC);BOOL WINAPI GetAspectRatioFilterEx(_In_ HDC, _Out_ LPSIZE);
LONGWINAPIGetBitmapBits( _In_ HBITMAP hbit, _In_ LONG cb, _Out_writes_bytes_(cb) LPVOID lpvBits);
BOOL WINAPI GetBitmapDimensionEx(_In_ HBITMAP, _Out_ LPSIZE);COLORREF WINAPI GetBkColor(_In_ HDC);int WINAPI GetBkMode(_In_ HDC);UINT WINAPI GetBoundsRect(_In_ HDC, _Out_ LPRECT, _In_ UINT);BOOL WINAPI GetBrushOrgEx(_In_ HDC, _Out_ LPPOINT);
BOOLWINAPIGetCharABCWidthsA( _In_ HDC hdc, _In_ UINT wFirst, _In_ UINT wLast, _Out_writes_(wLast - wFirst + 1) LPABC lpABC);
BOOLWINAPIGetCharABCWidthsW( _In_ HDC hdc, _In_ UINT wFirst, _In_ UINT wLast, _Out_writes_(wLast - wFirst + 1) LPABC lpABC);
BOOLWINAPIGetCharABCWidthsFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
BOOLWINAPIGetCharABCWidthsFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
BOOLWINAPIGetCharABCWidthsI( _In_ HDC hdc, _In_ UINT giFirst, _In_ UINT cgi, _In_reads_opt_(cgi) LPWORD pgi, _Out_writes_(cgi) LPABC pabc);
DWORDWINAPIGetCharacterPlacementA( _In_ HDC hdc, _In_reads_(nCount) LPCSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSA lpResults, _In_ DWORD dwFlags);
DWORDWINAPIGetCharacterPlacementW( _In_ HDC hdc, _In_reads_(nCount) LPCWSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSW lpResults, _In_ DWORD dwFlags);
BOOLWINAPIGetCharWidth32A( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOLWINAPIGetCharWidth32W( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOLWINAPIGetCharWidthA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOLWINAPIGetCharWidthW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
BOOLWINAPIGetCharWidthI( _In_ HDC hdc, _In_ UINT giFirst, _In_ UINT cgi, _In_reads_opt_(cgi) LPWORD pgi, _Out_writes_(cgi) LPINT piWidths);
BOOLWINAPIGetCharWidthFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
BOOLWINAPIGetCharWidthFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT);int WINAPI GetClipRgn(_In_ HDC, _In_ HRGN);BOOL WINAPI GetColorAdjustment(_In_ HDC, _Out_ LPCOLORADJUSTMENT);HCOLORSPACE WINAPI GetColorSpace(_In_ HDC);HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT);BOOL WINAPI GetCurrentPositionEx(_In_ HDC, _Out_ LPPOINT);HCURSOR WINAPI GetCursor(void);BOOL WINAPI GetDCOrgEx(_In_ HDC, _Out_ LPPOINT);#if (_WIN32_WINNT >= 0x0500)COLORREF WINAPI GetDCBrushColor(_In_ HDC);COLORREF WINAPI GetDCPenColor(_In_ HDC);#endifint WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int);
BOOLWINAPIGetDeviceGammaRamp( _In_ HDC hdc, _Out_writes_bytes_(3*256*2) LPVOID lpRamp);
_Ret_range_(0,cEntries)UINTWINAPIGetDIBColorTable( _In_ HDC hdc, _In_ UINT iStart, _In_ UINT cEntries, _Out_writes_to_(cEntries,return) RGBQUAD *prgbq);
intWINAPIGetDIBits( _In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage);
HENHMETAFILE WINAPI GetEnhMetaFileA(_In_ LPCSTR);HENHMETAFILE WINAPI GetEnhMetaFileW(_In_ LPCWSTR);
UINTWINAPIGetEnhMetaFileBits( _In_ HENHMETAFILE hEMF, _In_ UINT nSize, _Out_writes_bytes_opt_(nSize) LPBYTE lpData);
UINTWINAPIGetEnhMetaFileDescriptionA( _In_ HENHMETAFILE hemf, _In_ UINT cchBuffer, _Out_writes_opt_(cchBuffer) LPSTR lpDescription);
UINTWINAPIGetEnhMetaFileDescriptionW( _In_ HENHMETAFILE hemf, _In_ UINT cchBuffer, _Out_writes_opt_(cchBuffer) LPWSTR lpDescription);
UINTWINAPIGetEnhMetaFileHeader( _In_ HENHMETAFILE hemf, _In_ UINT nSize, _Out_writes_bytes_opt_(nSize) LPENHMETAHEADER lpEnhMetaHeader);
UINTWINAPIGetEnhMetaFilePaletteEntries( _In_ HENHMETAFILE hemf, _In_ UINT nNumEntries, _Out_writes_opt_(nNumEntries) LPPALETTEENTRY lpPaletteEntries);
UINTWINAPIGetEnhMetaFilePixelFormat( _In_ HENHMETAFILE hemf, _In_ UINT cbBuffer, _Out_writes_bytes_opt_(cbBuffer) PIXELFORMATDESCRIPTOR *ppfd);
_Success_(return != GDI_ERROR)DWORDWINAPIGetFontData( _In_ HDC hdc, _In_ DWORD dwTable, _In_ DWORD dwOffset, _Out_writes_bytes_to_opt_(cjBuffer, return) PVOID pvBuffer, _In_ DWORD cjBuffer);
DWORD WINAPI GetFontLanguageInfo(_In_ HDC);#if (_WIN32_WINNT >= 0x0500)DWORD WINAPI GetFontUnicodeRanges(_In_ HDC, _Out_opt_ LPGLYPHSET);#endif
DWORDWINAPIGetGlyphIndicesA( _In_ HDC hdc, _In_reads_(c) LPCSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
DWORDWINAPIGetGlyphIndicesW( _In_ HDC hdc, _In_reads_(c) LPCWSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
DWORDWINAPIGetGlyphOutlineA( _In_ HDC hdc, _In_ UINT uChar, _In_ UINT fuFormat, _Out_ LPGLYPHMETRICS lpgm, _In_ DWORD cjBuffer, _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer, _In_ CONST MAT2 *lpmat2);
DWORDWINAPIGetGlyphOutlineW( _In_ HDC hdc, _In_ UINT uChar, _In_ UINT fuFormat, _Out_ LPGLYPHMETRICS lpgm, _In_ DWORD cjBuffer, _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer, _In_ CONST MAT2 *lpmat2);
int WINAPI GetGraphicsMode(_In_ HDC);
BOOLWINAPIGetICMProfileA( _In_ HDC hdc, _Inout_ LPDWORD pBufSize, _Out_writes_opt_(*pBufSize) LPSTR pszFilename);
BOOLWINAPIGetICMProfileW( _In_ HDC hdc, _Inout_ LPDWORD pBufSize, _Out_writes_opt_(*pBufSize) LPWSTR pszFilename);
DWORDWINAPIGetKerningPairsA( _In_ HDC hdc, _In_ DWORD nPairs, _Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
DWORDWINAPIGetKerningPairsW( _In_ HDC hdc, _In_ DWORD nPairs, _Out_writes_to_opt_(nPairs, return) LPKERNINGPAIR lpKernPair);
BOOLWINAPIGetLogColorSpaceA( _In_ HCOLORSPACE hColorSpace, _Out_writes_bytes_(nSize) LPLOGCOLORSPACEA lpBuffer, _In_ DWORD nSize);
BOOLWINAPIGetLogColorSpaceW( _In_ HCOLORSPACE hColorSpace, _Out_writes_bytes_(nSize) LPLOGCOLORSPACEW lpBuffer, _In_ DWORD nSize);
int WINAPI GetMapMode(_In_ HDC);HMETAFILE WINAPI GetMetaFileA(_In_ LPCSTR);HMETAFILE WINAPI GetMetaFileW(_In_ LPCWSTR);
UINTWINAPIGetMetaFileBitsEx( _In_ HMETAFILE hMF, _In_ UINT cbBuffer, _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData);
int WINAPI GetMetaRgn(_In_ HDC, _In_ HRGN);BOOL WINAPI GetMiterLimit(_In_ HDC, _Out_ PFLOAT);COLORREF WINAPI GetNearestColor(_In_ HDC, _In_ COLORREF);UINT WINAPI GetNearestPaletteIndex(_In_ HPALETTE, _In_ COLORREF);
intWINAPIGetObjectA( _In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv);
intWINAPIGetObjectW( _In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv);
DWORD WINAPI GetObjectType(_In_ HGDIOBJ);
UINTWINAPIGetOutlineTextMetricsA( _In_ HDC hdc, _In_ UINT cjCopy, _Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICA potm);
UINTWINAPIGetOutlineTextMetricsW( _In_ HDC hdc, _In_ UINT cjCopy, _Out_writes_bytes_opt_(cjCopy) LPOUTLINETEXTMETRICW potm);
_Ret_range_(0,cEntries)UINTWINAPIGetPaletteEntries( _In_ HPALETTE hpal, _In_ UINT iStart, _In_ UINT cEntries, _Out_writes_to_opt_(cEntries,return) LPPALETTEENTRY pPalEntries);
intWINAPIGetPath( _In_ HDC hdc, _Out_writes_opt_(cpt) LPPOINT apt, _Out_writes_opt_(cpt) LPBYTE aj, int cpt);
COLORREF WINAPI GetPixel(_In_ HDC, _In_ int, _In_ int);int WINAPI GetPixelFormat(_In_ HDC);int WINAPI GetPolyFillMode(_In_ HDC);
BOOLWINAPIGetRasterizerCaps( _Out_writes_bytes_(cjBytes) LPRASTERIZER_STATUS lpraststat, _In_ UINT cjBytes);
int WINAPI GetRandomRgn(_In_ HDC, _In_ HRGN, _In_ INT);
DWORDWINAPIGetRegionData( _In_ HRGN hrgn, _In_ DWORD nCount, _Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData);
int WINAPI GetRgnBox(_In_ HRGN, _Out_ LPRECT);int WINAPI GetROP2(_In_ HDC);HGDIOBJ WINAPI GetStockObject(_In_ int);int WINAPI GetStretchBltMode(_In_ HDC);
UINTWINAPIGetSystemPaletteEntries( _In_ HDC hdc, _In_ UINT iStart, _In_ UINT cEntries, _Out_writes_opt_(cEntries) LPPALETTEENTRY pPalEntries);
UINT WINAPI GetSystemPaletteUse(_In_ HDC);UINT WINAPI GetTextAlign(_In_ HDC);int WINAPI GetTextCharacterExtra(_In_ HDC);int WINAPI GetTextCharset(_In_ HDC);int WINAPI GetTextCharsetInfo(_In_ HDC, _Out_opt_ LPFONTSIGNATURE, _In_ DWORD);COLORREF WINAPI GetTextColor(_In_ HDC);
BOOLWINAPIGetTextExtentExPointA( _In_ HDC hdc, _In_reads_(cchString) LPCSTR lpszString, _In_ int cchString, _In_ int nMaxExtent, _Out_opt_ LPINT lpnFit, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx, _Out_ LPSIZE lpSize);
BOOLWINAPIGetTextExtentExPointW( _In_ HDC hdc, _In_reads_(cchString) LPCWSTR lpszString, _In_ int cchString, _In_ int nMaxExtent, _Out_opt_ LPINT lpnFit, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx, _Out_ LPSIZE lpSize);
BOOLWINAPIGetTextExtentExPointI( _In_ HDC hdc, _In_reads_(cwchString) LPWORD lpwszString, _In_ int cwchString, _In_ int nMaxExtent, _Out_opt_ LPINT lpnFit, _Out_writes_to_opt_(cwchString, *lpnFit) LPINT lpnDx, _Out_ LPSIZE lpSize);
BOOLWINAPIGetTextExtentPointA( _In_ HDC hdc, _In_reads_(c) LPCSTR lpString, _In_ int c, _Out_ LPSIZE lpsz);
BOOLWINAPIGetTextExtentPointW( _In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz);
BOOLWINAPIGetTextExtentPointI( _In_ HDC hdc, _In_reads_(cgi) LPWORD pgiIn, _In_ int cgi, _Out_ LPSIZE psize);
BOOLWINAPIGetTextExtentPoint32A( _In_ HDC hdc, _In_reads_(c) LPCSTR lpString, _In_ int c, _Out_ LPSIZE psizl);
BOOLWINAPIGetTextExtentPoint32W( _In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl);
intWINAPIGetTextFaceA( _In_ HDC hdc, _In_ int c, _Out_writes_to_opt_(c, return) LPSTR lpName);
intWINAPIGetTextFaceW( _In_ HDC hdc, _In_ int c, _Out_writes_to_opt_(c, return) LPWSTR lpName);
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA);BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW);BOOL WINAPI GetTransform(HDC,DWORD,XFORM*);BOOL WINAPI GetViewportExtEx(_In_ HDC, _Out_ LPSIZE);BOOL WINAPI GetViewportOrgEx(_In_ HDC, _Out_ LPPOINT);BOOL WINAPI GetWindowExtEx(_In_ HDC, _Out_ LPSIZE);BOOL WINAPI GetWindowOrgEx(_In_ HDC, _Out_ LPPOINT);
UINTWINAPIGetWinMetaFileBits( _In_ HENHMETAFILE hemf, _In_ UINT cbData16, _Out_writes_bytes_opt_(cbData16) LPBYTE pData16, _In_ INT iMapMode, _In_ HDC hdcRef);
BOOL WINAPI GetWorldTransform(_In_ HDC, _Out_ LPXFORM);int WINAPI IntersectClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);BOOL WINAPI InvertRgn(_In_ HDC, _In_ HRGN);BOOL WINAPI LineDDA(_In_ int, _In_ int, _In_ int, _In_ int, _In_ LINEDDAPROC, _In_opt_ LPARAM);BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int);
BOOLWINAPILPtoDP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c);
BOOL WINAPI MaskBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ HBITMAP, _In_ int, _In_ int, _In_ DWORD);BOOL WINAPI ModifyWorldTransform(_In_ HDC, _In_opt_ const XFORM*, _In_ DWORD);BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);int WINAPI OffsetClipRgn(_In_ HDC, _In_ int, _In_ int);int WINAPI OffsetRgn(_In_ HRGN, _In_ int, _In_ int);BOOL WINAPI OffsetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);BOOL WINAPI OffsetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);BOOL WINAPI PaintRgn(_In_ HDC, _In_ HRGN);BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD);HRGN WINAPI PathToRegion(_In_ HDC);BOOL WINAPI Pie(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);BOOL WINAPI PlayEnhMetaFile(_In_ HDC, _In_ HENHMETAFILE, _In_ LPCRECT);
BOOLWINAPIPlayEnhMetaFileRecord( _In_ HDC hdc, _In_reads_(cht) LPHANDLETABLE pht, _In_ CONST ENHMETARECORD *pmr, _In_ UINT cht);
BOOL WINAPI PlayMetaFile(_In_ HDC, _In_ HMETAFILE);
BOOLWINAPIPlayMetaFileRecord( _In_ HDC hdc, _In_reads_(noObjs) LPHANDLETABLE lpHandleTable, _In_ LPMETARECORD lpMR, _In_ UINT noObjs);
BOOLWINAPIPlgBlt( _In_ HDC hdcDest, _In_reads_(3) const POINT *lpPoint, _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ int width, _In_ int height, _In_opt_ HBITMAP hbmMask, _In_ int xMask, _In_ int yMask);
BOOLWINAPIPolyBezier( _In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt);
BOOLWINAPIPolyBezierTo( _In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt);
BOOLWINAPIPolyDraw( _In_ HDC hdc, _In_reads_(cpt) const POINT * apt, _In_reads_(cpt) const BYTE * aj, _In_ int cpt);
BOOLWINAPIPolygon( _In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ int cpt);
BOOLWINAPIPolyline( _In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ int cpt);
BOOLWINAPIPolylineTo( _In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt);
BOOLWINAPIPolyPolygon( _In_ HDC hdc, _In_ const POINT *apt, _In_reads_(csz) const INT *asz, _In_ int csz);
BOOLWINAPIPolyPolyline( _In_ HDC hdc, _In_ const POINT *apt, _In_reads_(csz) const DWORD *asz, _In_ DWORD csz);
BOOLWINAPIPolyTextOutA( _In_ HDC hdc, _In_reads_(nstrings) const POLYTEXTA *ppt, _In_ int nstrings);
BOOLWINAPIPolyTextOutW( _In_ HDC hdc, _In_reads_(nstrings) const POLYTEXTW *ppt, _In_ int nstrings);
BOOL WINAPI PtInRegion(_In_ HRGN, _In_ int, _In_ int);BOOL WINAPI PtVisible(_In_ HDC, _In_ int, _In_ int);UINT WINAPI RealizePalette(_In_ HDC);BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int);BOOL WINAPI RectInRegion(_In_ HRGN, _In_ LPCRECT);BOOL WINAPI RectVisible(_In_ HDC, _In_ LPCRECT);BOOL WINAPI RemoveFontResourceA(_In_ LPCSTR);BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR);#if (_WIN32_WINNT >= 0x0500)BOOL WINAPI RemoveFontMemResourceEx(_In_ HANDLE);BOOL WINAPI RemoveFontResourceExA(_In_ LPCSTR, _In_ DWORD, _Reserved_ PVOID);BOOL WINAPI RemoveFontResourceExW(_In_ LPCWSTR, _In_ DWORD, _Reserved_ PVOID);#endifHDC WINAPI ResetDCA(_In_ HDC, _In_ const DEVMODEA*);HDC WINAPI ResetDCW(_In_ HDC, _In_ const DEVMODEW*);BOOL WINAPI ResizePalette(_In_ HPALETTE, _In_ UINT);BOOL WINAPI RestoreDC(_In_ HDC, _In_ int);BOOL WINAPI RoundRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int);int WINAPI SaveDC(_In_ HDC);BOOL WINAPI ScaleViewportExtEx(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _Out_opt_ LPSIZE);BOOL WINAPI ScaleWindowExtEx(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _Out_opt_ LPSIZE);BOOL WINAPI SelectClipPath(_In_ HDC, _In_ int);int WINAPI SelectClipRgn(_In_ HDC, _In_opt_ HRGN);HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ);HPALETTE WINAPI SelectPalette(_In_ HDC, _In_ HPALETTE, _In_ BOOL);int WINAPI SetAbortProc(_In_ HDC, _In_ ABORTPROC);int WINAPI SetArcDirection(_In_ HDC, _In_ int);
LONGWINAPISetBitmapBits( _In_ HBITMAP hbm, _In_ DWORD cb, _In_reads_bytes_(cb) CONST VOID *pvBits);
BOOL WINAPI SetBitmapDimensionEx(_In_ HBITMAP, _In_ int, _In_ int, _Out_opt_ LPSIZE);COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF);int WINAPI SetBkMode(_In_ HDC, _In_ int);UINT WINAPI SetBoundsRect(_In_ HDC, _In_opt_ LPCRECT, _In_ UINT);BOOL WINAPI SetBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);BOOL WINAPI SetColorAdjustment(_In_ HDC, _In_ const COLORADJUSTMENT*);HCOLORSPACE WINAPI SetColorSpace(_In_ HDC, _In_ HCOLORSPACE);#if (_WIN32_WINNT >= 0x0500)COLORREF WINAPI SetDCBrushColor(_In_ HDC, _In_ COLORREF);COLORREF WINAPI SetDCPenColor(_In_ HDC, _In_ COLORREF);#endif
BOOLWINAPISetDeviceGammaRamp( _In_ HDC hdc, _In_reads_bytes_(3*256*2) LPVOID lpRamp);
UINTWINAPISetDIBColorTable( _In_ HDC hdc, _In_ UINT iStart, _In_ UINT cEntries, _In_reads_(cEntries) const RGBQUAD *prgbq);
int WINAPI SetDIBits(_In_opt_ HDC, _In_ HBITMAP, _In_ UINT, _In_ UINT, _In_ CONST VOID*, _In_ CONST BITMAPINFO*, _In_ UINT);int WINAPI SetDIBitsToDevice(_In_ HDC, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ int, _In_ int, _In_ UINT, _In_ UINT, _In_ CONST VOID*, _In_ CONST BITMAPINFO*, _In_ UINT);
HENHMETAFILEWINAPISetEnhMetaFileBits( _In_ UINT nSize, _In_reads_bytes_(nSize) const BYTE * pb);
int WINAPI SetGraphicsMode(_In_ HDC, _In_ int);int WINAPI SetICMMode(_In_ HDC, _In_ int);BOOL WINAPI SetICMProfileA(_In_ HDC, _In_ LPSTR);BOOL WINAPI SetICMProfileW(_In_ HDC, _In_ LPWSTR);int WINAPI SetMapMode(_In_ HDC, _In_ int);DWORD WINAPI SetMapperFlags(_In_ HDC, _In_ DWORD);#if (_WIN32_WINNT >= 0x0500)DWORD WINAPI SetLayout(_In_ HDC, _In_ DWORD);DWORD WINAPI GetLayout(_In_ HDC);#endif
HMETAFILEWINAPISetMetaFileBitsEx( _In_ UINT cbBuffer, _In_reads_bytes_(cbBuffer) CONST BYTE *lpData);
int WINAPI SetMetaRgn(_In_ HDC);BOOL WINAPI SetMiterLimit(_In_ HDC, _In_ FLOAT, _Out_opt_ PFLOAT);
UINTWINAPISetPaletteEntries( _In_ HPALETTE hpal, _In_ UINT iStart, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY *pPalEntries);
COLORREF WINAPI SetPixel(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);BOOL WINAPI SetPixelFormat(_In_ HDC, _In_ int, _In_ const PIXELFORMATDESCRIPTOR*);BOOL WINAPI SetPixelV(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF);int WINAPI SetPolyFillMode(_In_ HDC, _In_ int);BOOL WINAPI SetRectRgn(_In_ HRGN, _In_ int, _In_ int, _In_ int, _In_ int);INT WINAPI SetRelAbs(HDC,INT);int WINAPI SetROP2(_In_ HDC, _In_ int);int WINAPI SetStretchBltMode(_In_ HDC, _In_ int);UINT WINAPI SetSystemPaletteUse(_In_ HDC, _In_ UINT);UINT WINAPI SetTextAlign(_In_ HDC, _In_ UINT);int WINAPI SetTextCharacterExtra(_In_ HDC, _In_ int);COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF);BOOL WINAPI SetTextJustification(_In_ HDC, _In_ int, _In_ int);BOOL WINAPI SetViewportExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE);BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);BOOL WINAPI SetWindowExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE);BOOL WINAPI SetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT);
HENHMETAFILEWINAPISetWinMetaFileBits( _In_ UINT nSize, _In_reads_bytes_(nSize) const BYTE *lpMeta16Data, _In_opt_ HDC hdcRef, _In_opt_ const METAFILEPICT *lpMFP);
BOOL WINAPI SetWorldTransform(_In_ HDC, _In_ const XFORM *);int WINAPI StartDocA(_In_ HDC, _In_ const DOCINFOA*);int WINAPI StartDocW(_In_ HDC, _In_ const DOCINFOW*);int WINAPI StartPage(_In_ HDC);BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD);int WINAPI StretchDIBits(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ const VOID *, _In_ const BITMAPINFO *, _In_ UINT, _In_ DWORD);BOOL WINAPI StrokeAndFillPath(_In_ HDC);BOOL WINAPI StrokePath(_In_ HDC);BOOL WINAPI SwapBuffers(HDC);
BOOLWINAPITextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCSTR lpString, _In_ int c);
BOOLWINAPITextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCWSTR lpString, _In_ int c);
BOOL WINAPI TranslateCharsetInfo(_Inout_ PDWORD, _Out_ LPCHARSETINFO, _In_ DWORD);BOOL WINAPI UnrealizeObject(_In_ HGDIOBJ);BOOL WINAPI UpdateColors(_In_ HDC);BOOL WINAPI UpdateICMRegKeyA(_Reserved_ DWORD, _In_ LPSTR, _In_ LPSTR, _In_ UINT);BOOL WINAPI UpdateICMRegKeyW(_Reserved_ DWORD, _In_ LPWSTR, _In_ LPWSTR, _In_ UINT);BOOL WINAPI WidenPath(_In_ HDC);BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);HGLRC WINAPI wglCreateContext(HDC);HGLRC WINAPI wglCreateLayerContext(HDC,int);BOOL WINAPI wglDeleteContext(HGLRC);BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);HGLRC WINAPI wglGetCurrentContext(void);HDC WINAPI wglGetCurrentDC(void);int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);PROC WINAPI wglGetProcAddress(LPCSTR);BOOL WINAPI wglMakeCurrent(HDC,HGLRC);BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);BOOL WINAPI wglShareLists(HGLRC,HGLRC);BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
#if (WINVER >= 0x0500)
typedef struct _WGLSWAP{ HDC hdc; UINT uiFlags;} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
#define WGL_SWAPMULTIPLE_MAX 16
DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
#endif // (WINVER >= 0x0500)
#if (WINVER>= 0x0500)
BOOL WINAPI AlphaBlend(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BLENDFUNCTION);
BOOLWINAPIGradientFill( _In_ HDC hdc, _In_reads_(nVertex) PTRIVERTEX pVertex, _In_ ULONG nVertex, _In_ PVOID pMesh, _In_ ULONG nMesh, _In_ ULONG ulMode);
BOOL WINAPI TransparentBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT);
#endif
#ifdef UNICODEtypedef AXESLISTW AXESLIST;typedef PAXESLISTW PAXESLIST;typedef LPAXESLISTW LPAXESLIST;typedef AXISINFOA AXISINFO;typedef PAXISINFOA PAXISINFO;typedef LPAXISINFOA LPAXISINFO;typedef WCHAR BCHAR;typedef DOCINFOW DOCINFO, *LPDOCINFO;typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT;typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;#define ICMENUMPROC ICMENUMPROCWtypedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE;typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS;typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;typedef POLYTEXTW POLYTEXT,*PPOLYTEXT,*LPPOLYTEXT;typedef LOGCOLORSPACEW LOGCOLORSPACE,*LPLOGCOLORSPACE;typedef NEWTEXTMETRICW NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;typedef ENUMLOGFONTW ENUMLOGFONT,*LPENUMLOGFONT;typedef ENUMLOGFONTEXW ENUMLOGFONTEX,*LPENUMLOGFONTEX;typedef DISPLAY_DEVICEW DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;#define AddFontResource AddFontResourceW#if (_WIN32_WINNT >= 0x0500)#define AddFontResourceEx AddFontResourceExW#endif#define CopyEnhMetaFile CopyEnhMetaFileW#define CopyMetaFile CopyMetaFileW#define CreateDC CreateDCW#define CreateEnhMetaFile CreateEnhMetaFileW#define CreateFont CreateFontW#define CreateFontIndirect CreateFontIndirectW#define CreateFontIndirectEx CreateFontIndirectExW#define CreateIC CreateICW#define CreateMetaFile CreateMetaFileW#define CreateScalableFontResource CreateScalableFontResourceW#define DeviceCapabilities DeviceCapabilitiesW#define EnumFontFamilies EnumFontFamiliesW#define EnumFontFamiliesEx EnumFontFamiliesExW#define EnumFonts EnumFontsW#define EnumICMProfiles EnumICMProfilesW#define ExtTextOut ExtTextOutW#define GetCharABCWidthsFloat GetCharABCWidthsFloatW#define GetCharABCWidths GetCharABCWidthsW#define GetCharacterPlacement GetCharacterPlacementW#define GetCharWidth32 GetCharWidth32W#define GetCharWidthFloat GetCharWidthFloatW#define GetCharWidth GetCharWidthW#define GetEnhMetaFile GetEnhMetaFileW#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW#define GetGlyphOutline GetGlyphOutlineW#define GetICMProfile GetICMProfileW#define GetKerningPairs GetKerningPairsW#define GetLogColorSpace GetLogColorSpaceW#define GetMetaFile GetMetaFileW#define GetObject GetObjectW#define GetOutlineTextMetrics GetOutlineTextMetricsW#define GetTextExtentPoint GetTextExtentPointW#define GetTextExtentExPoint GetTextExtentExPointW#define GetTextExtentPoint32 GetTextExtentPoint32W#define GetTextFace GetTextFaceW#define GetTextMetrics GetTextMetricsW#define PolyTextOut PolyTextOutW#define RemoveFontResource RemoveFontResourceW#if (_WIN32_WINNT >= 0x0500)#define RemoveFontResourceEx RemoveFontResourceExW#endif#define ResetDC ResetDCW#define SetICMProfile SetICMProfileW#define StartDoc StartDocW#define TextOut TextOutW#define UpdateICMRegKey UpdateICMRegKeyW#define wglUseFontBitmaps wglUseFontBitmapsW#define wglUseFontOutlines wglUseFontOutlinesW#elsetypedef AXESLISTA AXESLIST;typedef PAXESLISTA PAXESLIST;typedef LPAXESLISTA LPAXESLIST;typedef AXISINFOA AXISINFO;typedef PAXISINFOA PAXISINFO;typedef LPAXISINFOA LPAXISINFO;typedef BYTE BCHAR;typedef DOCINFOA DOCINFO, *LPDOCINFO;typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT;typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;#define ICMENUMPROC ICMENUMPROCAtypedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE;typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS;typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;typedef POLYTEXTA POLYTEXT,*PPOLYTEXT,*LPPOLYTEXT;typedef LOGCOLORSPACEA LOGCOLORSPACE,*LPLOGCOLORSPACE;typedef NEWTEXTMETRICA NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC;typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;typedef ENUMLOGFONTA ENUMLOGFONT,*LPENUMLOGFONT;typedef ENUMLOGFONTEXA ENUMLOGFONTEX,*LPENUMLOGFONTEX;typedef DISPLAY_DEVICEA DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;#define AddFontResource AddFontResourceA#if (_WIN32_WINNT >= 0x0500)#define AddFontResourceEx AddFontResourceExA#endif#define CopyEnhMetaFile CopyEnhMetaFileA#define CopyMetaFile CopyMetaFileA#define CreateDC CreateDCA#define CreateEnhMetaFile CreateEnhMetaFileA#define CreateFont CreateFontA#define CreateFontIndirect CreateFontIndirectA#define CreateFontIndirectEx CreateFontIndirectExA#define CreateIC CreateICA#define CreateMetaFile CreateMetaFileA#define CreateScalableFontResource CreateScalableFontResourceA#define DeviceCapabilities DeviceCapabilitiesA#define EnumFontFamilies EnumFontFamiliesA#define EnumFontFamiliesEx EnumFontFamiliesExA#define EnumFonts EnumFontsA#define EnumICMProfiles EnumICMProfilesA#define ExtTextOut ExtTextOutA#define GetCharWidthFloat GetCharWidthFloatA#define GetCharWidth GetCharWidthA#define GetCharacterPlacement GetCharacterPlacementA#define GetCharABCWidths GetCharABCWidthsA#define GetCharABCWidthsFloat GetCharABCWidthsFloatA#define GetCharWidth32 GetCharWidth32A#define GetEnhMetaFile GetEnhMetaFileA#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA#define GetGlyphOutline GetGlyphOutlineA#define GetICMProfile GetICMProfileA#define GetKerningPairs GetKerningPairsA#define GetLogColorSpace GetLogColorSpaceA#define GetMetaFile GetMetaFileA#define GetObject GetObjectA#define GetOutlineTextMetrics GetOutlineTextMetricsA#define GetTextExtentPoint GetTextExtentPointA#define GetTextExtentExPoint GetTextExtentExPointA#define GetTextExtentPoint32 GetTextExtentPoint32A#define GetTextFace GetTextFaceA#define GetTextMetrics GetTextMetricsA#define PolyTextOut PolyTextOutA#define RemoveFontResource RemoveFontResourceA#if (_WIN32_WINNT >= 0x0500)#define RemoveFontResourceEx RemoveFontResourceExA#endif#define ResetDC ResetDCA#define SetICMProfile SetICMProfileA#define StartDoc StartDocA#define TextOut TextOutA#define UpdateICMRegKey UpdateICMRegKeyA#define wglUseFontBitmaps wglUseFontBitmapsA#define wglUseFontOutlines wglUseFontOutlinesA#endif#endif
#ifdef __WINESRC__/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
#define DCHC_INVALIDVISRGN 0x0001#define DCHC_DELETEDC 0x0002#define DCHF_INVALIDATEVISRGN 0x0001#define DCHF_VALIDATEVISRGN 0x0002
typedef BOOL (CALLBACK *DCHOOKPROC)(HDC,WORD,DWORD_PTR,LPARAM);
WINGDIAPI DWORD_PTR WINAPI GetDCHook(HDC,DCHOOKPROC*);WINGDIAPI BOOL WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD_PTR);WINGDIAPI WORD WINAPI SetHookFlags(HDC,WORD);WINGDIAPI INT WINAPI SelectVisRgn(HDC,HRGN);#endif /* __WINESRC__ */
#ifdef _MSC_VER#pragma warning(pop)#endif
#ifdef __cplusplus}#endif
#endif //!NOGDI#endif // _WINGDI_H